pgbackrest рд╕рдБрдЧ рд╡реГрджреНрдзрд┐рд╢реАрд▓ postgresql рдмреНрдпрд╛рдХрдЕрдкрд╣рд░реВ - рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдмрд╛рдЯ рдПрдХ рдпреБрд╡рд╛ рд▓рдбрд╛рдХреБрдХреЛ рд▓рд╛рдЧрд┐ рдкрд╛рдареНрдпрдХреНрд░рдо

рдЕрд╕реНрд╡реАрдХрд░рдг

рдо рдПрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рд╣реБрдБред рдо рдХреЛрдб рд▓реЗрдЦреНрдЫреБ рд░ рдбрд╛рдЯрд╛рдмреЗрд╕рд╕рдБрдЧ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рд░реВрдкрдорд╛ рдорд╛рддреНрд░ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдЫреБред рдХреБрдиреИ рдкрдирд┐ рд╣рд┐рд╕рд╛рдмрд▓реЗ рдо рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╢рд╛рд╕рдХ рднрдПрдХреЛ рдмрд╣рд╛рдирд╛ рдЧрд░реНрджрд┐рди, рдзреЗрд░реИ рдХрдо рдПрдХ dbaред рддрд░тАж

рдпреЛ рдпрд╕реНрддреЛ рднрдпреЛ рдХрд┐ рдорд▓рд╛рдИ postgresql рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдмреНрдпрд╛рдХрдЕрдк рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдХреБрдиреИ рдХреНрд▓рд╛рдЙрдб рдЫреИрди - рдХреЗрд╡рд▓ SSH рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдкреИрд╕рд╛ рдирдЫреЛрдбрд┐рдХрди рд╕рдмреИ рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпрд╕реНрддреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рд╣рд╛рдореАрд▓реЗ рдХреЗ рдЧрд░реНрдиреЗ? рддреНрдпреЛ рд╕рд╣рд┐ рд╣реЛ, рд╣рд╛рдореА pgdump рд▓рд╛рдИ рдХреНрд░реЛрдирдорд╛ рдзрдХреЗрд▓реНрдЫреМрдВ, рд╣рд░реЗрдХ рджрд┐рди рдЕрднрд┐рд▓реЗрдЦрдорд╛ рд╕рдмреИ рдХреБрд░рд╛ рдмреНрдпрд╛рдХрдЕрдк рдЧрд░реНрдЫреМрдВ, рд░ рдпрджрд┐ рд╣рд╛рдореА рдкреВрд░реНрдгрддрдпрд╛ рд╣рд░рд╛рдпреМрдВ рднрдиреЗ, рд╣рд╛рдореА рдпреЛ рдЕрднрд┐рд▓реЗрдЦ рдХрддреИ рдЯрд╛рдврд╛ рдкрдард╛рдЙрдБрдЫреМрдВред

рдпрд╕ рдкрдЯрдХ рдХрдард┐рдирд╛рдИ рдпреЛ рдерд┐рдпреЛ рдХрд┐ рдпреЛрдЬрдирд╛рд╣рд░реБ рдЕрдиреБрд╕рд╛рд░, рдбрд╛рдЯрд╛рдмреЗрд╕ рдкреНрд░рддрд┐ рджрд┐рди рд▓рдЧрднрдЧ +- 100 MB рд▓реЗ рдмрдвреНрдиреЗ рдерд┐рдпреЛред рдЕрд╡рд╢реНрдп рдкрдирд┐, рдХреЗрд╣рд┐ рд╣рдкреНрддрд╛ рдкрдЫрд┐ pgdump рдХреЛ рд╕рд╛рде рд╕рдмреИ рдЪреАрдЬ рдЬрдЧреЗрдбрд╛ рдЧрд░реНрдиреЗ рдЗрдЪреНрдЫрд╛ рдЧрд╛рдпрдм рд╣реБрдиреЗрдЫред рдпреЛ рдЬрд╣рд╛рдБ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдмреНрдпрд╛рдХрдЕрдкрд╣рд░реВ рдЙрджреНрдзрд╛рд░рдорд╛ рдЖрдЙрдБрдЫрдиреНред

рд░реЛрдЪрдХ? рдмрд┐рд░рд╛рд▓реЛрдорд╛ рд╕реНрд╡рд╛рдЧрдд рдЫред

рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдмреНрдпрд╛рдХрдЕрдк рдмреНрдпрд╛рдХрдЕрдкрдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реЛ рдЬрдм рд╕рдмреИ рд╕реНрд░реЛрдд рдлрд╛рдЗрд▓рд╣рд░реВ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд╣реБрдБрджреИрдирдиреН, рддрд░ рдХреЗрд╡рд▓ рдирдпрд╛рдБрд╣рд░реВ рд░ рддреА рдЕрдШрд┐рд▓реНрд▓реЛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐рдХреЛ рд╕рд┐рд░реНрдЬрдирд╛ рдкрдЫрд┐ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫрдиреНред

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕рдХреЛ рдЬрдЯрд┐рд▓рддрд╛рд╣рд░реВ рдмреБрдЭреНрди рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЕрдирд┐рдЪреНрдЫреБрдХ (рддреНрдпрд╕ рд╕рдордпрдорд╛) рдХреБрдиреИ рдкрдирд┐ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдЬрд╕реНрддреИ, рдо рд╣рд░рд┐рдпреЛ рдмрдЯрди рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред рдард┐рдХ рдЫ, рддрдкрд╛рдИрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ, AWS, DigitalOcean рдорд╛ рдЬрд╕реНрддреИ: рддрдкрд╛рдИрдВрд▓реЗ рдПрдЙрдЯрд╛ рдмрдЯрди рдерд┐рдЪреНрдиреБрднрдпреЛ - рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рдкрд╛рдЙрдиреБрднрдпреЛ, рддрдкрд╛рдИрдВрд▓реЗ рджреЛрд╕реНрд░реЛ рдерд┐рдЪреНрдиреБрднрдпреЛ - рддрдкрд╛рдИрдВрд▓реЗ рдмреНрдпрд╛рдХрдЕрдкрд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрдиреБрднрдпреЛ, рддреЗрд╕реНрд░реЛ - рддрдкрд╛рдИрдВрд▓реЗ рдХреЗрд╣реА рдШрдгреНрдЯрд╛рдорд╛ рд╕рдмреИ рдХреБрд░рд╛ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдиреБрднрдпреЛред рдореИрд▓реЗ рдмрдЯрди рд╡рд╛ рд╕реБрдиреНрджрд░ GUI рдЙрдкрдХрд░рдг рдлреЗрд▓рд╛ рдкрд╛рд░реЗрдиред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдПрдХ рдЬрд╛рдиреНрдиреБрд╣реБрдиреНрдЫ (рдирд┐: рд╢реБрд▓реНрдХ рд╡рд╛ рд╕рд╕реНрддреЛ), рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВрдорд╛ рдпрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реНред

рдЧреБрдЧрд▓рд┐рдЩ рдЧрд░реЗрдкрдЫрд┐ рдореИрд▓реЗ рджреБрдИрд╡рдЯрд╛ рдФрдЬрд╛рд░ рднреЗрдЯреНрдЯрд╛рдПрдБ pgbarman ╨╕ pgbackrestред рдо рдХреЗрд╡рд▓ рдкрд╣рд┐рд▓реЛрдХреЛ рд╕рд╛рде рд╕рдлрд▓ рднрдПрди (рдзреЗрд░реИ рд╡рд┐рд░рд▓ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ, рдореИрд▓реЗ рдкреБрд░рд╛рдиреЛ рдореНрдпрд╛рдиреБрдЕрд▓рд╣рд░реВ рдЕрдиреБрд╕рд╛рд░ рд╕рдмреИ рдХреБрд░рд╛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗрдВ), рддрд░ рджреЛрд╕реНрд░реЛрдХреЛ рд╕рд╛рде рдХрд╛рдЧрдЬрд╛рдд рдмрд░рд╛рдмрд░ рднрдпреЛ, рддрд░ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдмрд┐рдирд╛ред рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реНрдиреЗрд╣рд░реВрдХреЛ рдХрд╛рдорд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрди, рдпреЛ рд▓реЗрдЦ рд▓реЗрдЦрд┐рдПрдХреЛ рдерд┐рдпреЛред

рдпреЛ рд▓реЗрдЦ рдкрдврд┐рд╕рдХреЗрдкрдЫрд┐, рддрдкрд╛рдИрд▓реЗ рдХрд╕рд░реА рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдмреНрдпрд╛рдХрдЕрдкрд╣рд░реВ рдмрдирд╛рдЙрдиреЗ, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд░рд┐рдореЛрдЯ рд╕рд░реНрднрд░рдорд╛ рдмрдЪрдд рдЧрд░реНрдиреЗ (рдмреНрдпрд╛рдХрдЕрдкрд╣рд░реВ рд╕рд╣рд┐рддрдХреЛ рднрдгреНрдбрд╛рд░) рд░ рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рд╡рд╛ рдореБрдЦреНрдп рд╕рд░реНрднрд░рдорд╛ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рд╕рд┐рдХреНрдиреБрд╣реБрдиреЗрдЫред

рдкреНрд░рд╢рд┐рдХреНрд╖рдг

рдореНрдпрд╛рдиреБрдЕрд▓ рдкреБрди: рдЙрддреНрдкрд╛рджрди рдЧрд░реНрди рддрдкрд╛рдИрдВрд▓рд╛рдИ рджреБрдИ VPS рдЪрд╛рд╣рд┐рдиреНрдЫред рдкрд╣рд┐рд▓реЛ рднрдгреНрдбрд╛рд░рдг рд╣реБрдиреЗрдЫ (рднрдгреНрдбрд╛рд░ рдЬрд╕рдорд╛ рдмреНрдпрд╛рдХрдЕрдкрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдиреЗрдЫ), рд░ рджреЛрд╕реНрд░реЛ, рд╡рд╛рд╕реНрддрд╡рдорд╛, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕рдХреЛ рд╕рд╛рде рд╕рд░реНрднрд░ (рдореЗрд░реЛ рдорд╛рдорд▓рд╛рдорд╛, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕рдХреЛ рд╕рдВрд╕реНрдХрд░рдг резрез)ред

рдпреЛ рдорд╛рдирд┐рдиреНрдЫ рдХрд┐ postgres рдХреЛ рд╕рд╛рде рд╕рд░реНрднрд░рдорд╛ рддрдкрд╛рдИрдВрд╕рдБрдЧ root, sudo рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛, postgres рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд░ postgres рдЖрдлреИрдВ рд╕реНрдерд╛рдкрд┐рдд рдЫ (postgresql рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджрд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рд╣реБрдиреНрдЫ), рд░ рднрдгреНрдбрд╛рд░ рд╕рд░реНрднрд░рдорд╛ рд░реВрдЯ рд░ sudo рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЫ (рдореНрдпрд╛рдиреБрдЕрд▓рдорд╛ред рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо 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

рен. рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

pgbackrest version

Postgres рд╕рд░реНрднрд░ (sudo рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛ рд░реВрдЯ):

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕рдХреЛ рд╕рд╛рде рд╕рд░реНрднрд░рдорд╛ 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 рд╕рд░реНрднрд░ рд░ рднрдгреНрдбрд╛рд░ рдмреАрдЪ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рднрдгреНрдбрд╛рд░ (рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ pgbackrest):

рдХреБрдЮреНрдЬреА рдЬреЛрдбреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

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

рд╕рд╛рд╡рдзрд╛рдиреА рд╣рд╛рдореА рдорд╛рдерд┐рдХрд╛ рдЖрджреЗрд╢рд╣рд░реВ рдмрд┐рдирд╛ sudo рдЪрд▓рд╛рдЙрдБрдЫреМрдВред

Postgres рд╕рд░реНрднрд░ (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

рдпрд╕ рдЪрд░рдгрдорд╛ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд░реВрдЯ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкрд╛рд╕рд╡рд░реНрдбрдХреЛ рд▓рд╛рдЧрд┐ рд╕реЛрдзрд┐рдиреЗрдЫред рддрдкрд╛рдИрдВрд▓реЗ postgres рд╕рд░реНрднрд░рдХреЛ рд░реВрдЯ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ!

Postgres рд╕рд░реНрднрд░ (sudo рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛):

рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕рдХреЛ рд╕рд╛рде рд╕рд░реНрднрд░рдорд╛ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдЮреНрдЬреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

(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 рд╕рд░реНрднрд░ (sudo рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛ рд░реВрдЯ):

1. рдмрд╛рд╣реНрдп рдЖрдИрдкреАрд╣рд░реВрдмрд╛рдЯ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рд╕рд░реНрднрд░рдорд╛ рджрд╕реНрддрдХ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреБрд╣реЛрд╕реНред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдлрд╛рдЗрд▓ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдиреБрд╣реЛрд╕реН 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 - ╤Б╨┐╨╛╤Б╨╛╨▒ ╤И╨╕╤Д╤А╨╛╨▓╨░╨╜╨╕╤П ╨┐╨░╤А╨╛╨╗╤П

реи. рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдЩреНрд╣рд░реВ рднрд┐рддреНрд░ рдЧрд░реМрдВ 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

рдирд┐рд░реАрдХреНрд╖рдг

Postgres рд╕рд░реНрднрд░ (sudo рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛ рд░реВрдЯ):

рд╣рд╛рдореА 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 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛):

рез. рдмреНрдпрд╛рдХрдЕрдк рдЧрд░реНрдиреБрд╣реЛрд╕реН:

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 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛ рд░реВрдЯ):

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди