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 เจจเฉ‚เฉฐ perl เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹:

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 เจฆเฉ‡ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค

เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ เจธเจฐเจตเจฐ (เจธเฉเจกเฉ‹ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจœเจพเจ‚ เจฐเฉ‚เจŸ):

เจ‡เฉฑเจ• เจ•เฉเฉฐเจœเฉ€ เจœเฉ‹เฉœเจพ เจฌเจฃเจพเจ“:

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>

เจ…เจธเฉ€เจ‚ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจธเจพเจจเฉ‚เฉฐ เจฌเจฟเจจเจพเจ‚ เจ•เจฟเจธเฉ‡ เจธเจฎเฉฑเจธเจฟเจ† เจฆเฉ‡ เจชเจนเฉเฉฐเจš เจฎเจฟเจฒเฉ‡เฅค

เจ‡เฉฑเจ• postgres เจธเจฐเจตเจฐ เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ

เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ เจธเจฐเจตเจฐ (เจธเฉเจกเฉ‹ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจœเจพเจ‚ เจฐเฉ‚เจŸ):

1. เจšเจฒเฉ‹ เจฌเจพเจนเจฐเฉ€ IPs เจคเฉ‹เจ‚ เจชเฉ‹เจธเจŸเจ—เฉเจฐเฉ‡เจธ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจฆเจธเจคเจ• เจฆเฉ‡เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเฉ‡เจˆเจเฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจธเฉ‹เจงเฉ‹ 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

เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ! เจฐเจฟเจ•เจตเจฐเฉ€ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ‡เจน เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจฟ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฐเจฟเจ•เจตเจฐเฉ€ เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจซเจธ เจœเจพเจตเฉ‡ (เจ‡เฉฑเจฅเฉ‡ เจคเจฐเฉเฉฑเจŸเฉ€เจ†เจ‚ เจนเฉ‹เจฃเจ—เฉ€เจ†เจ‚ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ ERROR: เจ‡เฉฑเจ• เจฐเฉ€เจก-เจ“เจจเจฒเฉ€ เจŸเฉเจฐเจพเจ‚เจœเฉˆเจ•เจธเจผเจจ เจตเจฟเฉฑเจš DROP เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ)เฅค เจ‡เจฎเจพเจจเจฆเจพเจฐ เจนเฉ‹เจฃ เจฒเจˆ, เจฎเฉˆเจ‚ เจ…เจœเฉ‡ เจคเฉฑเจ• เจ‡เจน เจจเจนเฉ€เจ‚ เจธเจฎเจเจฟเจ† เจ•เจฟ เจ‡เจน เจ•เจฟเจธ เจจเจพเจฒ เจœเฉเฉœเจฟเจ† เจนเฉ‹เจ‡เจ† เจนเฉˆ. เจนเฉฑเจฒ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ‡ เจ…เจจเฉเจธเจพเจฐ เจนเฉˆ (เจ•เจฎเจพเจ‚เจก เจฒเจพเจ—เฉ‚ เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฅเฉ‹เฉœเจพ เจ‡เฉฐเจคเจœเจผเจพเจฐ เจ•เจฐเจจเจพ เจชเจตเฉ‡เจ—เจพ):

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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹