рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдореЗрдВ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдФрд░ рд╢рдмреНрдж ...



рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░рддрд┐рдХреГрддрд┐ рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИред рдЙрд╕рдХреЗ рд▓рд┐рдП рдЖрдЬ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рд╣реИрдВ, рдЖрдк рдПрдХ рдмрдбрд╝реА, рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рд╡рдлрд╛рджрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдХрд╛рдо рд╣реИ, рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ рдПрдХ рдЬреЛрдбрд╝рд╛ рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдФрд░ рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХрд╛ рдореБрджреНрджрд╛ рдПрдХ рдЖрдкрджрд╛ рдмрди рдЧрдпрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд╛рдЗрдб рд╕рд╛рдЭрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдореИрдВрдиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдбреЗрдмрд┐рдпрди рдЬреАрдПрдирдпреВ / рд▓рд┐рдирдХреНрд╕ рдФрд░ рдлреНрд░реАрдмреАрдПрд╕рдбреА 8.2 рд╕рд░реНрд╡рд░ рдХреЗ рдмрдВрдбрд▓реЛрдВ рдкрд░ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕реАрдХреНрдпреВ 9.1 рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдерд╛



рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕:

рд╕рд░реНрд╡ 1 - рдорд╛рд╕реНрдЯрд░
рд╕рд░реНрд╡ 2 - рджрд╛рд╕

рдЧреБрд░реБ рдХрд╛ рдкрддрди


рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ Serv1 (рдорд╛рд╕реНрдЯрд░) рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдзреНрд╡рд╕реНрдд рд╣реЛ рдЧрдпрд╛, рдорд░ рдЧрдпрд╛ рдФрд░ рдЦреБрдж рдХреЛ рд╡рд┐рджреНрд░реЛрд╣ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЙрд╕реА рд╕рдордп, Serv2 рджрд╛рд╕ рдореЛрдб рдореЗрдВ рд╕реНрдерд┐рд░ рд╣реИред

рдЗрд╕рдХреЗ рдмрд╛рдж Servgr in postgresql.conf рдкрд░ рдЖрдкрдХреЛ рдЕрд╕рд╣рдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
wal_level = hot_standby max_wal_senders = 2 wal_keep_segments = 64 archive_mode = on archive_command = 'cp %p $LOG_DIR/archive/%f Serv1' 


$ HOME рдореЗрдВ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ .conf to Recovery.done
рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рднреА рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ редconf рдлрд╝рд╛рдЗрд▓
рд╕реНрдЯреИрдВрдбрдмрд╛рдп_рдореЛрдб = 'рдкрд░'
Primary_conninfo = 'рд╣реЛрд╕реНрдЯ = рдорд╛рд╕реНрдЯрд░_рд╣реЛрд╕реНрдЯ рдкреЛрд░реНрдЯ = рдорд╛рд╕реНрдЯрд░_рдкреЛрд░реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ = рдорд╛рд╕реНрдЯрд░_рдпреБрд╕рд░'
рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд_рдХрдорд╛рдВрдб = 'cp $ LOG_DIR / рд╕рдВрдЧреНрд░рд╣ /% f% p'
рдЯреНрд░рд┐рдЧрд░_рдлрд╛рдЗрд▓ = '$ рдШрд░ / рдЯреНрд░рд┐рдЧрд░'


рд╕рд░реНрд╡рд┐рд╕ 2 рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред рддреЛ Serv2 рдПрдХ рдорд╛рд╕реНрдЯрд░ рдмрди рдЬрд╛рдПрдЧрд╛ред

рдкреВрд░реНрд╡ рдорд╛рд╕реНрдЯрд░ рдХреА рдмрд╣рд╛рд▓реА


рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Serv2 рдорд╛рд╕реНрдЯрд░ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, Serv1 рдЕрдХреНрд╖рдо рд╣реИред

рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ Serv1 рдХреЛ рдЧреБрд▓рд╛рдо рдмрдирд╛рдПрдВ:

рд╕рд░реНрд╡ 2 рд░рди рдкрд░:
 psql -c "SELECT pg_start_backup('label', true)" rsync -avzh --progress $HOME/ Serv1:$HOME/ --exclude postmaster.pid psql -c "SELECT pg_stop_backup()" 


Serv1 рдкрд░ postgresql.conf рдХреЙрдиреНрдлрд┐рдЧ рдореЗрдВ, рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ рдХрд┐ Serv2 рдкрд░ рдХреНрдпрд╛ рдЕрдзреВрд░рд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН:
 #wal_level = hot_standby #max_wal_senders = 2 #wal_keep_segments = 64 #archive_mode = on #archive_command = 'cp %p $LOG_DIR/archive/%f Serv2' 


рдФрд░ рдЕрд╕рд╣рдЬрддрд╛:
 hot_standby = on 


$ HOME рдореЗрдВ, Recovery.done рдХреЛ rename

Serv1 рдкрд░ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд░рди рдХрд░реЗрдВред
рдЕрдм Serv1 рдЧреБрд▓рд╛рдо рдореЛрдб рдореЗрдВ рд╣реИред

рдЖрдк рдЙрд╕ рдкрд░ рдЪрд▓рдХрд░ рджрд╛рд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
 ps aux | grep receiver 

рдФрд░ рдлреЙрд░реНрдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
 postgres: wal receiver process (postgres) 


рдорд╛рд╕реНрдЯрд░ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдБ


(рдкрд╣рд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЛ рджреЗрдЦреЗрдВ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдХрд░реЗрдВ)

рдкреВрд░реНрд╡ рдорд╛рд╕реНрдЯрд░ Serv1 рдЕрдм рдПрдХ Serv2 рдЧреБрд▓рд╛рдо рд╣реИред рджреЛрдиреЛрдВ рдХрдбрд╝рд╛рдИ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рджрд╛рд╕ рдкреНрд░рддрд┐ рд╕рд╣реА рд╣реИ, рд╡рд┐рд╕рдВрдЧрддрд┐ рдиреНрдпреВрдирддрдо рд╣реИред

рдПрдХ рдорд╛рд╕реНрдЯрд░ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП Serv1:

рдЙрд╕ рдкрд░ postgresql.conf рдЕрд╕рд╣рдЬрддрд╛ рдореЗрдВ
 wal_level = hot_standby max_wal_senders = 2 wal_keep_segments = 64 archive_mode = on archive_command = 'cp %p $LOG_DIR/archive/%f' 


рдмрдВрдж рдХрд░реЛ Serv2 (рдЬреЛ рдЕрдм рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдЯрд░ рд╣реИ) рдФрд░ Serv1 рдкрд░ $ HOME рдореЗрдВ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ редconf to Recovery.done

рдЕрдм Serv1 рдлрд┐рд░ рд╕реЗ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдЧреБрд░реБ рд╣реИред

рдПрдХ Serv2 рджрд╛рд╕ рдХреЛ рдЕрдбрд╝рдЪрди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП:

рд╕рд░реНрд╡ 1 рдкрд░, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
 psql -c "SELECT pg_start_backup('label', true)" rsync -avzh --progress $HOME/ Serv2:$HOME/ --exclude postmaster.pid psql -c "SELECT pg_stop_backup()" 


Postgresql.conf рдореЗрдВ Serv2 рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ:
 #wal_level = hot_standby #max_wal_senders = 2 #wal_keep_segments = 64 #archive_mode = on #archive_command = 'cp %p $LOG_DIR/archive/%f' 


рдФрд░ рдЕрд╕рд╣рдЬрддрд╛:
 hot_standby = on 


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ Serv2 рдореЗрдВ $ HOME рдХрд╛ рдирд╛рдо рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐.d.d рд░рд┐рдХрд╡рд░реА рдХреЗ рд▓рд┐рдП рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ редconf

Serv2 рдкрд░ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд░рди рдХрд░реЗрдВред рдЕрдм Serv2 рдлрд┐рд░ рд╕реЗ рдЧреБрд▓рд╛рдо рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рд╣реЛ рдЧрдпрд╛ред рдЕрдм рд╕рдм рдХреБрдЫ рдЕрдкрдиреА рдЬрдЧрд╣ рд╣реИ: рд╕рд░реНрд╡ 1 - рдорд╛рд╕реНрдЯрд░, рд╕рд░реНрд╡ 2 - рджрд╛рд╕ред



рдореИрдВ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдФрд░ рдирд┐рдореНрди-рд╕реНрддрд░ рдХреЗ рдЪрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдорд╛рдлреА рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдиреЗрдЯ рдкрд░ рд╕рдордЧреНрд░ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдирд╢реНрд╡рд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдкрд╛рдИ рдЧрдИ рдереА, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрд╡реЗрджрди рдорд┐рд▓реЗрдЧрд╛ (:

Source: https://habr.com/ru/post/In173623/


All Articles