ááŸááºážáááºážáá»ááº
áá»áœááºáá±á¬áºá developer áá áºáá±á¬ááºáá«á áá»áœááºáá±á¬áº áá¯ááºáá±ážááŒá®áž áá±áá¬áá±á·á áºááᯠá¡áá¯á¶ážááŒá¯áá°áá áºáá±á¬ááºá¡áá±áá²á·áᬠá¡ááŒááºá¡ááŸáẠáá¯á¶á·ááŒááºáá«áááºá áááºáááºážáá²á·á០áá»áœááºáá±á¬áºá dba ááẠá¡áá»á¬ážááŒá®ážáááºážáá²á· system administrator áá áºáá±á¬ááºááᯠáááºáá±á¬ááºáá«áááºá áá«áá±ááá·áºâŠ
postgresql áá±áá¬áá±á·á áºá á¡áááºáá°ážáá°ááŸá¯ááᯠá á¯á ááºážááẠááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº ááá¯ááá¯á·ááŒá áºáá²á·ááááºá ááááºáááŸááá« - SSH ááá¯áá¯á¶ážáá¯á¶ááŒáá·áº ááœá±ááá±á¬ááºážáá² á¡áá¬á¡á¬ážáá¯á¶áž á¡áááºááŒá±ááŒá±á¬ááºáž áá±áá»á¬áá«á á±á áá®ááá¯ááá á¹á ááœá±ááŸá¬ áá«ááá¯á·áá¬áá¯ááºááá²á ááŸááºáá«áááºá áá»áœááºá¯ááºááá¯á· pgdump ááᯠcron áá²ááá¯á· ááœááºážáá»ááŒá®áž á¡áá¬á¡á¬ážáá¯á¶ážááᯠarchive ááá¯á· áá±á·ááá¯ááºáž á¡áááºáá°ážááŒá®áž áá¯á¶ážááá»á±á¬ááºááœá¬ážáá«áá ဠarchive ááᯠá¡áá±ážáá áºáá±áá¬ááá¯á· ááá¯á·áá±ážáá«áááºá
á€áá áºááŒáááºááœáẠá¡áááºá¡áá²ááŸá¬ á¡á á®á¡á ááºáá»á¬ážá¡ááá¯ááºážá áá±áá¬áá±á·á áºááẠáá áºáá±á·áá»áŸáẠ+- 100 MB ááá·áº ááá¯ážáá¬áááºáᯠáá°áááááºá áá¯ááºáá«áááºá áááºááá¹ááááºá¡áááºážáááºááŒá¬ááŒá®ážáá±á¬áẠpgdump ááŒáá·áº á¡áá¬á¡á¬ážáá¯á¶ážááᯠá¡áááºáá°ážááá¯áá±á¬ááá¹á áá»á±á¬ááºááœá¬ážáááá·áºáááºá á€áá±áá¬ááœáẠááá¯ážááŒáá·áºáá±á¬ á¡áááºááááºážáááºážááŸá¯áá»á¬ážááᯠáááºáááºáá¬áá±á¬ááºáá«áááºá
á
áááºáááºá
á¬ážá
áá¬áá¬áž? ááŒá±á¬ááºááŸááŒáá¯ááá¯áá«áááºá
Incremental backup ááẠá¡áááºážá¡ááŒá áºááá¯ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá°ážáá°ááŒááºážáááŒá¯áá² ááááºáááá¹áá°áááºáá®ážááŒá®ážááááºážá á¡áá áºáá»á¬ážááŸáá·áº ááŒá±á¬ááºážáá²áá¬ážááá·áºá¡áá¬áá»á¬ážááá¯áᬠáá°ážáá°áá¬ážááá·áº á¡áááºá¡áá»áá¯ážá¡á á¬ážáá áºáá¯ááŒá áºáááºá
Postgres á ááŸá¯ááºááœá±ážááœá±áá®ááŸá¯ááᯠáá¬ážáááºááẠáá¯á¶ážá (ááá¯á¡áá»áááºá) áá¯á¶ážááááá¯áá¬ážáá±á¬ developer áá»á¬ážáá²á·ááá¯á·ááẠá¡á áááºážáá±á¬ááºááá¯ááºááᯠáá»áœááºáá±á¬áºááŸá¬áá»ááºáá²á·áááºá AWSá DigitalOcean áá²á·ááá¯á·áááºá áááºááẠááá¯ááºáá áºáá¯ááᯠááŸáááºááá¯ááºááẠ- áááºáá¯á¶áá°áá°ážáá»ááŒááºážááᯠáá¶ááááºá áá¯áááááᯠááŸáááºááá¯ááºááẠ- ááẠbackups ááᯠá áá áºááá·áºááœááºážáááºá ááááááẠ- á¡áá¬á¡á¬ážáá¯á¶ážááᯠáá¬áá®á¡áááºážáááºááŒá¬á¡á±á¬áẠááŒááºááŸááá·áºááá¯ááºáá«áááºá ááá¯áẠááá¯á·ááá¯áẠááŸááá±á¬ GUI áááááá¬ááᯠáá»áœááºá¯áẠááŸá¬áááœá±á·áá«á áááºáá áºáŠáž (á¡ááá²á·ááá¯á·ááá¯ááºá á»á±ážáá±á«) áááá«ááááºážááá¯ááŸááºáá»ááºáá»á¬ážááœááºáá±ážáá«á
Googling áá¯ááºááŒá®ážááẠTool ááŸá áºáá¯ááœá±á·áááºá pgbarman О pgbackrest. ááááá áºáá¯áá²á· áá»áœááºáá±á¬áº ááá¯ážááá¯ážááŸááºážááŸááºáž áá¡á±á¬ááºááŒááºáá²á·áá«áá°áž (á¡áááºážáá»á²áá«ážáá²á· á á¬ááœááºá á¬áááºážáá±á¬ááºážááœá±á áááºá áœá²á á¬á¡á¯ááºáá±á¬ááºážááœá±á¡á á¡áá¬á¡á¬ážáá¯á¶ážááᯠáá±á¬áºáá¯ááºááá¯á· ááŒáá¯ážá á¬ážáá²á·áááº)á áá«áá±ááá·áº áá¯ááááá áºáá¯á á á¬ááœááºá á¬áááºážáá²á· ááá¯ááºáá®áá±ááá·áº áá»áá¯á·ááœááºážáá»ááºáááŸááá²á·áá«áá°ážá á¡áá¬ážáá°á¡áá¯ááºááŸáá·áºááŒá¯á¶ááœá±á·áá±ááá°áá»á¬ážáá¡áá¯ááºááá¯ááá¯ážááŸááºážá á±áááºá€áá±á¬ááºážáá«ážááá¯áá±ážáá¬ážáá²á·áááºá
á€áá±á¬ááºážáá«ážááá¯áááºááŸá¯ááŒá®ážáá±á¬ááºá á¡ááá¯á¡áááºáá»á¬ážááŒá¯áá¯ááºáááºážá áááºážááá¯á·ááᯠá¡áá±ážááááºážáá¬áá¬áá áºáá¯ááœáẠááááºážáááºážááŒá®áž áááºááá¬áá¬ááœáẠáá±áá¬áá¯á¶ážááŸá¯á¶ážááŸá¯ ááá¯á·ááá¯áẠá¡ááŒá¬ážááŒá¿áá¬áá»á¬ážááŸááá±á¬á¡áá«ááœáẠáááºážááá¯á·ááᯠááŒááºáááºááá°ááááºááŒá áºáá«áááºá
áá±á·áá»ááºá·áá±áž
áááºá áœá²á á¬á¡á¯ááºááᯠááŒááºáááºáá¯ááºáá±ááẠVPS ááŸá áºáᯠááá¯á¡ááºáá«áááºá ááááá áºáá¯á ááá¯ááŸá±á¬ááºááŸá¯ (á¡áááºááááºážáááºážáá¬ážááá·áº ááá¯ááŸá±á¬ááºááŸá¯) ááŒá áºááŒá®áž áá¯áááááŸá¬ á¡ááŸááºááŸá¬á postgres ááŒáá·áº áá¬áá¬ááá¯ááºááá¯áẠ(áá»áœááºá¯ááºááá á¹á ááœááºá postgres áá¬ážááŸááºáž 11) ááŒá áºáááºá
postgres áá«ááá·áº áá¬áá¬ááœáẠááá·áºááœáẠrootá sudo á¡áá¯á¶ážááŒá¯áá°á postgres á¡áá¯á¶ážááŒá¯áá°ááŸáá·áº postgres ááá¯ááºááá¯áẠáááºáááºáá¬ážááẠ(postgres á¡áá¯á¶ážááŒá¯áá°ááᯠpostgresql ááá·áºááœááºážááá·áºá¡áá« á¡ááá¯á¡áá»á±á¬áẠáááºáá®ážáá¬ážáááº)á repository server ááœáẠroot ááŸáá·áº sudo user ááŸáááẠ(áááºá áœá²á á¬á¡á¯ááºáá²ááœáẠá¡áá¯á¶ážááŒá¯áá°á¡ááẠpgbackrest ááᯠá¡áá¯á¶ážááŒá¯áá«áááºá)
ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠááŒááºáááºáá¯ááºáá¯ááºáá¬ááœáẠááá·áºááœáẠááŒá¿áá¬á¡áááºážáááºááŸáá á±áááºá áá»áœááºá¯ááºááẠá á¬áá¯á¶ážá á±á¬ááºážááŒáá·áºáá±ážáá«áááºá áááºááŸá¬á ááẠuser áá²á· áááºá¡ááœáá·áºá¡áá±ážáá²á· áá« command ááᯠexecute áá¯ááºáá¬áá²á áá±á¬ááºážáá«ážááᯠáá±ážááŒá®áž á á áºáá±ážáá±á ááºá
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) á
postgres áá«áá±á¬ áá¬áá¬áá áºáá¯áá±á«áºááœáẠ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 ááŸááºáááºá áœá¬á¡áá¯ááºáá¯ááºááá¯ááºá á±áááºá¡ááœááºá áá±á¬á·ááá¯ááºááá¯á¡áá¯á¶ážááŒá¯á postgres áá¬áá¬ááŸáá·áº repository á¡ááŒá¬ážá¡ááŒááºá¡ááŸááºáááºááœááºááŸá¯ááᯠconfigure ááŒá¯áá¯ááºáááºááá¯á¡ááºáá«áááºá
ááá¯ááŸá±á¬ááºááŸá¯ (á¡áá¯á¶ážááŒá¯áá° pgbackrest):
áá±á¬á·ááœá²áá
áºáá¯ááᯠáááºáá®ážáá«-
mkdir -m 750 /home/pgbackrest/.ssh
ssh-keygen -f /home/pgbackrest/.ssh/id_rsa
-t rsa -b 4096 -N ""
ááááá±ážááŒááºáž! sudo ááá«áá² á¡áááºáá±á¬áºááŒáá« command áá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· áá¯ááºáá±á¬ááºáá«áááºá
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 ""
Repository (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 user á¡ááœáẠpassword ááá¯áá±á¬ááºážáá«áááá·áºáááºá postgres áá¬áá¬á root á¡áá¯á¶ážááŒá¯áá°á á áá¬ážááŸááºááᯠáááºááá·áºááœááºážááẠááá¯á¡ááºáá«áááºá
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 user á¡ááœáẠpassword ááá¯áá±á¬ááºážáá«áááá·áºáááºá áááºááẠrepository á root á¡áá¯á¶ážááŒá¯áá°áá áá¬ážááŸááºááá¯á¡ááá¡áá»ááá·áºáááºááá¯á¡ááºáááºá
áá«ááá¯á·á á áºáá±ážáááº
Repository (á ááºážáááºááŸá¯áááá·áºááŸááºážááŸá¯á¡ááœáẠroot á¡áá¯á¶ážááŒá¯áá°):
sudo -u pgbackrest ssh postgres@<postgres_server_ip>
Postgres áá¬áᬠ(á ááºážáááºááŸá¯áááá·áºááŸááºážááŸá¯á¡ááœáẠroot á¡áá¯á¶ážááŒá¯áá°):
sudo -u postgres ssh pgbackrest@<repository_server_ip>
áá»áœááºá¯ááºááá¯á·ááẠááŒá¿áá¬áááŸááá² áááºáá±á¬ááºááœáá·áºáááẠáá±áá»á¬áá«áááºá
Postgres áá¬áá¬ááᯠá áá áºááá·áºááœááºážááŒááºážá
Postgres áá¬áᬠ(sudo á¡áá¯á¶ážááŒá¯áá° ááá¯á·ááá¯áẠroot) á
1. ááŒááºá IP áá»á¬ážá០postgres áá¬áá¬ááᯠáá±á«ááºááœáá·áºááŒá¯ááá¯ááºááŒáá«á áá¯á·á áá®ááá¯áá¯ááºááá¯á·á ááá¯ááºááá¯áááºážááŒááºáá«á postgresql.conf ( /etc/postgresql/11/main ááá¯ááºááœá²ááœáẠáááºááŸááááº)á áááºážááá¯á· á á¬ááŒá±á¬ááºážááá·áºááŒááºáž-
listen_addresses = '*'
ááá¯ááá¯á·áá±á¬á á¬ááŒá±á¬ááºážááŸáááŸáá·áºááŒá®ážáá«áá áááºážááá¯ááŸááºáá»ááºááá±ážáá² ááá¯á·ááá¯áẠááá·áºáááºáááºááá¯ážááᯠ'*' á¡ááŒá ẠáááºááŸááºáá«á
ááá¯ááºáá²ááŸá¬ pg_hba.conf ( folder áá²ááŸá¬áááºáž áá«áá«áááºá /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 (á¡á²áá«á folder áá²ááŸá¬ááŸááááºá /etc/postgresql/11/mainpgbackrest á¡áá¯ááºáá¯ááºáááº)
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 á¡áá¯á¶ážááŒá¯áá°):
configuration file ááœáẠááá¯á¡ááºáá±á¬ áááºáááºáá»á¬ážááᯠááŒá¯áá¯ááºááŒáá«á
áá¯á· 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
ááŒáá·áºááŸá¯á á áºáá±ážááŒááºáž
Postgres áá¬áᬠ(sudo á¡áá¯á¶ážááŒá¯áá° ááá¯á·ááá¯áẠroot) á
áá»áœááºá¯ááºááá¯á·ááẠpostgres áá¬áá¬ááœáẠá á áºáá±ážáááº-
sudo -u postgres pgbackrest --stanza=main --log-level-console=info check
ááá¯ááŸá±á¬ááºááŸá¯ (pgbackrest á¡áá¯á¶ážááŒá¯áá°):
áá»áœááºá¯ááºááá¯á·ááẠrepository server ááá¯á á áºáá±ážáááº-
sudo -u pgbackrest pgbackrest --stanza=main --log-level-console=info check
output ááœáẠ"check command end: á¡á±á¬ááºááŒááºá áœá¬ááŒá®ážáá¯á¶ážáááº" áá°áá±á¬á á¬ááŒá±á¬ááºážááá¯áá»áœááºá¯ááºááá¯á·ááŒááºááŒá±á¬ááºážáá±áá»á¬áá«á á±á
áááºáááºážáá±ááŒá®áá¬áž? á áááºáááºá á¬ážá áá¬á¡áá±á¬ááºážáá¯á¶ážá¡ááá¯ááºážááᯠáááºááœá¬ážááŒáá¡á±á¬ááºá
á¡áááºááááºážááŒááºážá
ááá¯ááŸá±á¬ááºááŸá¯ (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
á¡áá±ážá ááẠconsole output ááᯠááá¯áá»ááºáá«áá ááá¯á·áá±á¬áẠáááºááŸááºáá«-
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 --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 áá±áá¬áá±á·á áºááᯠáááºáááºáá®ážááá·áº ááœá±áá±ážááœá±áá°áá áºáá¯ááœáẠááá¯ááºáá±á¬ááºááá¯ááºáá«)á ááá¯ážááá¯ážáá¬ážáá¬áž ááŒá±á¬áááẠáá«á áá¬áá²á· áááºá ááºáá±áááºááá¯áᬠáá¬ážááááºáá±ážáá°ážá ááŒá±ááŸááºážáá»ááºááŸá¬ á¡á±á¬ááºáá«á¡ááá¯ááºážááŒá áºááẠ(ááẠcommand ááá¯áá¯ááºáá±á¬ááºááŒá®ážáá«á á¡áááºážáááºá á±á¬áá·áºááá¯ááºážááẠááá¯á¡ááºáá«áááº)á
sudo -u postgres psql -c "select pg_wal_replay_resume()"
á¡ááŸááºááŸá¬á áááºážááẠáááºážáá¡áááºááŒáá·áº áá®ážááŒá¬ážá¡áááºáá°ážáá°ááŸá¯ááᯠááŒááºáááºááá°ááá¯ááºáááºá áá®ááŸá¬ áá«áá¬
3. á¡á á¯á¡áá±ážááᯠá áááºáá«-
sudo pg_ctlcluster 11 main start
á¡áááºááááºážááŒááºážááᯠááŒááºáááºááá°ááŒá®ážáá±á¬ááºá áá»áœááºá¯ááºááá¯á·ááẠáá¯áááá¡áááºáá°ážáá°ááẠááá¯á¡ááºáááº-
ááá¯ááŸá±á¬ááºááŸá¯ (pgbackrest á¡áá¯á¶ážááŒá¯áá°):
sudo pgbackrest --stanza=main backup
áá«áá«áá²á áááá¯á¶ážáá»á¯ááºá¡áá±áá²á·á áá«áᬠá á®áá®áᬠdba áá áºáá±á¬ááºááᯠáááºáá±á¬ááºááá¯á· áááºááá¯á០áááŒáá¯ážá á¬ážáá² ááááºááœá±ááᯠá¡ááœáá·áºá¡áá±ážáááºážáááºážáá²á· á¡áá¯á¶ážáá»ááœá¬ážááŸá¬ááŒá áºááŒá±á¬ááºáž áááá¯á¶ážáá»á¯ááºá¡áá±áá²á· ááááá±ážááá¯áá«áááºá áááºááŸáááœááºá áá»áœááºá¯ááºááá¯ááºááá¯ááºááẠá¡áááºááááºážááŒááºážá áá¯á¶áá°áá°ážááŒááºážá á á±á¬áá·áºááŒáá·áºááŒááºážá áááºááŒáá·áº á¡ááŒá±á¬ááºážá¡áá¬á¡áá»áá¯ážáá»áá¯ážááᯠá áááºáá±á·áá¬áá±áá«áááºá áááºááœá¬á¡ááœáẠáá±ážáááºáá²á· áá¶á·ááá¯ážáá°áá®ááŸá¯áá²á· ááá¯áá·áºá¡ááœáẠááááºáá¬á á¬ááœááºáá±ážááœá± áá»ááºáá¬ážááá¯ááºááá¯á· ááááºááœá±á¡ááŒá±á¬ááºáž á¡á á®áááºáá¶á á¬áá±ážááœá±áá±ážáááºá
á¡á±á¬ááºáá±á¬áºááŒáá«áá±á¬ááºážáá«ážáá»á¬ážááœáẠáá±á¬ááºáááºá¡ááºá¹áá«áááºáá»á¬áž - ááá·áºááŸááºážáá±á¬á¡á
á¯á¡áá±ážááá¯á· áá±áá¬ááŒááºáááºááá°ááŒááºážá áááá¹áá°á
á¬ááŸááºááŒááºážááŸáá·áº S3 ááá¯á·ááŒáá·áºáá»áááŒááºážá rsync ááŸáá
áºááá·áº á¡áááºááááºážáááºážááŒááºážáá»á¬ážá¡ááŒá±á¬ááºáž ááœá±ážááœá±ážáá«áááºá
source: www.habr.com