рдЯреНрд░реВ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдореЗрдВ, рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдХреНрдпреВрдПрд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ 9.6 рд╕реЗ 11.1 рддрдХ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖ рдЧрдИ рд╣реИред
рдХреНрдпреЛрдВ? рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдХрд╛рд░ рдореЗрдВ 1.5 Tb рд╣реИ рдФрд░ рдмрдврд╝ рд░рд╣рд╛ рд╣реИред рдкреНрд░рджрд░реНрд╢рди рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдФрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╕реНрд╡рдпрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИ: рдирдП рдХреЙрд▓рдо рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ, рдореМрдЬреВрджрд╛ рд╡рд╛рд▓реЗ рдмрджрд▓ рджрд┐рдП рдЧрдП рд╣реИрдВред Postgres рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдиреЗ рд╕реАрдЦрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЗ рд╕рд╛рде рдирдП рдХреЙрд▓рдо рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрд╡реЗрджрди рд╕реНрддрд░ рдкрд░ рдХрд╕реНрдЯрдо рдмреИрд╕рд╛рдЦреА рдХреЛ рдмрд╛рдбрд╝рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рднреА, рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдХрдИ рдирдП рддрд░реАрдХреЗ рдЬреЛрдбрд╝реЗ рдЧрдП, рдЬреЛ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рднреА рдмреЗрд╣рдж рдЙрдкрдпреЛрдЧреА рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдпрд╣ рддрдп рд╣реИ, рд╣рдо рдкрд▓рд╛рдпрди рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдЖрдк рдкреБрд░рд╛рдиреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ PostgreSQL рд╕рд░реНрд╡рд░ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрдВрдк / рд░рд┐рд╕реНрдЯреЛрд░ (рдпрд╛ pg_upgrad) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдзрд╛рд░ рдХреЗ рдмрдбрд╝реЗ рдЖрдХрд╛рд░ рдХреЗ рдХрд╛рд░рдг рдпрд╣ рд╕рдорд╛рдзрд╛рди рд╣рдореЗрдВ рд╢реЛрднрд╛ рдирд╣реАрдВ рджреЗрддрд╛, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореБрдХрд╛рдмрд▓рд╛ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдХреБрдЫ рдорд┐рдирдЯ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ PostgreSQL рдореЗрдВ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдЬрд┐рд╕реЗ
pglogical рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
"рдкрд░реАрдХреНрд╖рдг" рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рд╣рдо рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдФрд░ рд░реВрд╕реА рдореЗрдВ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реИ), рд╕рд╛рде рд╣реА рд╕рд╛рде рдХреБрдЫ рдиреБрдХрд╕рд╛рди рдФрд░ рдЕрд╕рдВрдмрджреНрдз рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдкрд░ рдмрд╣реБрдд рд╣реА рд╡рд┐рдЦрдВрдбрди рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЖрдП рдереЗред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рдПрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЯреАрдПрд▓, рдбреЙ- рд╕рдм рдХреБрдЫ рдирд┐рдХрд▓рд╛ (рдмреИрд╕рд╛рдЦреА рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ, рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ)ред
- рдЖрдк PostgreSQL рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рднреАрддрд░ 9.4 рд╕реЗ 11.x рддрдХ, рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдХрд┐рд╕реА рднреА, рдиреАрдЪреЗ рдпрд╛ рдКрдкрд░ рдХреА рдУрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдирдП рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд▓рдЧрдиреЗ рд╡рд╛рд▓реЗ рд╕рдордп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкреБрдирд░рд╛рд░рдВрдн рдерд╛, рд▓реЗрдХрд┐рди рдЬрдВрдЧрд▓реА рдореЗрдВ, рдЬрд╛рд╣рд┐рд░ рд╣реИ, "рд╕рдВрднрд╡ рд╡рд┐рдХрд▓реНрдк")ред
"рдорд╛рдереЗ" рд╕рдорд╛рдзрд╛рди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдХреНрдпреЛрдВ рдирд╣реАрдВ рдерд╛
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛ рд╣реИ, рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдкреБрд░рд╛рдиреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ PostgreSQL рд╕рд░реНрд╡рд░ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрдврд╝рд╛рдПрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░реЛрдХреЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдбрдВрдк / рд░рд┐рд╕реНрдЯреЛрд░ (рдпрд╛ pg_upgrad) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░реЗрдВред рдЫреЛрдЯреА рдорд╛рддреНрд░рд╛ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдХрд▓реНрдк рд╣реИ (рдпрд╛, рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╡реЙрд▓реНрдпреВрдо рдорд╣рддреНрд╡рд╣реАрди рд╣реИ, рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреБрд░рд╛рдиреЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ "рдЯреНрд░рд╛рдВрд╕рдлреНрдпреВрдЬрди" рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХрд╛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддрд╛ рд╣реИ, рдирдП рд╕рд░реНрд╡рд░ рд╕реЗ, рдЪрд╛рд╣реЗ рдпрд╣ рдХрд┐рддрдирд╛ рднреА рд▓рдВрдмрд╛ рд╣реЛ)ред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рдЧрднрдЧ 1.5 рдЯреАрдмреА рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╣рд┐рд▓рд╛рдирд╛ рдорд┐рдирдЯреЛрдВ рдХрд╛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХрдИ рдШрдВрдЯреЛрдВ рдХрд╛ рд╣реЛрддрд╛ рд╣реИред рдЖрд╡реЗрджрди, рдмрджрд▓реЗ рдореЗрдВ, рдореБрдХрд╛рдмрд▓рд╛ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдЦрд┐рд▓рд╛рдл рдпрд╣ рддрдереНрдп рднреА рдерд╛ рдХрд┐ рд╣рдо рдорд╛рд╕реНрдЯрд░-рд╕реНрд▓реЗрд╡ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рд╕реЗ рд╕реНрд▓реЗрд╡ рд╕рд░реНрд╡рд░ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдмрдВрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЗрд╕рд▓рд┐рдП, PostgreSQL рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдорд╛рд╕реНрдЯрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рдирдП рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдирдпрд╛ рд╕реНрд▓реЗрд╡ рд╕рд░реНрд╡рд░ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред рдФрд░ рдпрд╣ рдЧреБрд▓рд╛рдо рдмрдирдиреЗ рддрдХ рдХреБрдЫ рдФрд░ рдШрдВрдЯреЗ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдорд╛рд╕реНрдЯрд░ рдХреЗ рдкреНрд░рд╡рд╛рд╕ рд╕реЗ рдмрд╣реБрдд рдХрдо)ред
рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ PostgreSQL рдореЗрдВ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдЬрд┐рд╕реЗ pglogical рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА
Pglogical PostgreSQL рдореЗрдВ рджреЗрд╢реА рд▓реЙрдЬрд┐рдХрд▓ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдФрд░ рдПрдХ PostgreSQL рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ рд╕рджрд╕реНрдпрддрд╛ / рдкреНрд░рдХрд╛рд╢рди рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрдпрдирд╛рддреНрдордХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдпрд╛ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдмрд╛рд╣рд░реА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдпрд╣ рдПрдХреНрд╕рдЯреЗрдВрд╢рди PostgreSQL рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ 9.4 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рд▓реЙрдЬрд┐рдХрд▓ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдкрд╣рд▓реА рдмрд╛рд░ 9.4 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рдерд╛), рдФрд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рджрд┐рд╢рд╛ рдореЗрдВ PostgreSQL рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдорд░реНрдерд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмреАрдЪ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ pglogical рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╡ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреГрддреАрдп-рдкрдХреНрд╖ рдЙрдкрдпреЛрдЧрд┐рддрд╛
pgrepup рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕ рдореЗрдореЛ
рдЪреВрдВрдХрд┐ рд╣рдо рдкреБрд░рд╛рдиреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╕рд░реНрд╡рд░ рдкрд░ PostgreSQL рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдорд╛рд╕реНрдЯрд░ рдФрд░ рд╕реНрд▓реЗрд╡ рд╕рд░реНрд╡рд░ рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рджреЛрдЧреБрдиреА рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди ... рдмрд╕ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд░реНрдпрд╛рдкреНрдд рдЦрд╛рд▓реА рд╕реНрдерд╛рди рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ, рддрд╛рдХрд┐ рд╡реНрдпрд░реНрде рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдП рд╡рд░реНрд╖реЛрдВ рдХреЛ рдкрдЫрддрд╛рд╡рд╛ рди рд╣реЛред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рд╕рд╛рде рд╣реА 9.6 рдФрд░ 11 рдХреЗ рдмреАрдЪ рдкреНрд░рд╡рд╛рд╕ рдХреЗ рджреМрд░рд╛рди рднрдВрдбрд╛рд░рдг рдкреНрд░рд╛рд░реВрдк "рд╕реНрд╡реИрдк" рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдХреЛ 2 рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд▓рдЧрднрдЧ 2.2 рдЧреБрдирд╛ рдмрдврд╝рд╛рдирд╛ рдкрдбрд╝рд╛ред рдПрд▓рд╡реАрдПрдо рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░реЗрдВ, рдпрд╣ рдордХреНрдЦреА рдкрд░ рдкреНрд░рд╡рд╛рд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦреЗрдВред
рдорд╛рд╕реНрдЯрд░ рдкрд░ PostgreSQL 11 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдиреЛрдЯ: рд╣рдо рдУрд░реЗрдХрд▓ рд▓рд┐рдирдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рднреА рдХреЛ рддреЗрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЕрдиреНрдп рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдгреЛрдВ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред
рдкреБрд░рд╛рдирд╛
рдбреЗрдЯрд╛рд╛рджрд╛рд░ /var/lib/pgsql/9.6/data рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдирдпрд╛, рддрджрдиреБрд╕рд╛рд░,
/ var / lib / pgsql / 11 / data рдореЗрдВ рд╣реИрдПрдХреНрд╕реЗрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (
pg_hba.conf ) рдФрд░ рд╕рд░реНрд╡рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (
postgresql.conf ) рдХреЛ 9.6 рд╕реЗ 11 рддрдХ рдХреЙрдкреА рдХрд░реЗрдВред
рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рджреЛ PostgreSQL рд╕рд░реНрд╡рд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП,
postgresql.conf 11 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рдкреЛрд░реНрдЯ рдХреЛ 15432 (рдкреЛрд░реНрдЯ = 15432) рдореЗрдВ рдмрджрд▓реЗрдВред
рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдзреНрдпрд╛рди рд╕реЗ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ PostgreSQL рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ
postgresql.conf рд╕реЗ рд╢реБрд░реВ рд╣реЛ (рдФрд░ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдЕрдВрддрддрдГ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХреЗ)ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ PostgreSQL рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдпрд╣ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИ, рдмрд╕ рдирдпрд╛ PostgreSQL рд╕реНрдЯрд╛рд░реНрдЯ рдЕрдк рдХрд░реЗрдВ, рдХрд╛рдо рдХрд░реЗрдВ, рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрдкрдХреЛ рд╕реВрдЯ рдХрд░реЗрдВ :)
рд╣рдо
/ var / lib / pgsql / 11 / data / pg_log / рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ ред рдХреНрдпрд╛ рд╕рдм рдареАрдХ рд╣реИ? рд╣рдо рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ!
Pgrepup рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ

рдмрд╛рд░реАрдХрд┐рдпреЛрдВ:
- App_owner рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рддрд╣рдд PostgreSQL рд╕рд░реНрд╡рд░ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред
- рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП, рдЦрд╛рдХрд╛ 1 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб - рд╕реБрдкрд░рдпреВрдЬрд╝рд░ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЯреНрд░рд╕реНрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕реНрдерд╛рдиреАрдп рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП pg_hba.conf рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЖрдк рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рд╣рдореЗрдВ рдХрдИ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЙрджрд╛рд╣рд░рдг рд╕рддреНрдпрд╛рдкрди рдкрд░рд┐рдгрд╛рдо:


рд╕рддреНрдпрд╛рдкрди рдХреЗ рджреМрд░рд╛рди рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд░реЛрдВ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ
Wal_level = LogICAL (рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд▓реЙрдЬрд┐рдХрд▓ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП) рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдкреНрд░рддрд┐рдХреГрддрд┐ рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (рд╕реНрд▓реЙрдЯреНрд╕ рдФрд░
wal_senders рдХреА рд╕рдВрдЦреНрдпрд╛)ред Pgrepup рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рдВрдХреЗрдд рдХрд╛рдлреА рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рд╣реИрдВ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рдЙрдардиреЗ рдЪрд╛рд╣рд┐рдПред
рд╣рдо рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ pgrepup рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реИред
рджреЛрдиреЛрдВ
pg_hba.conf рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣рдо рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд░реЗрдВрдЧреЗ, рд╕рднреА pgrepup рдкреНрд░реЙрдореНрдкреНрдЯ рдкрд░:
host replication pgrepup_replication 127.0.0.1/32 md5 host all pgrepup_replication 127.0.0.1/32 md5
рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдЬреЛрдбрд╝реЗрдВ
рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХреЛ рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреАрдХреЗ рд╣рд░ рдЬрдЧрд╣ рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП, рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВред
рдкреАрдХреЗ рдХреЗ рдмрд┐рдирд╛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА, рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде,
pgrepup check
рдЙрддреНрдкрд╛рджрди
pgrepup check
ред рдЗрд╕ рд╕реВрдЪреА рд╕реЗ рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╕реВрдЯ рдХрд░рддреА рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдерд╛:
ALTER TABLE %s ADD COLUMN temporary_pk BIGSERIAL NOT NULL PRIMARY KEY
Pgrepup рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рдЗрд╕ рдСрдкрд░реЗрд╢рди (
pgrepup fix
) рдХреЛ
pgrepup fix
рд▓рд┐рдП рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрдорд╛рдВрдб рд╣реИ, рдФрд░ рдЬрдм рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рднреА рдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ рд╕рдлрд▓ рдкреНрд░рддрд┐рдХреГрддрд┐ рдкрд░, рдпреЗ рдЕрд╕реНрдерд╛рдпреА рдХреЙрд▓рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдмрдбрд╝реЗ рдЖрдзрд╛рд░реЛрдВ рдкрд░ рдЗрддрдиреА рднреНрд░рд╛рдордХ рдФрд░ рдордВрддреНрд░рдореБрдЧреНрдз рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рдереА рдХрд┐ рд╣рдордиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
Pglogical рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢
рдпрд╣рд╛рдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ
рд╣реИрдВ ред рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ
postgresql.conf рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЛрдб рдЬреЛрдбрд╝реЗрдВ:
shared_preload_libraries = 'pglogical'
Pgl_ddl_deploy рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ
рдпрд╣ рдПрдХ рд╕рд╣рд╛рдпрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИ рдЬреЛ pgrepup рддрд╛рд░реНрдХрд┐рдХ DDL рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ
postgresql.conf рдореЗрдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЛрдб рдЬреЛрдбрд╝реЗрдВ:
shared_preload_libraries = 'pglogical,pgl_ddl_deploy'
рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЬрд╛рдБрдЪ
рдЕрдм
pgrepup check
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд▓рдХреНрд╖реНрдп рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд▓рдХреНрд╖реНрдп рд╕рд░реНрд╡рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рд╣реИрдВред
рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рддреЛ рдЖрдк рдкреБрд░рд╛рдиреЗ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдпрд╣ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рдкреБрдирд░рд╛рд░рдВрдн рдкрд░ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдХреИрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдЧрд╛, рд╢рд╛рдпрдж рдЖрдкрдХреЛ рдЗрд╕реЗ рдкрд╣рд▓реЗ рдмрдВрдж рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЕрдм рдХрдорд╛рдВрдб рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ, рд╕рднреА рдЖрдЗрдЯрдо рдХреЛ рдУрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкреНрд░рд╡рд╛рд╕ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди ...
Pgrepup рдмрдЧреНрд╕ рдХреЛ рдареАрдХ рдХрд░реЗрдВ
Pgrepup рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХрдИ рдмрдЧ рд╣реИрдВ рдЬреЛ рдкреНрд░рд╡рд╛рд╕рди рдХреЛ рдЕрд╕рдВрднрд╡ рдмрдирд╛рддреЗ рд╣реИрдВред рдЦреАрдВрдЪреЗ рдЧрдП рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗ рдЧрдП рдереЗ, рд▓реЗрдХрд┐рди рдЕрдлрд╕реЛрд╕, рдЙрдиреНрд╣реЗрдВ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╣рдо pgrepup рд╕реНрдерд╛рдкрдирд╛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ (рд╣рдорд╛рд░рд╛ рдорд╛рдорд▓рд╛
/usr/lib/python2.7/site-packages/pgrepup/commands/ ) рд╣реИред
рдПрдХ рдмрд╛рд░ рдХрд░реЛред рдкреНрд░рддреНрдпреЗрдХ
* .py рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЧрд╛рдпрдм
**kwargs
рдЬреЛрдбрд╝реЗрдВред рдПрдХ рддрд╕реНрд╡реАрд░ рд╣рдЬрд╛рд░ рд╢рдмреНрджреЛрдВ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ:
рдпрд╣рд╛рдБ рдкрд░ рдХрдорд┐рдЯ
рдХрд░реЗрдВ ред
рджреЛ рдХрд░ рджреЛред
Setup.py рдореЗрдВ рд╣рдо "sh -c", рджреЛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рдХрд░рддреЗ рд╣реИрдВ, рд╕рднреА рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рд╢реЗрд▓ рдХрдорд╛рдВрдб рдХреЛ рд╕рд┐рдВрдЧрд▓-рд▓рд╛рдЗрди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдпрд╣рд╛рдБ рдкрд░ рдХрдорд┐рдЯ
рдХрд░реЗрдВ ред
рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╢реБрд░реВ рдХрд░реЗрдВ
рдЗрд╕ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде pgrepup рдкреНрд░рддрд┐рдХреГрддрд┐ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рд╕рд░реНрд╡рд░ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рддрд╛ рд╣реИ, pglogical рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЙрд╕рдиреЗ рдХрд╣рд╛, "рдЪрд▓реЛ рдЪрд▓реЗрдВ!" рдФрд░ рдЕрдкрдирд╛ рд╣рд╛рде рд▓рд╣рд░рд╛рдпрд╛:

рдкреНрд░рддрд┐рдХреГрддрд┐ рдЪрд▓ рд░рд╣реА рд╣реИред рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ
pgrepup status
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдпрд╣рд╛рдВ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рджреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд╣рд▓реЗ рд╣реА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ, рдФрд░ рдПрдХ рдЕрднреА рднреА рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реИред рдЕрдм рдпрд╣ рдХреЗрд╡рд▓ рдХреЙрдлреА рдкреАрдиреЗ рдФрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рддрдХ рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдореВрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдкреВрд░реА рдорд╛рддреНрд░рд╛ рдХреЛ рдкрдВрдк рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд░рд╛рд╕реНрддреЗ рдХреЗ рд╕рд╛рде, рдЖрдк pgrepup рдореБрдЦреМрдЯрд╛ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред рдорди рдХреА рдкреВрдЫрддрд╛рдЫ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ:
SELECT * FROM pg_replication_origin_status ORDER BY remote_lsn DESC; SELECT *,pg_xlog_location_diff(s.sent_location,s.replay_location) byte_lag FROM pg_stat_replication s; SELECT query FROM pg_stat_activity WHERE application_name='subscription_copy'
рдХрд╛рдлреА рдХреЙрдлреА рд╣реЛрдиреЗ рдкрд░ (рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп рдкрд░реАрдХреНрд╖рдг рд╕рд░реНрд╡рд░ рдкрд░, ~ 700Gb рдХрд╛ рдбреЗрдЯрд╛ рдПрдХ рджрд┐рди рдХреЗ рдЖрд╕рдкрд╛рд╕ рд░рд╣рддрд╛ рд╣реИ), рд╣рдо рдЕрдВрдд рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рджреЗрдЦрддреЗ рд╣реИрдВ:

рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдирдпрд╛ рдЧреБрд▓рд╛рдо рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рджрд╛рд╕ рдкрд░ PostgreSQL 11 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ рдФрд░ рдкрд╛рдареНрдпрдкреБрд╕реНрддрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЛрдИ рднреА рдмрд╛рд░реАрдХрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВред
рдПрдХреНрд╕реЗрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (
pg_hba.conf ) рдФрд░ рд╕рд░реНрд╡рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (
postgresql.conf ) рдХреЛ 9.6 рд╕реЗ 11. рддрдХ рдХреЙрдкреА рдХрд░реЗрдВред
postgresql.conf 11 рд╕рдВрд╕реНрдХрд░рдг рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдореЗрдВ, рдкреЛрд░реНрдЯ рдХреЛ 15432 рдореЗрдВ рдмрджрд▓реЗрдВ (port = 15432)
# Master SELECT *,pg_wal_lsn_diff(s.sent_lsn,s.replay_lsn) AS byte_lag FROM pg_stat_replication s; # Slave SELECT now()-pg_last_xact_replay_timestamp();
рдЙрдк-рдпреЛрдЧреЛрдВ
рдЗрди рд╕рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рдкреНрд░рддрд┐рдХреГрддрд┐ рдпреЛрдЬрдирд╛ рдорд┐рд▓рддреА рд╣реИ:

рдпрд╣рд╛рдВ, рдЕрдВрддрд┐рдо рдЬрд╛рдВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ (рдФрд░, рдЕрдВрдд рдореЗрдВ, рдпрд╣ рд╕рд┐рд░реНрдл рд╕реБрдВрджрд░ рд╣реИ), рдЖрдк 9.6 рдорд╛рд╕реНрдЯрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреБрдЫ рдЕрджреНрдпрддрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдЕрдиреНрдп рддреАрди рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдХреИрд╕реЗ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

PostgreSQL рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛
рдЕрдм рддрдХ, рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ PostgreSQL рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рд╕рдВрджреЗрд╣ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╡рд┐рдХрд▓реНрдк рдХреЗрд╡рд▓ рджреЛ рдЪреАрдЬреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ:
рдХреНрдпрд╛ рдЖрдк рдЙрдиреНрд╣реАрдВ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдкрд░ рдирдИ рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓реЗрдВрдЧреЗ, рдЬрд┐рди рдкрд░ рдкреБрд░рд╛рдиреЗ рд▓реЛрдЧреЛрдВ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛,
рдФрд░ рдХреНрдпрд╛ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╕рдордп рдкреБрдирд░рд╛рд░рдВрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдордЬрд╝реЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рджреЛрдиреЛрдВ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм "рд╣рд╛рдБ" рджреЗрдВрдЧреЗ рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗред
рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВред
# , , : SELECT * FROM pg_stat_activity;


рд╣рдо рдорд╛рд╕реНрдЯрд░ рдФрд░ рд╕реНрд▓реЗрд╡ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ
postgresql.conf рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдорд╛рдирдХ рдкреЛрд░реНрдЯ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред
рдирдП рд╕реНрд▓реЗрд╡ рдкрд░, рд╣рдо
рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдореЗрдВ рдкреЛрд░реНрдЯ рдХреЛ рдорд╛рдирдХ рдПрдХ рдореЗрдВ рднреА рдмрджрд▓рддреЗ рд╣реИрдВ
редconf ред
рд░рд╛рд╕реНрддреЗ рдХреЗ рд╕рд╛рде, рдирд┐рд╖реНрдХреНрд░рд┐рдп рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдкреЛрд░реНрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдк рд╕реЗ рдПрдХ рд╕реБрдЭрд╛рд╡ рд╣реИ:
рд╣рдо рдорд╛рд╕реНрдЯрд░ рдФрд░ рд╕реНрд▓реЗрд╡
рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ
postgresql.conf рдореЗрдВ рдЧреИрд░-рдорд╛рдирдХ рдкреЛрд░реНрдЯ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред
рдкреБрд░рд╛рдиреЗ рд╕реНрд▓реЗрд╡ рдкрд░, рд╣рдо
рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдореЗрдВ рдПрдХ рдЧреИрд░-рдорд╛рдирдХ рдкреЛрд░реНрдЯ рдХреЛ рднреА рдмрджрд▓рддреЗ рд╣реИрдВ
редconf ред
рд▓реЙрдЧ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
рдорд╛рд╕реНрдЯрд░ рдкрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
SELECT *,pg_wal_lsn_diff(s.sent_lsn,s.replay_lsn) AS byte_lag FROM pg_stat_replication s;
рд╣рдордиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред рд╣рдо рдЖрдзреЗ рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рд╣реИрдВред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЙрдкрдпреЛрдЧреА рд╕рд╛рд╣рд┐рддреНрдп:рдЕ рдЫрд╛!