เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ Postgres เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง (เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบขเบนเปˆเปƒเบ™เบšเบฅเบฑเบญเบ 4123007 เบ‚เบญเบ‡ relatton base / 16490)

เบ‚เป‰เบญเบเบขเบฒเบเปเบšเปˆเบ‡เบ›เบฑเบ™เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เบตเปˆเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเบณเป€เบฅเบฑเบ”เบ„เบฑเป‰เบ‡เบ—เบณเบญเบดเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบนเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ Postgres เปƒเบซเป‰เบกเบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป€เบ•เบฑเบกเบฎเบนเบšเปเบšเบš. เบ‚เป‰เบญเบเป„เบ”เป‰เบฎเบนเป‰เบˆเบฑเบเบเบฑเบš Postgres DBMS เป€เบ„เบดเปˆเบ‡เบ›เบตเบเปˆเบญเบ™;

เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ Postgres เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง (เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบขเบนเปˆเปƒเบ™เบšเบฅเบฑเบญเบ 4123007 เบ‚เบญเบ‡ relatton base / 16490)

เบ‚เป‰เบญเบเป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™เบงเบดเบชเบฐเบงเบฐเบเบญเบ™เป€เบ„เบดเปˆเบ‡ DevOps เปƒเบ™เบšเปเบฅเบดเบชเบฑเบ” IT เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เบšเปเบฅเบดเบชเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบžเบฑเบ”เบ—เบฐเบ™เบฒเบŠเบญเบšเปเบงเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป‚เบซเบผเบ”เบชเบนเบ‡, เปเบฅเบฐเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบšเปเบฒเบฅเบธเบ‡เบฎเบฑเบเบชเบฒเปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰. เบ‚เป‰เบญเบเป„เบ”เป‰เบฎเบฑเบšเบงเบฝเบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™: เบ›เบฑเบšเบ›เบธเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเบ™เบถเปˆเบ‡. เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบกเปˆเบ™เบฅเบฒเบเบฅเบฑเบเบญเบฑเบเบชเบญเบ™เปƒเบ™ Django, เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบเบปเบเบเป‰เบฒเบเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ” (เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™), เปเบฅเบฐเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบปเบฒ dump เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเป‚เบ”เบเบœเปˆเบฒเบ™เป‚เบ„เบ‡เบเบฒเบ™ pg_dump เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบเปเบฅเบฐเบ™เบต.

เป€เบเบตเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบšเปเปˆเบ„เบฒเบ”เบ„เบดเบ”เบ‚เบถเป‰เบ™เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบญเบปเบฒเบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ (Postgres เป€เบงเบตเบŠเบฑเบ™ 9.5):

pg_dump: Oumping the contents of table โ€œws_log_smevlogโ€ failed: PQgetResult() failed.
pg_dump: Error message from server: ERROR: invalid page in block 4123007 of relatton base/16490/21396989
pg_dump: The command was: COPY public.ws_log_smevlog [...]
pg_dunp: [parallel archtver] a worker process dled unexpectedly

เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” "เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบขเบนเปˆเปƒเบ™เบšเบฅเบฑเบญเบ" เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบšเบฑเบ™เบซเบฒเปƒเบ™เบฅเบฐเบ”เบฑเบšเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเบ”เบตเบซเบผเบฒเบ. เปƒเบ™เป€เบงเบ—เบตเบ›เบฒเป„เบชเบ•เปˆเบฒเบ‡เป†, เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เป€เบฎเบฑเบ” เบชเบนเบ™เบเบฒเบเบฒเบ”เป€เบ•เบฑเบก เบ”เป‰เบงเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบ zero_damaged_pages เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰. เปเบฅเป‰เบง, เปƒเบซเป‰เบฅเบญเบ‡ ...

เบเบฒเบ™เบเบฐเบเบฝเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบง

ATTENTION! เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเป€เบญเบปเบฒเบเบฒเบ™เบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™ Postgres เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเบŸเบทเป‰เบ™เบŸเบนเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเป€เบ„เบทเปˆเบญเบ‡ virtual, เบขเบธเบ”เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบ–เปˆเบฒเบเบฎเบนเบš. เบ–เป‰เบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เปˆเบฒเบเบฎเบนเบšเป„เบ”เป‰, เปƒเบซเป‰เบขเบธเบ”เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบ„เบฑเบ”เบฅเบญเบเป€เบ™เบทเป‰เบญเบซเบฒเบ‚เบญเบ‡เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต Postgres (เบฅเบงเบกเบ—เบฑเบ‡เป„เบŸเบฅเปŒ wal) เป„เบ›เบšเปˆเบญเบ™เบ—เบตเปˆเบ›เบญเบ”เป„เบž. เบชเบดเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ™เบ—เบธเบฅเบฐเบเบดเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เบšเปเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบดเปˆเบ‡เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบเบงเปˆเบฒเป€เบเบปเปˆเบฒ. เบญเปˆเบฒเบ™ เบกเบฑเบ™.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เป€เบฎเบฑเบ”เบงเบฝเบเบชเปเบฒเบฅเบฑเบšเบ‚เป‰เบญเบ, เบ‚เป‰เบญเบเป„เบ”เป‰เบˆเปเบฒเบเบฑเบ”เบ•เบปเบงเป€เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ–เบดเป‰เบกเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ›เบปเบเบเบฐเบ•เบด, เปเบ•เปˆเบšเปเปˆเบฅเบงเบกเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เป€เบชเบเบซเบฒเบ (เบ—เบฒเบ‡เป€เบฅเบทเบญเบ. -T, --exclude-table=TABLE เปƒเบ™ pg_dump).

เป€เบŠเบตเบšเป€เบงเบตเปเบกเปˆเบ™เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบ, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ–เปˆเบฒเบเบฎเบนเบš. เบเบฒเบ™เบชเปเบฒเบฎเบญเบ‡เป„เบ”เป‰เบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบ, เปƒเบซเป‰เบชเบทเบšเบ•เปเปˆเป„เบ›.

เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹

เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเบŸเบทเป‰เบ™เบŸเบนเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบขเบนเปˆเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบเบฑเบšเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡. เปเบฅเบฐเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เปเบเป‰เป„เบ‚เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ, เป€เบžเบฒเบฐเบงเปˆเบฒเบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบดเปˆเบ‡เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบเบงเปˆเบฒเป€เบเบปเปˆเบฒ.

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป„เบ”เป‰เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™ "/srv" เปเบฅเบฐเบ›เบฐเป€เบžเบ”เปเบกเปˆเบ™ ext4.

เบเบฒเบ™เบขเบธเบ”เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™: systemctl เบขเบธเบ” postgresql@9.5-main.service เปเบฅเบฐเบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเปƒเบœเปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ–เบญเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ lsof:
lsof +D /srv

เบ‚เป‰เบญเบเบเบฑเบ‡เบ•เป‰เบญเบ‡เบขเบธเบ”เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ redis, เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เปƒเบŠเป‰เป€เบŠเบฑเปˆเบ™เบเบฑเบ™ "/srv". เบ•เปเปˆเป„เบ›เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒ unmounted / srv (เบ›เบฐเบฅเบดเบกเบฒเบ™).

เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบ–เบทเบเบเบงเบ”เบชเบญเบšเป‚เบ”เบเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ” e2fsck เบเบฑเบšเบชเบฐเบซเบผเบฑเบš -f (เบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰เบเบงเบ”เบชเบญเบšเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบˆเบฐเบ–เบทเบเปเบฒเบเบงเปˆเบฒเบชเบฐเบญเบฒเบ”):

เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ Postgres เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง (เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบขเบนเปˆเปƒเบ™เบšเบฅเบฑเบญเบ 4123007 เบ‚เบญเบ‡ relatton base / 16490)

เบ•เปเปˆเป„เบ›, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ” dumpe2fs (sudo dumpe2fs /dev/mapper/gu2โ€”sys-srv | grep เบเบงเบ”เบชเบญเบš) เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบงเบ”เบชเบญเบšเป„เบ”เป‰เบงเปˆเบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบง:

เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ Postgres เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง (เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบขเบนเปˆเปƒเบ™เบšเบฅเบฑเบญเบ 4123007 เบ‚เบญเบ‡ relatton base / 16490)

e2fsck เป€เบงเบปเป‰เบฒเบงเปˆเบฒเบšเปเปˆเบžเบปเบšเบšเบฑเบ™เบซเบฒเปƒเบ”เป†เปƒเบ™เบฅเบฐเบ”เบฑเบšเบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ ext4, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบทเบšเบ•เปเปˆเบžเบฐเบเบฒเบเบฒเบกเบŸเบทเป‰เบ™เบŸเบนเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เบซเบผเบทเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒ. เบชเบนเบ™เบเบฒเบเบฒเบ”เป€เบ•เบฑเบก (เปเบ™เปˆเบ™เบญเบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™เปเบฅเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™).

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบ, เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบˆเบฐเบเบงเบ”เป€เบšเบดเปˆเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡เปเบœเปˆเบ™เบ”เบดเบ” (เบœเปˆเบฒเบ™ smartctl -a /dev/XXX) เบซเบผเบทเบ•เบปเบงเบ„เบงเบšเบ„เบธเบก RAID เป€เบžเบทเปˆเบญเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบšเบฑเบ™เบซเบฒเบšเปเปˆเป„เบ”เป‰เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเบฎเบฒเบ”เปเบง. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบ, RAID เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™ "เบฎเบฒเบ”เปเบง", เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเป„เบ”เป‰เบ‚เปเปƒเบซเป‰เบœเบนเป‰เป€เบšเบดเปˆเบ‡เปเบเบ‡เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบเบงเบ”เป€เบšเบดเปˆเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡ RAID (เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบขเบนเปˆเบซเปˆเบฒเบ‡เบˆเบฒเบเบ‚เป‰เบญเบเบซเบผเบฒเบเบฎเป‰เบญเบเบเบดเป‚เบฅเปเบกเบฑเบ”). เบ—เปˆเบฒเบ™เบเปˆเบฒเบงเบงเปˆเบฒเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบนเป„เบ”เป‰เบขเปˆเบฒเบ‡เปเบ™เปˆเบ™เบญเบ™.

เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบก 1: zero_damaged_pages

เบžเบงเบเป€เบฎเบปเบฒเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบœเปˆเบฒเบ™ psql เบเบฑเบšเบšเบฑเบ™เบŠเบตเบ—เบตเปˆเบกเบต superuser เบชเบดเบ”. เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™ superuser, เป€เบžเบฒเบฐเบงเปˆเบฒ ... เบ—เบฒเบ‡เป€เบฅเบทเบญเบ zero_damaged_pages เบžเบฝเบ‡เปเบ•เปˆเบฅเบฒเบงเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบเบกเบฑเบ™เปเบกเปˆเบ™ postgres:

psql -h 127.0.0.1 -U postgres -s [database_name]

เบ—เบฒเบ‡เป€เบฅเบทเบญเบ zero_damaged_pages เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบทเปˆเบญเบšเปเปˆเบชเบปเบ™เปƒเบˆเบเบฒเบ™เบญเปˆเบฒเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ” (เบˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ—เปŒ postgrespro):

เป€เบกเบทเปˆเบญ PostgreSQL เบเบงเบ”เบžเบปเบšเบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบชเบเบซเบฒเบ, เบกเบฑเบ™เบกเบฑเบเบˆเบฐเบฅเบฒเบเบ‡เบฒเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบเบปเบเป€เบฅเบตเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™. เบ–เป‰เบฒ zero_damaged_pages เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เบฅเบฐเบšเบปเบšเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™, เบเบปเบเป€เบฅเบตเบเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบชเบเบซเบฒเบเปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เปเบฅเบฐเบชเบทเบšเบ•เปเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™. เบžเบถเบ”เบ•เบดเบเปเบฒเบ™เบตเป‰เบ—เปเบฒเบฅเบฒเบเบ‚เปเป‰เบกเบนเบ™, เบ„เบทเปเบ–เบงเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบชเบเบซเบฒเบ.

เบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบตเบ”เปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปเบฅเบฐเบžเบฐเบเบฒเบเบฒเบกเป€เบฎเบฑเบ”เบเบฒเบ™เบชเบนเบ™เบเบฒเบเบฒเบ”เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบ‚เบญเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡:

VACUUM FULL VERBOSE

เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ Postgres เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง (เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบขเบนเปˆเปƒเบ™เบšเบฅเบฑเบญเบ 4123007 เบ‚เบญเบ‡ relatton base / 16490)
เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, เป‚เบŠเบเบšเปเปˆเบ”เบต.

เบžเบงเบเป€เบฎเบปเบฒเบžเบปเบšเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™:

INFO: vacuuming "โ€œpublic.ws_log_smevlogโ€
WARNING: invalid page in block 4123007 of relation base/16400/21396989; zeroing out page
ERROR: unexpected chunk number 573 (expected 565) for toast value 21648541 in pg_toast_106070

pg_toast - เบเบปเบ™เป„เบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ "เบ‚เปเป‰เบกเบนเบ™เบเบฒเบง" เปƒเบ™ Poetgres เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบซเบ™เป‰เบฒเบซเบ™เบถเปˆเบ‡ (8kb เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™).

เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบก 2: reindex

เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เปเบฒเบญเบดเบ”เบˆเบฒเบ Google เบšเปเปˆเป„เบ”เป‰เบŠเปˆเบงเบ. เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบญเบ‡เบชเบฒเบกเบ™เบฒเบ—เบตเบ‚เบญเบ‡เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบžเบปเบšเป€เบซเบฑเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเบชเบญเบ‡ - เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰ reindex เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบชเบเบซเบฒเบ. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบซเบฑเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ™เบตเป‰เบขเบนเปˆเปƒเบ™เบซเบผเบฒเบเบšเปˆเบญเบ™, เปเบ•เปˆเบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ”เบปเบ™เปƒเบˆเปƒเบซเป‰เบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เปƒเบˆ. เบ‚เปเปƒเบซเป‰เบ—เบปเบšเบ—เบงเบ™เบ„เบทเบ™:

reindex table ws_log_smevlog

เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ Postgres เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง (เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบขเบนเปˆเปƒเบ™เบšเบฅเบฑเบญเบ 4123007 เบ‚เบญเบ‡ relatton base / 16490)

reindex เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹.

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบŠเปˆเบงเบ, เบชเบนเบ™เบเบฒเบเบฒเบ”เป€เบ•เบฑเบก crashed เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบ—เบตเปˆโ€‹เบ„เป‰เบฒเบโ€‹เบ„เบทโ€‹เบเบฑเบ™โ€‹. เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบ‚เป‰เบญเบเบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบšเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง, เบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบŠเบญเบเบซเบฒเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบ™เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”เบ•เบทเปˆเบกเบญเบตเบเปเบฅเบฐเป„เบ”เป‰เบžเบปเบšเป€เบซเบฑเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบฒเบ เบšเบปเบ”เบ„เบงเบฒเบก.

เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบก 3: SELECT, LIMIT, OFFSET

เบšเบปเบ”เบ„เบงเบฒเบกเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป€เบšเบดเปˆเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบ–เบงเปเบฅเบฐเป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบšเบฑเบ™เบซเบฒ. เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ” เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เป€เบšเบดเปˆเบ‡เบ—เบธเบเป€เบชเบฑเป‰เบ™:

for ((i=0; i<"Number_of_rows_in_nodes"; i++ )); do psql -U "Username" "Database Name" -c "SELECT * FROM nodes LIMIT 1 offset $i" >/dev/null || echo $i; done

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ›เบฐเบเบญเบšเบ”เป‰เบงเบ +1 628 991 เบชเบฒเบ! เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเบ”เบนเปเบฅเบ—เบตเปˆเบ”เบต เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹, เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เบซเบปเบงเบ‚เปเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบกเบฑเบ™เปเบกเปˆเบ™เบงเบฑเบ™เป€เบชเบปเบฒ, เบ‚เป‰เบญเบเปเบฅเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ™เบตเป‰เปƒเบ™ tmux เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเบ™เบญเบ™:

for ((i=0; i<1628991; i++ )); do psql -U my_user -d my_database -c "SELECT * FROM ws_log_smevlog LIMIT 1 offset $i" >/dev/null || echo $i; done

เปƒเบ™เบ•เบญเบ™เป€เบŠเบปเป‰เบฒเบ‚เป‰เบญเบเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบชเบดเปˆเบ‡เบ•เปˆเบฒเบ‡เป†เป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”. เบ„เบงเบฒเบกเปเบ›เบเปƒเบˆเบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ‚เป‰เบญเบเบ„เบปเป‰เบ™เบžเบปเบšเบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบ 20 เบŠเบปเปˆเบงเป‚เบกเบ‡, เบกเบตเบžเบฝเบ‡เปเบ•เปˆ 2% เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบชเบฐเปเบเบ™! เบ‚เป‰เบญเบเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบฅเปเบ–เป‰เบฒ 50 เบกเบทเป‰. เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡.

เปเบ•เปˆเบ‚เป‰เบญเบเบšเปเปˆเบเบญเบกเปเบžเป‰. เบ‚เป‰เบญเบเบชเบปเบ‡เป„เบชเบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบเบฒเบ™เบชเบฐเปเบเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบ”เบปเบ™เบซเบผเบฒเบ. เบˆเบฒเบเป€เบญเบเบฐเบชเบฒเบ™ (เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เบเปˆเบฝเบงเบเบฑเบš postgrespro) เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบžเบปเบšเป€เบซเบฑเบ™เบงเปˆเบฒ:

OFFSET เบเปเบฒเบ™เบปเบ”เปƒเบซเป‰เบ‚เป‰เบฒเบกเบˆเปเบฒเบ™เบงเบ™เปเบ–เบงเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบœเบปเบ™เบœเบฐเบฅเบดเบ”เปเบ–เบง.
เบ–เป‰เบฒเบ—เบฑเบ‡เบชเบญเบ‡ OFFSET เปเบฅเบฐ LIMIT เบ–เบทเบเบฅเบฐเบšเบธ, เบฅเบฐเบšเบปเบšเบˆเบฐเบ‚เป‰เบฒเบกเปเบ–เบง OFFSET เบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบฅเบตเปˆเบกเบ™เบฑเบšเปเบ–เบงเบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ” LIMIT.

เป€เบกเบทเปˆเบญเปƒเบŠเป‰ LIMIT, เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ BY เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบžเบทเปˆเบญเปƒเบซเป‰เปเบ–เบงเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบชเบฐเป€เบžเบฒเบฐ. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปเบ–เบงเบเปˆเบญเบเบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™.

เปเบ™เปˆเบ™เบญเบ™, เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰เปเบกเปˆเบ™เบœเบดเบ”เบžเบฒเบ”: เบ—เปเบฒเบญเบดเบ”, เบšเปเปˆเบกเบต เบชเบฑเปˆเบ‡เป‚เบ”เบ, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบญเบฒเบ”เบˆเบฐเบœเบดเบ”เบžเบฒเบ”. เบญเบฑเบ™เบ—เบตเบชเบญเบ‡, Postgres เบ—เปเบฒเบญเบดเบ”เบ•เป‰เบญเบ‡เป„เบ”เป‰เบชเบฐเปเบเบ™เปเบฅเบฐเบ‚เป‰เบฒเบกเปเบ–เบง OFFSET, เปเบฅเบฐเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™ OFFSET เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบˆเบฐเบซเบผเบธเบ”เบฅเบปเบ‡เบ•เบทเปˆเบกเบญเบตเบ.

เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบก 4: เป€เบญเบปเบฒเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เปเป‰เบ„เบงเบฒเบก

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ”เบตเป€เบฅเบตเบ”เป€เบ‚เบปเป‰เบฒเบกเบฒเปƒเบ™เปƒเบˆเบ‚เบญเบ‡เบ‚เป‰เบญเบ: เป€เบญเบปเบฒเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เปเป‰เบ„เบงเบฒเบกเปเบฅเบฐเบงเบดเป€เบ„เบฒเบฐเป€เบชเบฑเป‰เบ™เบšเบฑเบ™เบ—เบถเบเบชเบธเบ”เบ—เป‰เบฒเบ.

เปเบ•เปˆเบ—เปเบฒเบญเบดเบ”, เปƒเบซเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡. ws_log_smevlog:

เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ Postgres เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง (เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบขเบนเปˆเปƒเบ™เบšเบฅเบฑเบญเบ 4123007 เบ‚เบญเบ‡ relatton base / 16490)

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ–เบฑเบ™ "เป„เบญเบ”เบต", เป€เบŠเบดเปˆเบ‡เบšเบฑเบ™เบˆเบธเบ•เบปเบงเบฅเบฐเบšเบธเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ (เบ•เบปเบงเบ™เบฑเบš) เบ‚เบญเบ‡เปเบ–เบง. เปเบœเบ™โ€‹เบเบฒเบ™โ€‹เปเบกเปˆเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบตเป‰โ€‹:

  1. เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบˆเบฐ dump เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เปเป‰เบ„เบงเบฒเบก (เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ sql)
  2. เปƒเบ™เบŠเปˆเบงเบ‡เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™, เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบˆเบฐเบ–เบทเบเบฅเบปเบšเบเบงเบ™เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เปเบ•เปˆเป„เบŸเบฅเปŒเบ‚เปเป‰เบ„เบงเบฒเบกเบˆเบฐเบเบฑเบ‡เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เปเบœเปˆเบ™.
  3. เบžเบงเบเป€เบฎเบปเบฒเป€เบšเบดเปˆเบ‡เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เป„เบŸเบฅเปŒเบ‚เปเป‰เบ„เบงเบฒเบก, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบŠเบญเบเบซเบฒเบ•เบปเบงเบฅเบฐเบšเบธ (id) เบ‚เบญเบ‡เปเบ–เบงเบชเบธเบ”เบ—เป‰เบฒเบเบ—เบตเปˆเบ–เบทเบเบฅเบถเบšเบญเบญเบเบขเปˆเบฒเบ‡เบชเปเบฒเป€เบฅเบฑเบ”เบœเบปเบ™.

เบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เปเป‰เบ„เบงเบฒเบก:

pg_dump -U my_user -d my_database -F p -t ws_log_smevlog -f ./my_dump.dump

เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ, เบ•เบฒเบกเบ—เบตเปˆเบ„เบฒเบ”เป„เบงเป‰, เบ–เบทเบเบ‚เบฑเบ”เบˆเบฑเบ‡เบซเบงเบฐเบ”เป‰เบงเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ”เบฝเบงเบเบฑเบ™:

pg_dump: Error message from server: ERROR: invalid page in block 4123007 of relatton base/16490/21396989

เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป‚เบ”เบเบœเปˆเบฒเบ™ เบซเบฒเบ‡ เบ‚เป‰เบญเบเป€เบšเบดเปˆเบ‡เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบšเปˆเบญเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ (เบซเบฒเบ‡ -5 ./my_dump.dump) เบ„เบปเป‰เบ™เบžเบปเบšเบงเปˆเบฒ dump เป„เบ”เป‰เบ–เบทเบเบฅเบปเบšเบเบงเบ™เบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ—เบตเปˆเบกเบต id 186 525. "เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ—เบตเปˆเบกเบต id 186 526, เบกเบฑเบ™เปเบ•เบ, เปเบฅเบฐเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ–เบทเบเบฅเบถเบš!" - เบ‚เป‰เบญเบโ€‹เบ„เบดเบ”โ€‹เบงเปˆเบฒ. เปเบ•เปˆ, เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™:
ยซเป€เบฅเบทเบญเบ * เบˆเบฒเบ ws_log_smevlog เบšเปˆเบญเบ™เบ—เบตเปˆ id=186529"เบกเบฑเบ™เป„เบ”เป‰เบซเบฑเบ™เบญเบญเบเบงเปˆเบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ”เบตเบเบฑเบšเป€เบชเบฑเป‰เบ™เบ™เบตเป‰ ... เปเบ–เบงเบ—เบตเปˆเบกเบตเบ”เบฑเบ”เบŠเบฐเบ™เบต 186 - 530 เบเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒ. เบญเบตเบ "เบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบ‡เบปเบ”เบ‡เบฒเบก" เบฅเบปเป‰เบกเป€เบซเบฅเบง. เบ•เปเปˆเบกเบฒเบ‚เป‰เบญเบเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ™เบตเป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™: เป€เบกเบทเปˆเบญเบฅเบถเบšเปเบฅเบฐเบ›เปˆเบฝเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡, เบžเบงเบเบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบฅเบถเบšเบฅเป‰เบฒเบ‡, เปเบ•เปˆเบ–เบทเบเบซเบกเบฒเบเป€เบ›เบฑเบ™ "tuples เบ•เบฒเบ", เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฒ. เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” เปเบฅเบฐเปเบฒเบเป€เบชเบฑเป‰เบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบงเปˆเบฒเบ–เบทเบเบฅเบถเบš เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰เบชเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ„เบทเบ™เปƒเปเปˆ. เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆ, เบ–เป‰เบฒเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบฅเบฐ autovacuum เบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš.

เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบก 5: SELECT, FROM, WHERE id=

เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡. เป€เบˆเบปเป‰เบฒโ€‹เบšเปเปˆโ€‹เบ„เบงเบ™โ€‹เบเบญเบกโ€‹เปเบžเป‰, เป€เบˆเบปเป‰เบฒโ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ›โ€‹เป€เบ–เบดเบ‡โ€‹เบ—เบตเปˆโ€‹เบชเบธเบ” เปเบฅเบฐ เป€เบŠเบทเปˆเบญโ€‹เปเบฑเป‰เบ™โ€‹เปƒเบ™โ€‹เบ•เบปเบงโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป€เบญเบ‡ เปเบฅเบฐ เบ„เบงเบฒเบกโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ‚เบญเบ‡โ€‹เป€เบˆเบปเป‰เบฒ. เบชเบฐเบ™เบฑเป‰เบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบปเบ”เบฅเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบญเบทเปˆเบ™: เบžเบฝเบ‡เปเบ•เปˆเป€เบšเบดเปˆเบ‡เบœเปˆเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡. เบฎเบนเป‰เบˆเบฑเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบ (เป€เบšเบดเปˆเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡), เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบžเบฒเบเบชเบฐเบซเบ™เบฒเบก id เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ (เบฅเบฐเบซเบฑเบ”เบ•เบปเป‰เบ™เบ•เป). เบžเบงเบเป€เบฎเบปเบฒเบกเบต 1 เปเบ–เบงเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบฅเบฐ id เบขเบนเปˆเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบœเปˆเบฒเบ™เบžเบงเบเป€เบ‚เบปเบฒเบซเบ™เบถเปˆเบ‡เป‚เบ”เบเบซเบ™เบถเปˆเบ‡:

for ((i=1; i<1628991; i=$((i+1)) )); do psql -U my_user -d my_database  -c "SELECT * FROM ws_log_smevlog where id=$i" >/dev/null || echo $i; done

เบ–เป‰เบฒเปƒเบœเบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆ, เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰: เบกเบฑเบ™เบชเบฐเปเบเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบ–เบงเปเบฅเบฐเบชเบปเปˆเบ‡ stdout เป„เบ›. / dev / null, เปเบ•เปˆเบ–เป‰เบฒเบ„เปเบฒเบชเบฑเปˆเบ‡ SELECT เบฅเบปเป‰เบกเป€เบซเบฅเบง, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ–เบทเบเบžเบดเบกเบญเบญเบ (stderr เบ–เบทเบเบชเบปเปˆเบ‡เบเบฑเบš console) เปเบฅเบฐเป€เบชเบฑเป‰เบ™เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ–เบทเบเบžเบดเบกเบญเบญเบ (เบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบš ||, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบเบฒเบ™เป€เบฅเบทเบญเบเบกเบตเบšเบฑเบ™เบซเบฒ (เบฅเบฐเบซเบฑเบ”เบเบฑเบšเบ„เบทเบ™เบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡. เบšเปเปˆเปเบกเปˆเบ™ 0)).

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป‚เบŠเบเบ”เบต, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เบ”เบฑเบ”เบชเบฐเบ™เบตเปƒเบ™เบžเบฒเบเบชเบฐเบซเบ™เบฒเบก id:

เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ Postgres เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง (เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบขเบนเปˆเปƒเบ™เบšเบฅเบฑเบญเบ 4123007 เบ‚เบญเบ‡ relatton base / 16490)

เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบเบฒเบ™เบŠเบญเบเบซเบฒเป€เบชเบฑเป‰เบ™เบ—เบตเปˆเบกเบต id เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบšเปเปˆเบ„เบงเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบ. เปƒเบ™เบ—เบฒเบ‡เบ—เบดเบ”เบชเบฐเบ”เบตเบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบ. เปเบฅเป‰เบง, เปƒเบซเป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบ™ tmux เปเบฅเบฐเปƒเบซเป‰เป„เบ›เบ™เบญเบ™.

เปƒเบ™เบ•เบญเบ™เป€เบŠเบปเป‰เบฒเบ‚เป‰เบญเบเบžเบปเบšเบงเปˆเบฒเบ›เบฐเบกเบฒเบ™ 90 เบฅเบฒเบเบเบฒเบ™เป„เบ”เป‰เบ–เบทเบเป€เบšเบดเปˆเบ‡, เป€เบŠเบดเปˆเบ‡เบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฒเบเบเบงเปˆเบฒ 000%. เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ”เป€เบกเบทเปˆเบญเบ›เบฝเบšเบ—เบฝเบšเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ (5%)! เปเบ•เปˆเบ‚เป‰เบญเบเบšเปเปˆเบขเบฒเบเบฅเปเบ–เป‰เบฒ 2 เบกเบทเป‰ ...

เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบก 6: SELECT, FROM, WHERE id >= เปเบฅเบฐ id

เบฅเบนเบเบ„เป‰เบฒเบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ”เบ—เบตเปˆเบญเบธเบ—เบดเบ”เบ•เบปเบ™เป€เบžเบทเปˆเบญเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™: เป‚เบ›เป€เบŠเบ”เป€เบŠเบต dual Intel Xeon E5-2697 v2, เบกเบต 48 เบเบฐเบ—เบนเป‰เบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ! เบเบฒเบ™เป‚เบซเบผเบ”เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบกเปˆเบ™เบชเบฐเป€เบฅเปˆเบ; เบเบฑเบ‡เบกเบต RAM เบžเบฝเบ‡เบžเป: เป€เบ—เบปเปˆเบฒเบเบฑเบš 20 gigabyte!

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ„เปเบฒเบชเบฑเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ–เบทเบเบ‚เบฐเบซเบ™เบฒเบ™:

for ((i=1; i<1628991; i=$((i+1)) )); do psql -U my_user -d my_database  -c "SELECT * FROM ws_log_smevlog where id=$i" >/dev/null || echo $i; done

เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™ script เบ—เบตเปˆเบชเบงเบเบ‡เบฒเบกเปเบฅเบฐเบชเบฐเบซเบ‡เปˆเบฒเบ‡เบฒเบก, เปเบ•เปˆเบ‚เป‰เบญเบเป€เบฅเบทเบญเบเบงเบดเบ—เบตเบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ™เบ—เบตเปˆเป„เบงเบ—เบตเปˆเบชเบธเบ”: เปเบเบเบ‚เบญเบšเป€เบ‚เบ” 0-1628991 เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เป€เบ›เบฑเบ™เป„เบฅเบเบฐ 100 เบšเบฑเบ™เบ—เบถเบเปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ 000 เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เปเบšเบšเบŸเบญเบก:

for ((i=N; i<M; i=$((i+1)) )); do psql -U my_user -d my_database  -c "SELECT * FROM ws_log_smevlog where id=$i" >/dev/null || echo $i; done

เปเบ•เปˆเบ™เบฑเป‰เบ™เบšเปเปˆเปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”. เปƒเบ™เบ—เบฒเบ‡เบ—เบดเบ”เบชเบฐเบ”เบต, เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบเบฑเบ‡เปƒเบŠเป‰เป€เบงเบฅเบฒเบšเบฒเบ‡เปเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบš. เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ 1 เบšเปเปˆเปเบกเปˆเบ™ smart เบซเบผเบฒเบ, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เบปเบเบฅเบปเบ‡เป€เบซเบฑเบ™เบ”เบต. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบ”เบถเบ‡เป€เบญเบปเบฒ 628 เปเบ–เบงเปเบ—เบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเบ™เบถเปˆเบ‡เบ•เปเปˆเบซเบ™เบถเปˆเบ‡. เบ”เป‰เบงเบเป€เบซเบ”เบ™เบตเป‰, เบ—เบตเบกเบ‡เบฒเบ™เบˆเบถเปˆเบ‡เป„เบ”เป‰เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบญเบฑเบ™เบ™เบตเป‰:

for ((i=N; i<M; i=$((i+1000)) )); do psql -U my_user -d my_database  -c "SELECT * FROM ws_log_smevlog where id>=$i and id<$((i+1000))" >/dev/null || echo $i; done

เป€เบ›เบตเบ” 16 เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเปƒเบ™เบเบญเบ‡เบ›เบฐเบŠเบธเบก tmux เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡:

1) for ((i=0; i<100000; i=$((i+1000)) )); do psql -U my_user -d my_database  -c "SELECT * FROM ws_log_smevlog where id>=$i and id<$((i+1000))" >/dev/null || echo $i; done
2) for ((i=100000; i<200000; i=$((i+1000)) )); do psql -U my_user -d my_database  -c "SELECT * FROM ws_log_smevlog where id>=$i and id<$((i+1000))" >/dev/null || echo $i; done
โ€ฆ
15) for ((i=1400000; i<1500000; i=$((i+1000)) )); do psql -U my_user -d my_database -c "SELECT * FROM ws_log_smevlog where id>=$i and id<$((i+1000))" >/dev/null || echo $i; done
16) for ((i=1500000; i<1628991; i=$((i+1000)) )); do psql -U my_user -d my_database  -c "SELECT * FROM ws_log_smevlog where id>=$i and id<$((i+1000))" >/dev/null || echo $i; done

เบกเบทเป‰เบ•เปเปˆเบกเบฒเบ‚เป‰เบญเบเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบ—เปเบฒเบญเบดเบ”! เบ„เบท (เบ„เปˆเบฒ XXX เปเบฅเบฐ ZZZ เบšเปเปˆเบ–เบทเบเบฎเบฑเบเบชเบฒเป„เบงเป‰เบญเบตเบเบ•เปเปˆเป„เบ›):

ERROR:  missing chunk number 0 for toast value 37837571 in pg_toast_106070
829000
ERROR:  missing chunk number 0 for toast value XXX in pg_toast_106070
829000
ERROR:  missing chunk number 0 for toast value ZZZ in pg_toast_106070
146000

เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบชเบฒเบกเปเบ–เบงเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”. ids เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบšเบฑเบ™เบซเบฒเบ—เปเบฒเบญเบดเบ”เปเบฅเบฐเบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™เบขเบนเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡ 829 เปเบฅเบฐ 000, ids เบ‚เบญเบ‡เบ—เบตเบชเบฒเบกเปเบกเปˆเบ™เบขเบนเปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡ 830 เปเบฅเบฐ 000 เบ•เปเปˆเป„เบ›, เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบŠเบญเบเบซเบฒเบ„เปˆเบฒ id เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบšเบฑเบ™เบซเบฒ. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเป€เบšเบดเปˆเบ‡เบœเปˆเบฒเบ™เป„เบฅเบเบฐเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบšเบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบกเบตเบšเบฑเบ™เบซเบฒเบ”เป‰เบงเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™ 146 เปเบฅเบฐเบเปเบฒเบ™เบปเบ” id:

for ((i=829000; i<830000; i=$((i+1)) )); do psql -U my_user -d my_database -c "SELECT * FROM ws_log_smevlog where id=$i" >/dev/null || echo $i; done
829417
ERROR:  unexpected chunk number 2 (expected 0) for toast value 37837843 in pg_toast_106070
829449
for ((i=146000; i<147000; i=$((i+1)) )); do psql -U my_user -d my_database -c "SELECT * FROM ws_log_smevlog where id=$i" >/dev/null || echo $i; done
829417
ERROR:  unexpected chunk number ZZZ (expected 0) for toast value XXX in pg_toast_106070
146911

เบชเบดเป‰เบ™เบชเบธเบ”เบ„เบงเบฒเบกเบชเบธเบ

เบžเบงเบเป€เบฎเบปเบฒเบžเบปเบšเป€เบซเบฑเบ™เบชเบฒเบเบ—เบตเปˆเบกเบตเบšเบฑเบ™เบซเบฒ. เบžเบงเบเป€เบฎเบปเบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบœเปˆเบฒเบ™ psql เปเบฅเบฐเบžเบฐเบเบฒเบเบฒเบกเบฅเบถเบšเบžเบงเบเบกเบฑเบ™:

my_database=# delete from ws_log_smevlog where id=829417;
DELETE 1
my_database=# delete from ws_log_smevlog where id=829449;
DELETE 1
my_database=# delete from ws_log_smevlog where id=146911;
DELETE 1

เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเปเบ›เบเปƒเบˆเบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบฅเบฒเบเบเบฒเบ™เป„เบ”เป‰เบ–เบทเบเบฅเบถเบšเบ–เบดเป‰เบกเป‚เบ”เบเบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒเปƒเบ”เป†เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเปเปˆเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบ zero_damaged_pages.

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เป„เบ”เป‰ เบชเบนเบ™เบเบฒเบเบฒเบ”เป€เบ•เบฑเบก (เบ‚เป‰เบญเบเบ„เบดเบ”เบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปเบ™เบงเบ™เบตเป‰), เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบเบ‚เป‰เบญเบเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เป€เบญเบปเบฒเบเบฒเบ™เบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ pg_dump. เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบšเปเปˆเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ”เป†! เบšเบฑเบ™เบซเบฒเป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เปƒเบ™เบ—เบฒเบ‡เบ—เบตเปˆเป‚เบ‡เปˆเบˆเป‰เบฒ. เบ„เบงเบฒเบกโ€‹เบชเบธเบโ€‹เบšเปเปˆโ€‹เบฎเบนเป‰โ€‹เบ‚เบญเบšโ€‹เป€เบ‚เบ”, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ„เบงเบฒเบกโ€‹เบฅเบปเป‰เบกโ€‹เป€เบซเบผเบงโ€‹เบซเบผเบฒเบโ€‹เบขเปˆเบฒเบ‡โ€‹เบ—เบตเปˆโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เบŠเบญเบโ€‹เบซเบฒโ€‹เบ—เบฒเบ‡โ€‹เบญเบญเบ!

เบเบฒเบ™เบฎเบฑเบšเบฎเบนเป‰ เปเบฅเบฐเบšเบปเบ”เบชเบฐเบซเบผเบธเบš

เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบนเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ Postgres เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เป„เบ”เป‰เบซเบฑเบ™เบญเบญเบ. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบˆเบทเปˆเบˆเปเบฒเบ›เบฐเบชเบปเบšเบเบฒเบ™เบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™.

เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบขเบฒเบเป€เบงเบปเป‰เบฒเบงเปˆเบฒเบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบš PostgresPro เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบ›เป€เบญเบเบฐเบชเบฒเบ™เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบฅเบฑเบ”เป€เบŠเบเปเบฅเบฐเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ เบซเบผเบฑเบเบชเบนเบ”เบญเบญเบ™เป„เบฅเบ™เปŒเบŸเบฃเบตเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบŠเปˆเบงเบเบซเบผเบฒเบเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบšเบฑเบ™เบซเบฒ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster