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 рд╢рд┐рд╡рд╛рдп рдЪрд╛рд▓рд╡рддреЛ.

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рд╕рд░реНрд╡реНрд╣рд░ (рд╕реБрдбреЛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдХрд┐рдВрд╡рд╛ рд░реВрдЯ):

рдПрдХ рдХреА рдЬреЛрдбреА рддрдпрд╛рд░ рдХрд░рд╛:

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 рд╡рд╛рдкрд░рдХрд░реНрддрд╛):

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рд╕рд░реНрд╡реНрд╣рд░рдЪреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреА рд░рд┐рдкреЙрдЭрд┐рдЯрд░реА рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдХреЙрдкреА рдХрд░рд╛:

(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

рей. рдЪрд▓рд╛ pgbackrest рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧ рдХрд░реВрдпрд╛ (/etc/pgbackrest/pgbackrest.conf):

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

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

рек. 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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛