pgbackrest เชธเชพเชฅเซ‡ เช‡เชจเซเช•เซเชฐเซ€เชฎเซ‡เชจเซเชŸเชฒ postgresql เชฌเซ‡เช•เช…เชชเซเชธ - เชกเซ‡เชตเชฒเชชเชฐ เชคเชฐเชซเชฅเซ€ เชฏเซเชตเชพเชจ เชซเชพเช‡เชŸเชฐ เชฎเชพเชŸเซ‡เชจเซ‹ เช•เซ‹เชฐเซเชธ

เช…เชธเซเชตเซ€เช•เชฐเชฃ

เชนเซเช‚ เชกเซ‡เชตเชฒเชชเชฐ เช›เซเช‚. เชนเซเช‚ เช•เซ‹เชก เชฒเช–เซเช‚ เช›เซเช‚ เช…เชจเซ‡ เชฎเชพเชคเซเชฐ เชเช• เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชคเชฐเซ€เช•เซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เช เชธเชพเชฅเซ‡ เชธเช‚เชชเชฐเซเช• เช•เชฐเซเช‚ เช›เซเช‚. เชนเซเช‚ เช•เซ‹เชˆ เชชเชฃ เชฐเซ€เชคเซ‡ เชธเชฟเชธเซเชŸเชฎ เชเชกเชฎเชฟเชจเชฟเชธเซเชŸเซเชฐเซ‡เชŸเชฐ เชนเซ‹เชตเชพเชจเซ‹ เชขเซ‹เช‚เช— เช•เชฐเชคเซ‹ เชจเชฅเซ€, เชกเซ€เชฌเซ€เช เช•เชฐเชคเชพเช‚ เช˜เชฃเซเช‚ เช“เช›เซเช‚. เชชเชฃโ€ฆ

เชเชตเซเช‚ เชฅเชฏเซเช‚ เช•เซ‡ เชฎเชพเชฐเซ‡ postgresql เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซเช‚ เชฌเซ‡เช•เช…เชช เช—เซ‹เช เชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช•เซ‹เชˆ เชตเชพเชฆเชณเซ‹ เชจเชฅเซ€ - เชซเช•เซเชค SSH เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ เช…เชจเซ‡ เช–เชพเชคเชฐเซ€ เช•เชฐเซ‹ เช•เซ‡ เชชเซˆเชธเชพ เชฎเชพเช‚เช—เซเชฏเชพ เชตเชฟเชจเชพ เชฌเชงเซเช‚ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡. เช†เชตเชพ เช•เชฟเชธเซเชธเชพเช“เชฎเชพเช‚ เช†เชชเชฃเซ‡ เชถเซเช‚ เช•เชฐเซ€เช? เชคเซ‡ เชธเชพเชšเซเช‚ เช›เซ‡, เช…เชฎเซ‡ pgdump เชจเซ‡ เช•เซเชฐเซ‹เชจเชฎเชพเช‚ เชฆเชฌเชพเชฃ เช•เชฐเซ€เช เช›เซ€เช, เชฆเชฐเชฐเซ‹เชœ เช†เชฐเซเช•เชพเช‡เชตเชฎเชพเช‚ เชฆเชฐเซ‡เช• เชตเชธเซเชคเซเชจเซ‹ เชฌเซ‡เช•เช…เชช เชฒเชˆเช เช›เซ€เช, เช…เชจเซ‡ เชœเซ‹ เช†เชชเชฃเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เช–เซ‹เชตเชพเชˆ เชœเชˆเช, เชคเซ‹ เช…เชฎเซ‡ เช† เช†เชฐเซเช•เชพเช‡เชตเชจเซ‡ เช•เซเชฏเชพเช‚เช• เชฆเซ‚เชฐ เชฎเซ‹เช•เชฒเซ€เช เช›เซ€เช.

เช† เชตเช–เชคเซ‡ เชฎเซเชถเซเช•เซ‡เชฒเซ€ เช เชนเชคเซ€ เช•เซ‡ เชฏเซ‹เชœเชจเชพเช“ เช…เชจเซเชธเชพเชฐ เชกเซ‡เชŸเชพเชฌเซ‡เช เชฒเช—เชญเช— +- 100 MB เชชเซเชฐเชคเชฟ เชฆเชฟเชตเชธ เชตเชงเชตเชพเชจเซ‹ เชนเชคเซ‹. เช…เชฒเชฌเชคเซเชค, เชฅเซ‹เชกเชพ เช…เช เชตเชพเชกเชฟเชฏเชพ เชชเช›เซ€ pgdump เชธเชพเชฅเซ‡ เชฌเชงเซเช‚ เชฌเซ‡เช•เช…เชช เชฒเซ‡เชตเชพเชจเซ€ เช‡เชšเซเช›เชพ เช…เชฆเซƒเชถเซเชฏ เชฅเชˆ เชœเชถเซ‡. เช† เชคเซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚ เชตเชงเชพเชฐเชพเชจเชพ เชฌเซ‡เช•เช…เชชเซเชธ เชฌเชšเชพเชตเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชฐเชธเชชเซเชฐเชฆ? เชฌเชฟเชฒเชพเชกเซ€เชฎเชพเช‚ เช†เชชเชจเซเช‚ เชธเซเชตเชพเช—เชค เช›เซ‡.

เช‡เชจเซเช•เซเชฐเซ€เชฎเซ‡เชจเซเชŸเชฒ เชฌเซ‡เช•เช…เชช เช เชฌเซ‡เช•เช…เชชเชจเซ‹ เชเช• เชชเซเชฐเช•เชพเชฐ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชฌเชงเซ€ เชธเซเชฐเซ‹เชค เชซเชพเช‡เชฒเซ‹เชจเซ€ เชจเช•เชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชคเซ€ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชซเช•เซเชค เชจเชตเซ€ เช…เชจเซ‡ เชคเซ‡ เชœเซ‡ เช…เช—เชพเช‰เชจเซ€ เชจเช•เชฒเชจเซ€ เชฐเชšเชจเชพ เชชเช›เซ€ เชฌเชฆเชฒเชพเชˆ เช›เซ‡.

เช•เซ‹เชˆเชชเชฃ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเชจเซ€ เชœเซ‡เชฎ เชœเซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธเชจเซ€ เชœเชŸเชฟเชฒเชคเชพเช“เชจเซ‡ เชธเชฎเชœเชตเชพ เชฎเชพเชŸเซ‡ (เชคเซ‡ เชธเชฎเชฏเซ‡) เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เช…เชจเชฟเชšเซเช›เชพ เชงเชฐเชพเชตเชคเชพ เชนเชคเชพ, เชนเซเช‚ เช—เซเชฐเซ€เชจ เชฌเชŸเชจ เชถเซ‹เชงเชตเชพ เชฎเชพเช‚เช—เชคเซ‹ เชนเชคเซ‹. เชธเชพเชฐเซเช‚, เชคเชฎเซ‡ เชœเชพเชฃเซ‹ เช›เซ‹, เชœเซ‡เชฎ เช•เซ‡ AWS, DigitalOcean เชฎเชพเช‚: เชคเชฎเซ‡ เชเช• เชฌเชŸเชจ เชฆเชฌเชพเชตเซเชฏเซเช‚ - เชคเชฎเชจเซ‡ เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ เชฎเชณเซ€, เชคเชฎเซ‡ เชฌเซ€เชœเซเช‚ เชฆเชฌเชพเชตเซเชฏเซเช‚ - เชคเชฎเซ‡ เชฌเซ‡เช•เช…เชช เชธเซ‡เชŸ เช•เชฐเซเชฏเซเช‚, เชคเซเชฐเซ€เชœเซเช‚ - เชคเชฎเซ‡ เชฌเชงเซเช‚ เชฅเซ‹เชกเชพ เช•เชฒเชพเช•เซ‹ เชชเชพเช›เชณ เชซเซ‡เชฐเชตเซเชฏเซเช‚. เชฎเชจเซ‡ เช•เซ‹เชˆ เชฌเชŸเชจ เช…เชฅเชตเชพ เชธเซเช‚เชฆเชฐ GUI เชŸเซ‚เชฒ เชฎเชณเซเชฏเซเช‚ เชจเชฅเซ€. เชœเซ‹ เชคเชฎเซ‡ เชเช• (เชฎเชซเชค เช…เชฅเชตเชพ เชธเชธเซเชคเซเช‚) เชœเชพเชฃเซ‹ เช›เซ‹, เชคเซ‹ เชŸเชฟเชชเซเชชเชฃเซ€เช“เชฎเชพเช‚ เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชฒเช–เซ‹.

เช—เซ‚เช—เชฒเชฟเช‚เช— เชชเช›เซ€ เชฎเชจเซ‡ เชฌเซ‡ เชŸเซ‚เชฒเซเชธ เชฎเชณเซเชฏเชพเช‚ pgbarman ะธ pgbackrest. เชนเซเช‚ เชซเช•เซเชค เชชเซเชฐเชฅเชฎ เชธเชพเชฅเซ‡ เชธเชซเชณ เชฅเชฏเซ‹ เชจ เชนเชคเซ‹ (เช–เซ‚เชฌ เชœ เช›เซ‚เชŸเชพเช›เชตเชพเชฏเชพ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹, เชฎเซ‡เช‚ เชœเซ‚เชจเชพ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ เช…เชจเซเชธเชพเชฐ เชฌเชงเซเช‚ เชœ เช†เช•เซƒเชคเชฟ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹), เชชเชฐเช‚เชคเซ เชฌเซ€เชœเชพ เชธเชพเชฅเซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชธเชฎเชพเชจ เชนเซ‹เชตเชพเชจเซเช‚ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚, เชชเชฐเช‚เชคเซ เชญเซ‚เชฒเซ‹ เชตเชฟเชจเชพ เชจเชนเซ€เช‚. เชœเซ‡เช“ เชธเชฎเชพเชจ เช•เชพเชฐเซเชฏเชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡ เชคเซ‡เชฎเชจเชพ เช•เชพเชฐเซเชฏเชจเซ‡ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เช† เชฒเซ‡เช– เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹.

เช† เชฒเซ‡เช– เชตเชพเช‚เชšเซเชฏเชพ เชชเช›เซ€, เชคเชฎเซ‡ เชถเซ€เช–เซ€ เชถเช•เชถเซ‹ เช•เซ‡ เช‡เชจเซเช•เซเชฐเซ€เชฎเซ‡เชจเซเชŸเชฒ เชฌเซ‡เช•เช…เชช เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚, เชคเซ‡เชจเซ‡ เชฐเชฟเชฎเซ‹เชŸ เชธเชฐเซเชตเชฐ (เชฌเซ‡เช•เช…เชช เชธเชพเชฅเซ‡ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€) เชชเชฐ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชธเซ‡เชต เช•เชฐเชตเซเช‚ เช…เชจเซ‡ เชฎเซเช–เซเชฏ เชธเชฐเซเชตเชฐ เชชเชฐ เชกเซ‡เชŸเชพ เชจเซเช•เชถเชพเชจ เช…เชฅเชตเชพ เช…เชจเซเชฏ เชธเชฎเชธเซเชฏเชพเช“เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชคเซ‡เชจเซ‡ เชชเซเชจเชƒเชธเซเชฅเชพเชชเชฟเชค เช•เชฐเชตเซเช‚.

เชคเชพเชฒเซ€เชฎ

เชฎเซ‡เชจเซเชฏเซเช…เชฒเชจเซเช‚ เชชเซเชจเชƒเช‰เชคเซเชชเชพเชฆเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ‡ เชฌเซ‡ VPS เชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡. เชชเซเชฐเชฅเชฎ เชธเซเชŸเซ‹เชฐเซ‡เชœ เชนเชถเซ‡ (เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€ เช•เซ‡ เชœเซ‡เชจเชพ เชชเชฐ เชฌเซ‡เช•เช…เชชเซเชธ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡), เช…เชจเซ‡ เชฌเซ€เชœเซเช‚, เชนเช•เซ€เช•เชคเชฎเชพเช‚, เชธเชฐเซเชตเชฐ เชชเซ‹เชคเซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชพเชฅเซ‡ (เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธเชจเซเช‚ เชธเช‚เชธเซเช•เชฐเชฃ 11).

เชเชตเซเช‚ เชฎเชพเชจเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช•เซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชพเชฅเซ‡เชจเชพ เชธเชฐเซเชตเชฐ เชชเชฐ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชฐเซ‚เชŸ, เชธเซเชกเซ‹ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ, เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช›เซ‡ เช…เชจเซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชชเซ‹เชคเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒเซเช‚ เช›เซ‡ (เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธเซเช•เชฒ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช†เชชเชฎเซ‡เชณเซ‡ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡), เช…เชจเซ‡ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ เชธเชฐเซเชตเชฐ เชชเชฐ เชฐเซเชŸ เช…เชจเซ‡ เชธเซเชกเซ‹ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช›เซ‡ (เชฎเซ‡เชจเซเชฏเซเช…เชฒเชฎเชพเช‚ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชจเชพเชฎ pgbackrest เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡).

เชœเซ‡เชฅเซ€ เชธเซ‚เชšเชจเชพเช“เชจเซเช‚ เชชเซเชจเชƒเช‰เชคเซเชชเชพเชฆเชจ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชคเชฎเชจเซ‡ เช“เช›เซ€ เชธเชฎเชธเซเชฏเชพเช“ เชจเชกเซ‡, เชนเซเช‚ เชคเซเชฐเชพเช‚เชธเชพ เช…เช•เซเชทเชฐเซ‹เชฎเชพเช‚ เชฒเช–เซเช‚ เช›เซเช‚ เช•เซเชฏเชพเช‚, เช•เชฏเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชธเชพเชฅเซ‡ เช…เชจเซ‡ เช•เชฏเชพ เช…เชงเชฟเช•เชพเชฐเซ‹ เชธเชพเชฅเซ‡ เชฎเซ‡เช‚ เช†เชฆเซ‡เชถเชจเซ‹ เช…เชฎเชฒ เช•เชฐเซเชฏเซ‹ เชฒเซ‡เช– เชฒเช–เชคเซ€ เชตเช–เชคเซ‡ เช…เชจเซ‡ เชคเชชเชพเชธเชคเซ€ เชตเช–เชคเซ‡.

pgbackrest เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡

เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ (เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ pgbackrest):

1. pgbackrest เชชเชฐเชฅเซ€ เช†เชฐเซเช•เชพเช‡เชต เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเชพ เชธเชฎเชพเชตเชฟเชทเซเชŸเซ‹เชจเซ‡ /build เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซ‹:

sudo mkdir /build
sudo wget -q -O - 
       https://github.com/pgbackrest/pgbackrest/archive/release/2.18.tar.gz | 
       sudo tar zx -C /build

2. เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซ‹:

sudo apt-get update
sudo apt-get install build-essential libssl-dev libxml2-dev libperl-dev zlib1g-dev 
       libpq-dev

3. เชเชธเซ‡เชฎเซเชฌเชฒเชฟเช‚เช— pgbackrest:

cd /build/pgbackrest-release-2.18/src && sudo ./configure
sudo make -s -C /build/pgbackrest-release-2.18/src

4. เชเช•เซเชเซ‡เช•เซเชฏเซเชŸเซ‡เชฌเชฒ เชซเชพเช‡เชฒเชจเซ‡ /usr/bin เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚ เช•เซ‰เชชเชฟ เช•เชฐเซ‹:

sudo cp /build/pgbackrest-release-2.18/src/pgbackrest /usr/bin
sudo chmod 755 /usr/bin/pgbackrest

5. Pgbackrest เชจเซ‡ เชชเชฐเซเชฒเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹:

sudo apt-get install perl

6. เชฒเซ‹เช— เชฎเชพเชŸเซ‡ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เช“ เชฌเชจเชพเชตเซ‹, เชคเซ‡เชฎเชจเซ‡ เชšเซ‹เช•เซเช•เชธ เช…เชงเชฟเช•เชพเชฐ เช†เชชเซ‹:

sudo mkdir -p -m 770 /var/log/pgbackrest
sudo chown pgbackrest:pgbackrest /var/log/pgbackrest
sudo mkdir -p /etc/pgbackrest
sudo mkdir -p /etc/pgbackrest/conf.d
sudo touch /etc/pgbackrest/pgbackrest.conf
sudo chmod 640 /etc/pgbackrest/pgbackrest.conf
sudo chown pgbackrest:pgbackrest /etc/pgbackrest/pgbackrest.conf

7. เชคเชชเชพเชธเซ‹:

pgbackrest version

เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชฐเซเชตเชฐ (เชธเซเชกเซ‹ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช…เชฅเชตเชพ เชฐเซ‚เชŸ):

เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชพเชฅเซ‡ เชธเชฐเซเชตเชฐ เชชเชฐ pgbackrest เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ เชชเชฐ เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชœเซ‡เชตเซ€ เชœ เช›เซ‡ (เชนเชพ, pgbackrest เชฌเช‚เชจเซ‡ เชธเชฐเซเชตเชฐ เชชเชฐ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡), เชชเชฐเช‚เชคเซ 6เช เซเช เชพ เชซเช•เชฐเชพเชฎเชพเช‚ เชฌเซ€เชœเชพ เช…เชจเซ‡ เช›เซ‡เชฒเซเชฒเชพ เช†เชฆเซ‡เชถเซ‹:

sudo chown pgbackrest:pgbackrest /var/log/pgbackrest
sudo chown pgbackrest:pgbackrest /etc/pgbackrest/pgbackrest.conf

เชธเชพเชฅเซ‡ เชฌเชฆเชฒเซ‹:

sudo chown postgres:postgres /var/log/pgbackrest
sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf

เชชเชพเชธเชตเชฐเซเชก เชฐเชนเชฟเชค SSH เชฆเซเชตเชพเชฐเชพ เชธเชฐเซเชตเชฐ เชตเชšเซเชšเซ‡ เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพ เชธเซ‡เชŸ เช•เชฐเชตเซ€

pgbackrest เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช•เซ€ เชซเชพเช‡เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชฐเซเชตเชฐ เช…เชจเซ‡ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ เชตเชšเซเชšเซ‡เชจเซ€ เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เช•เชฐเชตเซ€ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡.

เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ (เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ pgbackrest):

เช•เซ€ เชœเซ‹เชกเซ€ เชฌเชจเชพเชตเซ‹:

mkdir -m 750 /home/pgbackrest/.ssh
ssh-keygen -f /home/pgbackrest/.ssh/id_rsa 
       -t rsa -b 4096 -N ""

เชธเชพเชตเชงเชพเชจ เช†เชชเชฃเซ‡ เช‰เชชเชฐเซ‹เช•เซเชค เช†เชฆเซ‡เชถเซ‹ เชธเซเชกเซ‹ เชตเช—เชฐ เชšเชฒเชพเชตเซ€เช เช›เซ€เช.

เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชฐเซเชตเชฐ (เชธเซเชกเซ‹ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช…เชฅเชตเชพ เชฐเซ‚เชŸ):

เช•เซ€ เชœเซ‹เชกเซ€ เชฌเชจเชพเชตเซ‹:

sudo -u postgres mkdir -m 750 -p /var/lib/postgresql/.ssh
sudo -u postgres ssh-keygen -f /var/lib/postgresql/.ssh/id_rsa 
       -t rsa -b 4096 -N ""

เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ (เชธเซเชกเซ‹ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ):

เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชฐเซเชตเชฐเชจเซ€ เชธเชพเชฐเซเชตเชœเชจเชฟเช• เช•เซ€เชจเซ‡ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€ เชธเชฐเซเชตเชฐ เชชเชฐ เช•เซ‰เชชเชฟ เช•เชฐเซ‹:

(echo -n 'no-agent-forwarding,no-X11-forwarding,no-port-forwarding,' && 
       echo -n 'command="/usr/bin/pgbackrest ${SSH_ORIGINAL_COMMAND#* }" ' && 
       sudo ssh root@<postgres_server_ip> cat /var/lib/postgresql/.ssh/id_rsa.pub) | 
       sudo -u pgbackrest tee -a /home/pgbackrest/.ssh/authorized_keys

เช† เชชเช—เชฒเชพ เชชเชฐ เชคเชฎเชจเซ‡ เชฐเซ‚เชŸ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชฎเชพเชŸเซ‡ เชชเชพเชธเชตเชฐเซเชก เชฎเชพเชŸเซ‡ เชชเซ‚เช›เชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เชคเชฎเชพเชฐเซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชฐเซเชตเชฐเชจเชพ เชฐเซ‚เชŸ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ‹ เชชเชพเชธเชตเชฐเซเชก เชฆเชพเช–เชฒ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡!

เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชฐเซเชตเชฐ (เชธเซเชกเซ‹ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ):

เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชพเชฅเซ‡ เชธเชฐเซเชตเชฐ เชชเชฐ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ เชชเชฌเซเชฒเชฟเช• เช•เซ€เชจเซ€ เชจเช•เชฒ เช•เชฐเซ‹:

(echo -n 'no-agent-forwarding,no-X11-forwarding,no-port-forwarding,' && 
       echo -n 'command="/usr/bin/pgbackrest ${SSH_ORIGINAL_COMMAND#* }" ' && 
       sudo ssh root@<repository_server_ip> cat /home/pgbackrest/.ssh/id_rsa.pub) | 
       sudo -u postgres tee -a /var/lib/postgresql/.ssh/authorized_keys

เช† เชชเช—เชฒเชพ เชชเชฐ เชคเชฎเชจเซ‡ เชฐเซ‚เชŸ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชฎเชพเชŸเซ‡ เชชเชพเชธเชตเชฐเซเชก เชฎเชพเชŸเซ‡ เชชเซ‚เช›เชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เชคเชฎเชพเชฐเซ‡ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เชจเชพ เชฐเซ‚เชŸ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ‹ เชฌเชฐเชพเชฌเชฐ เชชเชพเชธเชตเชฐเซเชก เชฆเชพเช–เชฒ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡!

เชคเชชเชพเชธ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡:

เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ (เชฐเซเชŸ เชฏเซเชเชฐ, เชชเซเชฐเชฏเซ‹เช—เชจเซ€ เชถเซเชฆเซเชงเชคเชพ เชฎเชพเชŸเซ‡):

sudo -u pgbackrest ssh postgres@<postgres_server_ip>

เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชฐเซเชตเชฐ (เชฐเซเชŸ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ, เชชเซเชฐเชฏเซ‹เช—เชจเซ€ เชถเซเชฆเซเชงเชคเชพ เชฎเชพเชŸเซ‡):

sudo -u postgres ssh pgbackrest@<repository_server_ip>

เช…เชฎเซ‡ เช–เชพเชคเชฐเซ€ เช•เชฐเซ€เช เช›เซ€เช เช•เซ‡ เช…เชฎเชจเซ‡ เชธเชฎเชธเซเชฏเชพ เชตเชฟเชจเชพ เชเช•เซเชธเซ‡เชธ เชฎเชณเซ‡.

เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชฐเซเชตเชฐ เชธเซ‡เชŸ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡

เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชฐเซเชตเชฐ (เชธเซเชกเซ‹ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช…เชฅเชตเชพ เชฐเซ‚เชŸ):

1. เชšเชพเชฒเซ‹ เชฌเชพเชนเซเชฏ IP เชฎเชพเช‚เชฅเซ€ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชฐเซเชตเชฐ เชชเชฐ เช•เช เชฃ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ€เช. เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชซเชพเช‡เชฒเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเซ‹ postgresql.conf (/etc/postgresql/11/main เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชธเซเชฅเชฟเชค เช›เซ‡), เชคเซ‡เชฎเชพเช‚ เชฒเซ€เชŸเซ€ เช‰เชฎเซ‡เชฐเซ€เชจเซ‡:

listen_addresses = '*'

เชœเซ‹ เช†เชตเซ€ เชฒเซ€เชŸเซ€ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เช›เซ‡, เชคเซ‹ เช•เชพเช‚ เชคเซ‹ เชคเซ‡เชจเซ‡ เช…เชจเช•เซ‹เชฎเซ‡เชจเซเชŸ เช•เชฐเซ‹ เช…เชฅเชตเชพ เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐเชจเซ€ เช•เชฟเช‚เชฎเชค '*' เชคเชฐเซ€เช•เซ‡ เชธเซ‡เชŸ เช•เชฐเซ‹.

เชซเชพเชˆเชฒเชฎเชพเช‚ pg_hba.conf (เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชชเชฃ เชธเซเชฅเชฟเชค เช›เซ‡ /etc/postgresql/11/main) เชจเซ€เชšเซ‡เชจเซ€ เชฒเซ€เชŸเซ€เช“ เช‰เชฎเซ‡เชฐเซ‹:

hostssl  all  all  0.0.0.0/0  md5
host  all  all  0.0.0.0/0  md5

เช•เซเชฏเชพเช‚:

hostssl/host - ะฟะพะดะบะปัŽั‡ะฐะตะผัั ั‡ะตั€ะตะท SSL (ะธะปะธ ะฝะตั‚)
all - ั€ะฐะทั€ะตัˆะฐะตะผ ะฟะพะดะบะปัŽั‡ะตะฝะธะต ะบะพ ะฒัะตะผ ะฑะฐะทะฐะผ
all - ะธะผั ะฟะพะปัŒะทะพะฒะฐั‚ะตะปั, ะบะพั‚ะพั€ะพะผัƒ ั€ะฐะทั€ะตัˆะฐะตะผ ะฟะพะดะบะปัŽั‡ะตะฝะธะต (ะฒัะตะผ)
0.0.0.0/0 - ะผะฐัะบะฐ ัะตั‚ะธ ั ะบะพั‚ะพั€ะพะน ะผะพะถะฝะพ ะฟะพะดะบะปัŽั‡ะฐั‚ัŒัั
md5 - ัะฟะพัะพะฑ ัˆะธั„ั€ะพะฒะฐะฝะธั ะฟะฐั€ะพะปั

2. เชšเชพเชฒเซ‹ เชœเชฐเซ‚เชฐเซ€ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เช•เชฐเซ€เช postgresql.conf (เชคเซ‡ เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เช›เซ‡ /etc/postgresql/11/main) pgbackrest เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡:

archive_command = 'pgbackrest --stanza=main archive-push %p' # ะ“ะดะต main - ะฝะฐะทะฒะฐะฝะธะต ะบะปะฐัั‚ะตั€ะฐ. ะŸั€ะธ ัƒัั‚ะฐะฝะพะฒะบะต postgres ะฐะฒั‚ะพะผะฐั‚ะธั‡ะตัะบะธ ัะพะทะดะฐะตั‚ ะบะปะฐัั‚ะตั€ main.
archive_mode = on
max_wal_senders = 3
wal_level = replica

3. เชšเชพเชฒเซ‹ pgbackrest เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒเชฎเชพเช‚ เชœเชฐเซ‚เชฐเซ€ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เช•เชฐเซ€เช (/etc/pgbackrest/pgbackrest.conf):

[main]
pg1-path=/var/lib/postgresql/11/main

[global]
log-level-file=detail
repo1-host=<repository_server_ip>

4. postgresql เชซเชฐเซ€เชฅเซ€ เชฒเซ‹เชก เช•เชฐเซ‹:

sudo service postgresql restart

เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ เชธเชฐเซเชตเชฐ เชธเซเชฏเซ‹เชœเชฟเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

เชญเช‚เชกเชพเชฐ (pgbackrest เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ):

เชšเชพเชฒเซ‹ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒเชฎเชพเช‚ เชœเชฐเซ‚เชฐเซ€ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชฌเชจเชพเชตเซ€เช pgbackrest
(/etc/pgbackrest/pgbackrest.conf):

[main]
pg1-host=<postgres_server_ip>
pg1-path=/var/lib/postgresql/11/main

[global]
repo1-path=/var/lib/pgbackrest
repo1-retention-full=2 # ะŸะฐั€ะฐะผะตั‚ั€, ัƒะบะฐะทั‹ะฒะฐัŽั‰ะธะน ัะบะพะปัŒะบะพ ั…ั€ะฐะฝะธั‚ัŒ ะฟะพะปะฝั‹ั… ะฑัะบะฐะฟะพะฒ. ะข.ะต. ะตัะปะธ ัƒ ะฒะฐั ะตัั‚ัŒ ะดะฒะฐ ะฟะพะปะฝั‹ั… ะฑัะบะฐะฟะฐ ะธ ะฒั‹ ัะพะทะดะฐะตั‚ะต ั‚ั€ะตั‚ะธะน, ั‚ะพ ัะฐะผั‹ะน ัั‚ะฐั€ั‹ะน ะฑัะบะฐะฟ ะฑัƒะดะตั‚ ัƒะดะฐะปะตะฝ. ะœะพะถะฝะพ ะฟั€ะพะธะทะฝะพัะธั‚ัŒ ะบะฐะบ "ั…ั€ะฐะฝะธั‚ัŒ ะฝะต ะฑะพะปะตะต ะดะฒัƒั… ะฑัะบะฐะฟะพะฒ" - ะฟะพ ะฐะฝะฐะปะพะณะธะธ ั ั€ะพั‚ะฐั†ะธัะผะธ ะปะพะณะพะฒ. ะกะฟะฐัะธะฑะพ @Aytuar ะทะฐ ะธัะฟั€ะฐะฒะปะตะฝะธะต ะพัˆะธะฑะบะธ.
start-fast=y # ะะฐั‡ะธะฝะฐะตั‚ ั€ะตะทะตั€ะฒะฝะพะต ะบะพะฟะธั€ะพะฒะฐะฝะธะต ะฝะตะผะตะดะปะตะฝะฝะพ, ะฟั€ะพั‡ะธั‚ะฐั‚ัŒ ะฟั€ะพ ัั‚ะพั‚ ะฟะฐั€ะฐะผะตั‚ั€ ะผะพะถะฝะพ ั‚ัƒั‚ https://postgrespro.ru/docs/postgrespro/9.5/continuous-archiving

เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ เชฌเชจเชพเชตเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

เชญเช‚เชกเชพเชฐ (pgbackrest เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ):

เช•เซเชฒเชธเซเชŸเชฐ เชฎเชพเชŸเซ‡ เชจเชตเซเช‚ เชธเซเชŸเซ‹เชฐเซ‡เชœ เชฌเชจเชพเชตเซ‹ เชฎเซเช–เซเชฏ:

sudo mkdir -m 770 /var/lib/pgbackrest
sudo chown -R pgbackrest /var/lib/pgbackrest/
sudo -u pgbackrest pgbackrest --stanza=main stanza-create

เชจเชฟเชฐเซ€เช•เซเชทเชฃ

เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชฐเซเชตเชฐ (เชธเซเชกเซ‹ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช…เชฅเชตเชพ เชฐเซ‚เชŸ):

เช…เชฎเซ‡ เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชฐเซเชตเชฐ เชชเชฐ เชคเชชเชพเชธ เช•เชฐเซ€เช เช›เซ€เช:

sudo -u postgres pgbackrest --stanza=main --log-level-console=info check

เชญเช‚เชกเชพเชฐ (pgbackrest เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ):

เช…เชฎเซ‡ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ เชธเชฐเซเชตเชฐ เชชเชฐ เชคเชชเชพเชธ เช•เชฐเซ€เช เช›เซ€เช:

sudo -u pgbackrest pgbackrest --stanza=main --log-level-console=info check

เช…เชฎเซ‡ เช–เชพเชคเชฐเซ€ เช•เชฐเซ€เช เช›เซ€เช เช•เซ‡ เช†เช‰เชŸเชชเซเชŸเชฎเชพเช‚ เช†เชชเชฃเซ‡ "เชšเซ‡เช• เช•เชฎเชพเชจเซเชก เชเชจเซเชก: เชธเชซเชณเชคเชพเชชเซ‚เชฐเซเชตเช• เชชเซ‚เชฐเซเชฃ" เชฒเซ€เชŸเซ€ เชœเซ‹เชˆ เชถเช•เซ€เช เช›เซ€เช.

เชฅเชพเช•เซ€ เช—เชฏเชพ เช›เซ‹? เชšเชพเชฒเซ‹ เชธเซŒเชฅเซ€ เชฐเชธเชชเซเชฐเชฆ เชญเชพเช— เชคเชฐเชซ เช†เช—เชณ เชตเชงเซ€เช.

เชฌเซ‡เช•เช…เชช เชฌเชจเชพเชตเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

เชญเช‚เชกเชพเชฐ (pgbackrest เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ):

1. เชฌเซ‡เช•เช…เชช เช•เชฐเซ‹:

sudo -u pgbackrest pgbackrest --stanza=main backup

2. เช–เชพเชคเชฐเซ€ เช•เชฐเซ‹ เช•เซ‡ เชฌเซ‡เช•เช…เชช เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡:

ls /var/lib/pgbackrest/backup/main/

Pgbackrest เชชเซเชฐเชฅเชฎ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฌเซ‡เช•เช…เชช เชฌเชจเชพเชตเชถเซ‡. เชœเซ‹ เชคเชฎเซ‡ เชˆเชšเซเช›เซ‹ เชคเซ‹, เชคเชฎเซ‡ เชฌเซ‡เช•เช…เชช เช†เชฆเซ‡เชถเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชšเชฒเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เช–เชพเชคเชฐเซ€ เช•เชฐเซ‹ เช•เซ‡ เชธเชฟเชธเซเชŸเชฎ เชตเชงเชพเชฐเซ‹ เชฌเซ‡เช•เช…เชช เชฌเชจเชพเชตเซ‡ เช›เซ‡.

เชœเซ‹ เชคเชฎเซ‡ เชซเชฐเซ€เชฅเซ€ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฌเซ‡เช•เช…เชช เชฒเซ‡เชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹, เชคเซ‹ เชชเช›เซ€ เชตเชงเชพเชฐเชพเชจเชพ เชซเซเชฒเซ‡เช—เชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ‹:

sudo -u pgbackrest pgbackrest --stanza=main --type=full backup

เชœเซ‹ เชคเชฎเชจเซ‡ เชตเชฟเช—เชคเชตเชพเชฐ เช•เชจเซเชธเซ‹เชฒ เช†เช‰เชŸเชชเซเชŸ เชœเซ‹เชˆเช เช›เซ‡, เชคเซ‹ เชคเซ‡ เชชเชฃ เชธเซเชชเชทเซเชŸ เช•เชฐเซ‹:

sudo -u pgbackrest pgbackrest --stanza=main --type=full --log-level-console=info backup

เชฌเซ‡เช•เช…เชช เชชเซเชจเชƒเชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡

เชชเซ‹เชธเซเชŸเช—เซเชฐเซ‡เชธ เชธเชฐเซเชตเชฐ (เชธเซเชกเซ‹ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เช…เชฅเชตเชพ เชฐเซ‚เชŸ):

1. เชšเชพเชฒเชคเชพ เช•เซเชฒเชธเซเชŸเชฐเชจเซ‡ เชฐเซ‹เช•เซ‹:

sudo pg_ctlcluster 11 main stop

2. เชฌเซ‡เช•เช…เชชเชฎเชพเช‚เชฅเซ€ เชชเซเชจเชƒเชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡:

sudo -u postgres pgbackrest --stanza=main --log-level-console=info --delta --recovery-option=recovery_target=immediate restore

เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซ‡ เช›เซ‡เชฒเซเชฒเชพ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฌเซ‡เช•เช…เชชเชจเซ€ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เชชเซเชจเชƒเชธเซเชฅเชพเชชเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, recovery_target เชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹:

sudo -u postgres pgbackrest --stanza=main --log-level-console=info --delta restore

เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ! เชชเซเชจเชƒเชชเซเชฐเชพเชชเซเชคเชฟ เชชเช›เซ€, เชเชตเซเช‚ เชฌเชจเซ€ เชถเช•เซ‡ เช›เซ‡ เช•เซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เช เชชเซเชจเชƒเชชเซเชฐเชพเชชเซเชคเชฟ เชฎเซ‹เชกเชฎเชพเช‚ เช…เชŸเชตเชพเช‡ เชœเชพเชฏ (เชคเซเชฏเชพเช‚ เชญเซ‚เชฒ เชœเซ‡เชตเซ€ เชญเซ‚เชฒเซ‹ เชนเชถเซ‡: เชซเช•เซเชค เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เชกเซเชฐเซ‹เชช เชกเซ‡เชŸเชพเชฌเซ‡เช เชšเชฒเชพเชตเซ€ เชถเช•เชพเชถเซ‡ เชจเชนเซ€เช‚). เชธเชพเชšเซเช‚ เช•เชนเซเช‚ เชคเซ‹, เชนเซเช‚ เชนเชœเซ€ เชธเซเชงเซ€ เชธเชฎเชœเซ€ เชถเช•เซเชฏเซ‹ เชจเชฅเซ€ เช•เซ‡ เช† เชถเซเช‚ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒเซเช‚ เช›เซ‡. เช‰เช•เซ‡เชฒ เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เช›เซ‡ (เช•เชฎเชพเชจเซเชก เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เชฅเชฏเชพ เชชเช›เซ€ เชคเชฎเชพเชฐเซ‡ เชฅเซ‹เชกเซ€ เชฐเชพเชน เชœเซ‹เชตเซ€ เชชเชกเชถเซ‡):

sudo -u postgres psql -c "select pg_wal_replay_resume()"

เชนเช•เซ€เช•เชคเชฎเชพเช‚, เชคเซ‡เชจเชพ เชจเชพเชฎ เชฆเซเชตเชพเชฐเชพ เชšเซ‹เช•เซเช•เชธ เชฌเซ‡เช•เช…เชชเชจเซ‡ เชชเซเชจเชƒเชธเซเชฅเชพเชชเชฟเชค เช•เชฐเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡. เช…เชนเซ€เช‚ เชนเซเช‚ เชœ เช›เซเช‚ เชนเซเช‚ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชฎเชพเช‚ เช† เชธเซเชตเชฟเชงเชพเชจเชพ เชตเชฐเซเชฃเชจเชจเซ€ เชฒเชฟเช‚เช• เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ€เชถ. เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชธเชพเชตเชงเชพเชจเซ€ เชธเชพเชฅเซ‡ เช† เชตเชฟเช•เชฒเซเชชเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชธเชฒเชพเชน เช†เชชเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซเช‚ เช•เชพเชฐเชฃ เชธเชฎเชœเชพเชตเซ‡ เช›เซ‡. เชนเซเช‚ เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡เชฅเซ€ เช‰เชฎเซ‡เชฐเซ€ เชถเช•เซเช‚ เช›เซเช‚ เช•เซ‡ เชฎเซ‡เช‚ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เช›เซ‡. เชœเซ‹ เชคเชฎเชพเชฐเซ‡ เช–เชฐเซ‡เช–เชฐ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ, เชคเซ‹ เช–เชพเชคเชฐเซ€ เช•เชฐเซ‹ เช•เซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชชเซเชคเชฟ เชชเช›เซ€ เชกเซ‡เชŸเชพเชฌเซ‡เช เชชเซเชจเชƒเชชเซเชฐเชพเชชเซเชคเชฟ เชฎเซ‹เชกเชฎเชพเช‚เชฅเซ€ เชฌเชนเชพเชฐ เชจเซ€เช•เชณเซ‡ เช›เซ‡ (เชชเชธเช‚เชฆ เช•เชฐเซ‹ pg_is_in_recovery() "f" เชฌเชคเชพเชตเชตเซเช‚ เชœเซ‹เชˆเช) เช…เชจเซ‡, เชฎเชพเชคเซเชฐ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชชเซเชจเชƒเชชเซเชฐเชพเชชเซเชคเชฟ เชชเช›เซ€ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฌเซ‡เช•เช…เชช เชฒเซ‹.

3. เช•เซเชฒเชธเซเชŸเชฐ เชถเชฐเซ‚ เช•เชฐเซ‹:

sudo pg_ctlcluster 11 main start

เชฌเซ‡เช•เช…เชช เชชเซเชจเชƒเชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซเชฏเชพ เชชเช›เซ€, เช…เชฎเชพเชฐเซ‡ เชฌเซ€เชœเซเช‚ เชฌเซ‡เช•เช…เชช เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡:

เชญเช‚เชกเชพเชฐ (pgbackrest เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ):

sudo pgbackrest --stanza=main backup

เชฌเชธ เชเชŸเชฒเซเช‚ เชœ. เชจเชฟเชทเซเช•เชฐเซเชทเชฎเชพเช‚, เชนเซเช‚ เชคเชฎเชจเซ‡ เชฏเชพเชฆ เช…เชชเชพเชตเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚ เช•เซ‡ เชนเซเช‚ เช•เซ‹เชˆ เชชเชฃ เชฐเซ€เชคเซ‡ เชตเชฐเชฟเชทเซเช  เชกเซ€เชฌเซ€เช เชนเซ‹เชตเชพเชจเซ‹ เชขเซ‹เช‚เช— เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เชจเชฅเซ€ เช…เชจเซ‡ เชธเชนเซ‡เชœ เชคเช• เชชเชฐ เชตเชพเชฆเชณเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถ. เชนเชพเชฒเชฎเชพเช‚, เชนเซเช‚ เชชเซ‹เชคเซ‡ เชฌเซ‡เช•เช…เชช, เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ, เชฎเซ‹เชจเซ€เชŸเชฐเซ€เช‚เช— เชตเช—เซ‡เชฐเซ‡ เชœเซ‡เชตเชพ เชตเชฟเชตเชฟเชง เชตเชฟเชทเชฏเซ‹เชจเซ‹ เช…เชญเซเชฏเชพเชธ เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เช›เซเช‚. เช…เชจเซ‡ เชนเซเช‚ เชธเชฎเซเชฆเชพเชฏเชฎเชพเช‚ เชจเชพเชจเซเช‚ เชฏเซ‹เช—เชฆเชพเชจ เช†เชชเชตเชพ เช…เชจเซ‡ เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชจเชพเชจเซ€ เชšเซ€เชŸ เชถเซ€เชŸเซเชธ เช›เซ‹เชกเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชฟเชฃเชพเชฎเซ‹ เชตเชฟเชถเซ‡ เชจเชพเชจเชพ เช…เชนเซ‡เชตเชพเชฒเซ‹ เชฒเช–เซเช‚ เช›เซเช‚.

เชจเซ€เชšเซ‡เชจเชพ เชฒเซ‡เช–เซ‹เชฎเชพเช‚ เชนเซเช‚ เชตเชงเชพเชฐเชพเชจเซ€ เชธเซเชตเชฟเชงเชพเช“ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€เชถ - เชธเซเชตเชšเซเช› เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชกเซ‡เชŸเชพ เชชเซเชจเชƒเชชเซเชฐเชพเชชเซเชคเชฟ, เชฌเซ‡เช•เช…เชชเซเชธเชจเซเช‚ เชเชจเซเช•เซเชฐเชฟเชชเซเชถเชจ เช…เชจเซ‡ S3 เชชเชฐ เชชเซเชฐเช•เชพเชถเชจ, rsync เชฆเซเชตเชพเชฐเชพ เชฌเซ‡เช•เช…เชช.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹