ΠΠΏΡΠΎΠ²Π΅ΡΠΆΠ΅Π½ΠΈΠ΅
ΠΠ· ΡΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ. ΠΠΈΡΠ° ΠΊΠΎΠ΄, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°ΠΌ Ρ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΡΠ°ΠΌΠΎ ΠΊΠ°ΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π». Π Π½ΠΈΠΊΠ°ΠΊΡΠ² ΡΠ»ΡΡΠ°ΠΉ Π½Π΅ ΡΠ΅ ΠΏΡΠ°Π²Ρ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΠΈ ΠΎΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π° dba. ΠΠΎβ¦
Π‘Π»ΡΡΠΈ ΡΠ΅ ΡΠ°ΠΊΠ°, ΡΠ΅ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΠΌ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ postgresql. ΠΠ΅Π· ΠΎΠ±Π»Π°ΡΠΈ - ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΉΡΠ΅ SSH ΠΈ Π½Π°ΠΏΡΠ°Π²Π΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΈ Π΄Π° Π½Π΅ ΠΈΡΠΊΠ° ΠΏΠ°ΡΠΈ. ΠΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²ΠΈΠΌ Π² ΡΠ°ΠΊΠΈΠ²Π° ΡΠ»ΡΡΠ°ΠΈ? Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠ°, ΠΏΡΡ Π°ΠΌΠ΅ pgdump Π² cron, Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΎ Π² Π°ΡΡ ΠΈΠ²Π° Π²ΡΠ΅ΠΊΠΈ Π΄Π΅Π½ ΠΈ Π°ΠΊΠΎ ΡΠ΅ ΡΠ°Π·ΠΏΡΡΡΠ½Π΅ΠΌ Π½Π°ΠΏΡΠ»Π½ΠΎ, ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ ΡΠΎΠ·ΠΈ Π°ΡΡ ΠΈΠ² Π½ΡΠΊΡΠ΄Π΅ Π΄Π°Π»Π΅Ρ.
Π’ΠΎΠ·ΠΈ ΠΏΡΡ ΡΡΡΠ΄Π½ΠΎΡΡΡΠ° Π±Π΅ΡΠ΅, ΡΠ΅ ΡΠΏΠΎΡΠ΅Π΄ ΠΏΠ»Π°Π½ΠΎΠ²Π΅ΡΠ΅ Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ°ΡΡΠ΅ Ρ ΠΎΠΊΠΎΠ»ΠΎ + - 100 MB Π½Π° Π΄Π΅Π½. Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠ»Π΅Π΄ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π΄ΠΌΠΈΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΡΠΎ Π΄Π° Π°ΡΡ ΠΈΠ²ΠΈΡΠ°ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Ρ pgdump ΡΠ΅ ΠΈΠ·ΡΠ΅Π·Π½Π΅. Π’ΠΎΠ²Π° Π΅ ΠΌΡΡΡΠΎΡΠΎ, ΠΊΡΠ΄Π΅ΡΠΎ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈΡΠ΅ Π°ΡΡ ΠΈΠ²ΠΈ ΡΠ° ΠΏΠΎΠ»Π΅Π·Π½ΠΈ.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ? ΠΠΎΠ±ΡΠ΅ Π΄ΠΎΡΠ»ΠΈ ΠΏΠΎΠ΄ ΠΊΠ°Ρ.
ΠΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎΡΠΎ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅ Π΅ Π²ΠΈΠ΄ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅, ΠΊΠΎΠ³Π°ΡΠΎ Π½Π΅ ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ°Ρ Π²ΡΠΈΡΠΊΠΈ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π° ΡΠ°ΠΌΠΎ Π½ΠΎΠ²ΠΈ ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΈ ΡΠ»Π΅Π΄ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΎΡΠΎ ΠΊΠΎΠΏΠΈΠ΅.
ΠΠ°ΡΠΎ Π²ΡΠ΅ΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΊΠΎΠΉΡΠΎ Π’ΠΠ’ΠΠΠΠ Π½Π΅ ΠΆΠ΅Π»Π°Π΅ΡΠ΅ (ΠΏΠΎ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅) Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ ΡΡΠ½ΠΊΠΎΡΡΠΈΡΠ΅ Π½Π° postgres, ΠΈΡΠΊΠ°Ρ Π΄Π° Π½Π°ΠΌΠ΅ΡΡ Π·Π΅Π»Π΅Π½ Π±ΡΡΠΎΠ½. Π, Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΡΠΎ Π² AWS, DigitalOcean: Π½Π°ΡΠΈΡΠ½Π°Ρ Π΅Π΄ΠΈΠ½ Π±ΡΡΠΎΠ½ - ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, Π½Π°ΡΠΈΡΠ½Π°Ρ Π²ΡΠΎΡΠΈΡ - Π½Π°ΡΡΡΠΎΠΈΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΡ, ΡΡΠ΅ΡΠΈΡ - Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ Π²ΡΡΠ½Π° ΠΏΡΠ΅Π΄ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°ΡΠ°. ΠΠ΅ Π½Π°ΠΌΠ΅ΡΠΈΡ Π±ΡΡΠΎΠ½ ΠΈ ΠΊΡΠ°ΡΠΈΠ² GUI ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΠΊΠΎ Π·Π½Π°Π΅ΡΠ΅ ΡΠ°ΠΊΡΠ² (Π±Π΅Π·ΠΏΠ»Π°ΡΠ΅Π½ ΠΈΠ»ΠΈ Π΅Π²ΡΠΈΠ½) - ΠΏΠΈΡΠ΅ΡΠ΅ Π·Π° Π½Π΅Π³ΠΎ Π² ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅.
ΠΡΠ³ΡΠ» Π½Π°ΠΌΠ΅ΡΠΈΡ Π΄Π²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΠΏΠ³Π±Π°ΡΠΌΠ°Π½ ΠΈ pgΠΎΠ±Π»Π΅Π³Π°Π»ΠΊΠ°. Π‘ ΠΏΡΡΠ²ΠΈΡ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΡΠΏΡΡ (ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΎΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΎΠΏΠΈΡΠ°Ρ ΡΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ° Π²ΡΠΈΡΠΊΠΎ ΡΠΏΠΎΡΠ΅Π΄ ΡΡΠ°ΡΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°), Π½ΠΎ Π²ΡΠΎΡΠΎΡΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π° Π½Π° Π½ΠΈΠ²ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, Π½ΠΎ Π½Π΅ ΠΈ Π±Π΅Π· Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΊ. ΠΠ° Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΈΠ·ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΏΡΠ΅Π΄ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π·Π°Π΄Π°ΡΠ°, Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ.
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ, ΡΠ΅ Π½Π°ΡΡΠΈΡΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈ Π°ΡΡ ΠΈΠ²ΠΈ, Π΄Π° Π³ΠΈ Π·Π°ΠΏΠ°Π·Π²Π°ΡΠ΅ Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ ΡΡΡΠ²ΡΡ (Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΡ) ΠΈ Π΄Π° Π³ΠΈ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅ Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° Π·Π°Π³ΡΠ±Π° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° Π³Π»Π°Π²Π½ΠΈΡ ΡΡΡΠ²ΡΡ.
ΠΠ±ΡΡΠ΅Π½ΠΈΠ΅
Π©Π΅ Π²ΠΈ ΡΡΡΠ±Π²Π°Ρ Π΄Π²Π° VPS, Π·Π° Π΄Π° ΠΈΠ³ΡΠ°Π΅ΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ. ΠΡΡΠ²ΠΎΡΠΎ ΡΠ΅ Π΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ (Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ, Π² ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π°ΡΡ ΠΈΠ²ΠΈΡΠ΅), Π° Π²ΡΠΎΡΠΎΡΠΎ Π²ΡΡΡΠ½ΠΎΡΡ ΡΠ°ΠΌΠΈΡΡ ΡΡΡΠ²ΡΡ Ρ postgres (Π² ΠΌΠΎΡ ΡΠ»ΡΡΠ°ΠΉ Π²Π΅ΡΡΠΈΡ 11 Π½Π° postgres).
ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π° ΡΠ΅, ΡΠ΅ Π½Π° ΡΡΡΠ²ΡΡΠ° Ρ postgres ΠΈΠΌΠ°ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ root, sudo ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π», postgres ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΠΈ ΡΠ°ΠΌΠΈΡ postgres (ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ Π½Π° postgres ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° postgresql), Π° Π½Π° ΡΡΡΠ²ΡΡΠ° Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ root ΠΈ sudo ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» (ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎ ΠΈΠΌΠ΅ pgbackrest ΡΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ).
ΠΠ° Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡΠΈ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ - ΠΏΠΈΡΠ° Π² ΠΊΡΡΡΠΈΠ² ΠΊΡΠ΄Π΅, Ρ ΠΊΠ°ΠΊΡΠ² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΠΈ Ρ ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠ°Π²Π° ΡΡΠΌ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠ» ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π΄ΠΎΠΊΠ°ΡΠΎ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈ ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ ΡΡΠ°ΡΠΈΡΡΠ°.
pgΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±Π»Π΅Π³Π°Π»ΠΊΠ°ΡΠ°
Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ (ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π½Π° 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. ΠΠΈΠ΅ ΡΡΠ±ΠΈΡΠ°ΠΌΠ΅ ΠΎΠ±Π»Π΅Π³Π°Π»ΠΊΠ°ΡΠ°:
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 ΡΡΡΠ²ΡΡΠ° ΠΎΡ Π²ΡΠ½ΡΠ΅Π½ 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):
ΠΠ°ΠΏΡΠ°Π²Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ» pgΠΎΠ±Π»Π΅Π³Π°Π»ΠΊΠ°
(/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