αž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€ postgresql αž”αž“αŸ’αžαŸ‚αž˜αž‡αžΆαž˜αž½αž™ pgbackrest - αžœαž‚αŸ’αž‚αž”αŸ’αžšαž™αž»αž‘αŸ’αž’αžœαŸαž™αž€αŸ’αž˜αŸαž„αž–αžΈαž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ

ធេស

αžαŸ’αž‰αž»αŸ†αž‡αžΆαž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ” αžαŸ’αž‰αž»αŸ†αžŸαžšαžŸαŸαžšαž€αžΌαžŠ αž“αž·αž„αž’αŸ’αžœαžΎαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ‚αž€αŸ’αž“αž»αž„αž“αžΆαž˜αž‡αžΆαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž’αŸ’αžœαžΎαž–αž»αžαž‡αžΆαž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αŸ αž‚αžΊαž˜αž·αž“αžŸαžΌαžœαž‡αžΆ dba αž‘αŸαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€¦

αžœαžΆαž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αžαŸ’αžšαžΌαžœαžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αž“αŸƒαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ postgresql αŸ” αž‚αŸ’αž˜αžΆαž“αž–αž–αž€ - αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αŸ’αžšαžΎ SSH αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΆαž€αžŠαžαžΆαž’αŸ’αžœαžΈαŸ—αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŸαž»αŸ†αž›αž»αž™αŸ” αžαžΎαž™αžΎαž„αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž”αŸ‚αž”αž“αŸαŸ‡? αžαŸ’αžšαžΌαžœαž αžΎαž™ αž™αžΎαž„αžšαž»αž‰ pgdump αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„ cron αž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αž’αŸ’αžœαžΈαŸ—αž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αŸαžŽαŸ’αžŽαžŸαžΆαžšαž‡αžΆαžšαŸ€αž„αžšαžΆαž›αŸ‹αžαŸ’αž„αŸƒ αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž”αžΆαžαŸ‹αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„ αž™αžΎαž„αž•αŸ’αž‰αžΎαž”αŸαžŽαŸ’αžŽαžŸαžΆαžšαž“αŸαŸ‡αž‘αŸ…αž€αž“αŸ’αž›αŸ‚αž„αž†αŸ’αž„αžΆαž™αŸ”

αž›αžΎαž€αž“αŸαŸ‡αž€αžΆαžšαž›αŸ†αž”αžΆαž€αž‚αžΊαžαžΆαž™αŸ„αž„αž‘αŸ…αžαžΆαž˜αž•αŸ‚αž“αž€αžΆαžš αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαžŸαž“αŸ’αž˜αžαŸ‹αžαžΆαž“αžΉαž„αž€αžΎαž“αž‘αžΎαž„αž”αŸ’αžšαž αŸ‚αž› +- 100 MB αž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ’αž„αŸƒαŸ” αž‡αžΆαž€αžΆαžšαž–αž·αžαžŽαžΆαžŸαŸ‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž–αžΈαžšαž”αžΈαžŸαž”αŸ’αžαžΆαž αŸαž”αŸ†αžŽαž„αž”αŸ’αžšαžΆαžαŸ’αž“αžΆαžŠαžΎαž˜αŸ’αž”αžΈαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‡αžΆαž˜αž½αž™ pgdump αž“αžΉαž„αžšαž›αžΆαž™αž”αžΆαžαŸ‹αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αž”αž“αŸ’αžαŸ‚αž˜αž˜αž€αž‡αž½αž™αžŸαž„αŸ’αž‚αŸ’αžšαŸ„αŸ‡αŸ”

αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ? αžŸαžΌαž˜αžŸαŸ’αžœαžΆαž‚αž˜αž“αŸαž˜αž€αž€αžΆαž“αŸ‹αž†αŸ’αž˜αžΆαŸ”

αž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αž”αž“αŸ’αžαŸ‚αž˜αž‚αžΊαž‡αžΆαž”αŸ’αžšαž—αŸαž‘αž“αŸƒαž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž˜αž·αž“αž˜αŸ‚αž“αž―αž€αžŸαžΆαžšαž”αŸ’αžšαž—αž–αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž˜αŸ’αž›αž„αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αžαŸ‚αž―αž€αžŸαžΆαžšαžαŸ’αž˜αžΈαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž αžΎαž™αžœαžΆαž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž…αŸ’αž”αžΆαž”αŸ‹αž…αž˜αŸ’αž›αž„αž–αžΈαž˜αž»αž“αž˜αž€αŸ”

αžŠαžΌαž…αž‡αžΆαž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŽαžΆαž€αŸαžŠαŸ„αž™αžŠαŸ‚αž›αž˜αž·αž“αž˜αžΆαž“αž†αž“αŸ’αž‘αŸˆ (αž“αŸ…αž–αŸαž›αž“αŸ„αŸ‡) αžŠαžΎαž˜αŸ’αž”αžΈαž™αž›αŸ‹αž–αžΈαž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž“αŸƒ postgres αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αžŸαŸ’αžœαŸ‚αž„αžšαž€αž”αŸŠαžΌαžαž»αž„αž–αžŽαŸŒαž”αŸƒαžαž„αŸ” αž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαžŽαžΆαžŸαŸ‹, αž’αŸ’αž“αž€αžŠαžΉαž„, αžŠαžΌαž…αž‡αžΆαž“αŸ…αž€αŸ’αž“αž»αž„ AWS, DigitalOcean: αž’αŸ’αž“αž€αž”αžΆαž“αž…αž»αž…αž”αŸŠαžΌαžαž»αž„αž˜αž½αž™ - αž’αŸ’αž“αž€αž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž…αž˜αŸ’αž›αž„, αž’αŸ’αž“αž€αž”αžΆαž“αž…αž»αž…αž‘αžΈαž–αžΈαžš - αž’αŸ’αž“αž€αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€, αž‘αžΈαž”αžΈ - αž’αŸ’αž“αž€αžšαž˜αŸ€αž›αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αž–αžΈαžšαž”αžΈαž˜αŸ‰αŸ„αž„αŸ” αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž”αžΆαž“αžšαž€αžƒαžΎαž‰αž”αŸŠαžΌαžαž»αž„ αž¬αž§αž”αž€αžšαžŽαŸ GUI αžŠαŸαžŸαŸ’αžšαžŸαŸ‹αžŸαŸ’αž’αžΆαžαž‘αŸαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžŸαŸ’αž‚αžΆαž›αŸ‹αž˜αž½αž™ (αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαž¬αžαŸ„αž€) αžŸαžšαžŸαŸαžšαž’αŸ†αž–αžΈαžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžαž·αž™αŸ„αž”αž›αŸ‹αŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž αŸ’αž‚αžΌαž αŸ’αž‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžšαž€αžƒαžΎαž‰αž§αž”αž€αžšαžŽαŸαž–αžΈαžš pgbarman ΠΈ pgbackrest. αžαŸ’αž‰αž»αŸ†αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž˜αž·αž“αž”αžΆαž“αž‡αŸ„αž‚αž‡αŸαž™αž‡αžΆαž˜αž½αž™αž―αž€αžŸαžΆαžšαž‘αžΈαž˜αž½αž™αž‘αŸ (αž―αž€αžŸαžΆαžšαžαž·αž…αžαž½αž…αžŽαžΆαžŸαŸ‹ αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž–αŸ’αž™αžΆαž™αžΆαž˜αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž’αŸ’αžœαžΈαŸ—αž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžαžΆαž˜αžŸαŸ€αžœαž—αŸ…αžŽαŸ‚αž“αžΆαŸ†αž…αžΆαžŸαŸ‹) αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž―αž€αžŸαžΆαžšαž‘αžΈαž–αžΈαžš αž―αž€αžŸαžΆαžšαž”αžΆαž“αž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαžŸαŸ’αž˜αžΎ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž˜αŸ‚αž“αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž‚αž»αžŽαžœαž·αž”αžαŸ’αžαž·αž‘αŸαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαžŸαž˜αŸ’αžšαž½αž›αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž”αŸ’αžšαžˆαž˜αž˜αž»αžαž“αžΉαž„αž€αž·αž…αŸ’αž…αž€αžΆαžšαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆ αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž’αžΆαž“αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡ αž’αŸ’αž“αž€αž“αžΉαž„αžšαŸ€αž“αž–αžΈαžšαž”αŸ€αž”αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αž”αž“αŸ’αžαŸ‚αž˜ αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž–αž½αž€αžœαžΆαž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž–αžΈαž…αž˜αŸ’αž„αžΆαž™ (αžƒαŸ’αž›αžΆαŸ†αž„αž‡αžΆαž˜αž½αž™αž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€) αž“αž·αž„αžŸαŸ’αžŠαžΆαžšαž–αž½αž€αžœαžΆαž‘αžΎαž„αžœαž·αž‰αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž”αžΆαžαŸ‹αž”αž„αŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž¬αž”αž‰αŸ’αž αžΆαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ”

αž€αžΆαžšαžšαŸ€αž”αž…αŸ†

αžŠαžΎαž˜αŸ’αž”αžΈαž•αž›αž·αžαžŸαŸ€αžœαž—αŸ…αžŽαŸ‚αž“αžΆαŸ†αž‘αžΎαž„αžœαž·αž‰ αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αžΆαžš VPS αž–αžΈαžšαŸ” αž‘αžΈαž˜αž½αž™αž“αžΉαž„αž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€ (αžƒαŸ’αž›αžΆαŸ†αž„αžŠαŸ‚αž›αž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€) αž“αž·αž„αž‘αžΈαž–αžΈαžšαžαžΆαž˜αž–αž·αžαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαŸ’αž›αž½αž“αž―αž„αž‡αžΆαž˜αž½αž™ postgres (αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž€αŸ†αžŽαŸ‚ 11 αž“αŸƒ postgres) αŸ”

αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž“αŸ’αž˜αžαŸ‹αžαžΆαž“αŸ…αž›αžΎ server αžŠαŸ‚αž›αž˜αžΆαž“ postgres αž’αŸ’αž“αž€αž˜αžΆαž“ root αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ sudo αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ postgres αž“αž·αž„ postgres αžαŸ’αž›αž½αž“αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„ (αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ postgres αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αŸ…αž–αŸαž›αžŠαŸ†αž‘αžΎαž„ postgresql) αž αžΎαž™αž“αŸ…αž›αžΎ repository server αž˜αžΆαž“ root αž“αž·αž„ sudo user (αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ€αžœαž—αŸ…αžŽαŸ‚αž“αžΆαŸ†αŸ” αžˆαŸ’αž˜αŸ„αŸ‡αž’αŸ’αž“αž€αž”αŸ’αžšαžΎ 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

αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Postgres (αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ sudo ឬ root)αŸ–

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ pgbackrest αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž›αž˜αžΆαž“ postgres αž‚αžΊαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž“αŸ…αž›αžΎαžƒαŸ’αž›αžΆαŸ†αž„ (αž”αžΆαž‘ 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 αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αžšαžœαžΆαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ postgres αž“αž·αž„αžƒαŸ’αž›αžΆαŸ†αž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαž―αž€αžŸαžΆαžšαž‚αž“αŸ’αž›αžΉαŸ‡αŸ”

αžƒαŸ’αž›αžΆαŸ†αž„ (αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ pgbackrest)αŸ–

αž”αž„αŸ’αž€αžΎαžαž‚αžΌαž‚αž“αŸ’αž›αžΉαŸ‡αŸ–

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

αžŸαžΌαž˜αž”αŸ’αžšαž™αŸαžαŸ’αž“! αž™αžΎαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆαžαžΆαž„αž›αžΎαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“ sudo αŸ”

αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Postgres (αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ sudo ឬ root)αŸ–

αž”αž„αŸ’αž€αžΎαžαž‚αžΌαž‚αž“αŸ’αž›αžΉαŸ‡αŸ–

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 ""

αžƒαŸ’αž›αžΆαŸ†αž„ (αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ sudo)αŸ–

αž…αž˜αŸ’αž›αž„αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ postgres αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžƒαŸ’αž›αžΆαŸ†αž„αŸ–

(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

αž“αŸ…αž‡αŸ†αž αžΆαž“αž“αŸαŸ‡αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž½αžšαžšαž€αž–αžΆαž€αŸ’αž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎ root αŸ” αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž‰αŸ’αž…αžΌαž›αž–αžΆαž€αŸ’αž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎ root αž“αŸƒαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ postgres!

αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Postgres (αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ sudo)αŸ–

αž…αž˜αŸ’αž›αž„αžŸαŸ„αžŸαžΆαž’αžΆαžšαžŽαŸˆαžšαž”αžŸαŸ‹αžƒαŸ’αž›αžΆαŸ†αž„αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ„αž™αž”αŸ’αžšαžΎ postgresαŸ–

(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

αž“αŸ…αž‡αŸ†αž αžΆαž“αž“αŸαŸ‡αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαž½αžšαžšαž€αž–αžΆαž€αŸ’αž™αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎ root αŸ” αž’αŸ’αž“αž€β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αž‰αŸ’αž…αžΌαž›β€‹αž–αžΆαž€αŸ’αž™β€‹αžŸαž˜αŸ’αž„αžΆαžαŸ‹β€‹αž™αŸ‰αžΆαž„β€‹αž–αž·αžβ€‹αž”αŸ’αžšαžΆαž€αžŠβ€‹αžšαž”αžŸαŸ‹β€‹αž’αŸ’αž“αž€β€‹αž”αŸ’αžšαžΎ root αž“αŸƒβ€‹αžƒαŸ’αž›αžΆαŸ†αž„!

αž€αŸ†αž–αž»αž„αž–αž·αž“αž·αžαŸ’αž™:

αžƒαŸ’αž›αžΆαŸ†αž„ (αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‡αžΆ root αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαž–αž”αžšαž·αžŸαž»αž‘αŸ’αž’αž“αŸƒαž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸ)αŸ–

sudo -u pgbackrest ssh postgres@<postgres_server_ip>

αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Postgres (αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‡αžΆ root αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαž–αž”αžšαž·αžŸαž»αž‘αŸ’αž’αž“αŸƒαž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸ)αŸ–

sudo -u postgres ssh pgbackrest@<repository_server_ip>

αž™αžΎαž„β€‹αž”αŸ’αžšαžΆαž€αžŠβ€‹αžαžΆβ€‹αž™αžΎαž„β€‹αž’αžΆαž…β€‹αž…αžΌαž›β€‹αž”αžΆαž“β€‹αžŠαŸ„αž™β€‹αž‚αŸ’αž˜αžΆαž“β€‹αž”αž‰αŸ’αž αžΆαŸ”

αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ postgres

αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Postgres (αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ sudo ឬ root)αŸ–

1. αžŸαžΌαž˜αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž‚αŸ„αŸ‡αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ postgres αž–αžΈ IPs αžαžΆαž„αž€αŸ’αžšαŸ…αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›αž―αž€αžŸαžΆαžš postgresql.conf (αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ… /etc/postgresql/11/main folder) αž”αž“αŸ’αžαŸ‚αž˜αž”αž“αŸ’αž‘αžΆαžαŸ‹αž‘αŸ…αžœαžΆαŸ–

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 # ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ сколько Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹Ρ… бэкапов. Π’.Π΅. Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΠΏΠΎΠ»Π½Ρ‹Ρ… бэкапа ΠΈ Π²Ρ‹ создаСтС Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ - ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ вмСстС с ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. 
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

αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™

αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Postgres (αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ sudo ឬ root)αŸ–

αž™αžΎαž„αž–αž·αž“αž·αžαŸ’αž™αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ PostgresαŸ–

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

αž€αžΆαžšαžŸαŸ’αžŠαžΆαžšαž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€

αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ Postgres (αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ sudo ឬ root)αŸ–

1. αž”αž‰αŸ’αžˆαž”αŸ‹αž…αž„αŸ’αž€αŸ„αž˜αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ–

sudo pg_ctlcluster 11 main stop

2. αžŸαŸ’αžαžΆαžšαž–αžΈαž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αŸ–

sudo -u postgres pgbackrest --stanza=main --delta restore

3. αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αŸ’αžšαž»αž˜αŸ–

sudo pg_ctlcluster 11 main start

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŸαŸ’αžŠαžΆαžšαž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αž‘αžΈαž–αžΈαžšαŸ–

αžƒαŸ’αž›αžΆαŸ†αž„ (αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ pgbackrest)αŸ–

sudo pgbackrest --stanza=main backup

αž’αžŸαŸ‹αž αžΎαž™αŸ” αžŸαžšαž»αž”αžŸαŸαž…αž€αŸ’αžαžΈαž˜αž€ αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αžšαŸ†αž›αžΉαž€αž’αŸ’αž“αž€αžαžΆ αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž–αŸ’αž™αžΆαž™αžΆαž˜αž’αŸ’αžœαžΎαž–αž»αžαž‡αžΆ dba αž‡αžΆαž“αŸ‹αžαŸ’αž–αžŸαŸ‹αž‘αŸ αž αžΎαž™αž“αžΉαž„αž”αŸ’αžšαžΎαž–αž–αž€αž€αŸ’αž“αž»αž„αž±αž€αžΆαžŸαžαž·αž…αžαž½αž…αž”αŸ†αž•αž»αžαŸ” αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“β€‹αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†β€‹αžαŸ’αž›αž½αž“β€‹αž―αž„β€‹αž€αŸ†αž–αž»αž„β€‹αž…αžΆαž”αŸ‹β€‹αž•αŸ’αžαžΎαž˜β€‹αžŸαž·αž€αŸ’αžŸαžΆβ€‹αž›αžΎβ€‹αž”αŸ’αžšαž’αžΆαž“β€‹αž”αž‘β€‹αž•αŸ’αžŸαŸαž„αŸ—β€‹αžŠαžΌαž…β€‹αž‡αžΆ αž€αžΆαžšβ€‹αž”αž˜αŸ’αžšαž»αž„β€‹αž‘αž»αž€ αž€αžΆαžšβ€‹αž…αž˜αŸ’αž›αž„ αž€αžΆαžšβ€‹αžαŸ’αžšαž½αžβ€‹αž–αž·αž“αž·αžαŸ’αž™β€‹αž‡αžΆαžŠαžΎαž˜αŸ” αž αžΎαž™αžαŸ’αž‰αž»αŸ†αžŸαžšαžŸαŸαžšαžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαžαžΌαž…αŸ—αž’αŸ†αž–αžΈαž›αž‘αŸ’αž’αž•αž› αžŠαžΎαž˜αŸ’αž”αžΈαžšαž½αž˜αž…αŸ†αžŽαŸ‚αž€αžαžΌαž…αž˜αž½αž™αžŠαž›αŸ‹αžŸαž αž‚αž˜αž“αŸ αž“αž·αž„αž‘αž»αž€αžŸαž“αŸ’αž›αžΉαž€αž”αž“αŸ’αž›αŸ†αžαžΌαž…αŸ—αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž›αž½αž“αžαŸ’αž‰αž»αŸ†αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαž”αž“αŸ’αžαŸ‚αž˜ - αž€αžΆαžšαžŸαž„αŸ’αž‚αŸ’αžšαŸ„αŸ‡αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸ…αž‡αžΆαž…αž„αŸ’αž€αŸ„αž˜αžŸαŸ’αž’αžΆαž αž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž“αŸƒαž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€ αž“αž·αž„αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™αž‘αŸ… S3 αž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αžαžΆαž˜αžšαž™αŸˆ rsync αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹