рдкрд┐рдЫрд▓реА рдмрд╛рд░, рд╣рдо рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА, рдмрдлрд░ рдХреИрд╢ рдХреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдорд┐рд▓реЗ рдереЗред рд░реИрдо рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдЦреЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╡рд┐рдлрд▓рддрд╛ рд╕реЗ рдЙрдмрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рд╣реИред рдЖрдЬ рд╣рдо рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рдкрддреНрд░рд┐рдХрд╛
рдХрд╛рд╢, рдЪрдорддреНрдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрддрд╛: рд░реИрдо рдореЗрдВ рд╕реВрдЪрдирд╛ рдХреЗ рдиреБрдХрд╕рд╛рди рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдбрд┐рд╕реНрдХ (рдпрд╛ рдЕрдиреНрдп рдЧреИрд░-рд╡рд╛рд╖реНрдкрд╢реАрд▓ рдЙрдкрдХрд░рдг) рдХреЛ рд╕рдордп рдкрд░ рдврдВрдЧ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕рд▓рд┐рдП, рдпрд╣ рд╡рд╣реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде, рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ
рдХреА рдПрдХ
рдкрддреНрд░рд┐рдХрд╛ рднреА рд░рдЦреА рдЬрд╛рддреА рд╣реИред рдЬрдм рд╣рдо рдмрдлрд░ рдХреИрд╢ рдореЗрдВ рдХрд┐рд╕реА рдкреГрд╖реНрда рдкрд░ рдХреБрдЫ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЙрдЧ рдореЗрдВ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рддреЗ рд╣реИрдВред рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдиреНрдпреВрдирддрдо рдЬрд╛рдирдХрд╛рд░реА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рддрд╛рдХрд┐ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдкрд░рд┐рд╡рд░реНрддрди рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдЗрд╕ рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк
рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдкреЗрдЬ рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ
рдкрд╣рд▓реЗ рдбрд┐рд╕реНрдХ рдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП рдирд╛рдо: рд░рд╛рдЗрдЯ-рдлреЙрд░рд╡рд░реНрдб рд▓реЙрдЧред
рдпрджрд┐ рдХреЛрдИ рд╡рд┐рдлрд▓рддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдбрд┐рд╕реНрдХ рдкрд░ рдбреЗрдЯрд╛ рдЕрд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИ: рдХреБрдЫ рдкреГрд╖реНрда рдкрд╣рд▓реЗ рд▓рд┐рдЦреЗ рдЧрдП рдереЗ, рдХреБрдЫ рдмрд╛рдж рдореЗрдВред рд▓реЗрдХрд┐рди рдПрдХ рдкрддреНрд░рд┐рдХрд╛ рдмрдиреА рд╣реБрдИ рд╣реИ рдЬрд┐рд╕реЗ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рдлрд▓рддрд╛ рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдкреВрд░рд╛ рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрд┐рд╕рдХрд╛ рдирддреАрдЬрд╛ рдбрд┐рд╕реНрдХ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛ред
рдбреЗрдЯрд╛ рдкреЗрдЬ рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рдордЬрдмреВрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рджреЛрд╣рд░реА рдиреМрдХрд░рд┐рдпрд╛рдВ рдХреНрдпреЛрдВ рдХрд░реЗрдВ? рдпрд╣ рдЗрддрдирд╛ рдкреНрд░рднрд╛рд╡реА рдирд┐рдХрд▓рд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рд▓реЙрдЧ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреА рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдзрд╛рд░рд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ HDDs рдЕрдиреБрдХреНрд░рдорд┐рдХ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреЗрдЬ рдбрд┐рд╕реНрдХ рдореЗрдВ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдмрд┐рдЦрд░реЗ рд╣реБрдП рд╣реИрдВред
рджреВрд╕рд░реЗ, рдПрдХ рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдПрдХ рдкреГрд╖реНрда рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЫреЛрдЯреА рд╣реЛ рд╕рдХрддреА рд╣реИред
рддреАрд╕рд░рд╛, рдЬрдм рдЖрдк рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбрд┐рд╕реНрдХ рдкрд░ рдбреЗрдЯрд╛ рд╕рдордп рдкрд░ рдХрд┐рд╕реА рднреА рдордирдорд╛рдиреЗ рдмрд┐рдВрджреБ рдкрд░ рд╕рдВрдЧрдд рд░рд╣рддрд╛ рд╣реИ (рдпрд╣ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЬреАрд╡рди рдХреЛ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдХрд░рддреА рд╣реИ)ред
рдФрд░ рдЪреМрдерд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдмрд╛рдж рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗ, рдЬрд░реНрдирд▓ (рдЪреВрдВрдХрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХреЗрд╡рд▓ рд╡рд╕реВрд▓реА рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдмреИрдХрдЕрдк рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдкрдХреЛ рд╕рднреА рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рджреМрд░рд╛рди рд╡рд┐рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдбрд┐рд╕реНрдХ рдкрд░ рдЕрд╕рдВрдЧрддрд┐ рдХрд╛ рдЦрддрд░рд╛ рд╣реЛрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдирд┐рдореНрди рдХреНрд░рд┐рдпрд╛рдПрдВ рд▓реЙрдЧ рд╣реЛрддреА рд╣реИрдВ:
- рдмрдлрд╝рд░ рдХреИрд╢ рдореЗрдВ рдкреГрд╖реНрда рдмрджрд▓рдирд╛ (рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдпреЗ рдЯреЗрдмрд▓ рдФрд░ рдЗрдВрдбреЗрдХреНрд╕ рдкреЗрдЬ рд╣реИрдВ) - рдЪреВрдВрдХрд┐ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдкреГрд╖реНрда рддреБрд░рдВрдд рдбрд┐рд╕реНрдХ рдкрд░ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ;
- рд▓реЗрдирджреЗрди рдХрд░рдирд╛ рдФрд░ рд░рджреНрдж рдХрд░рдирд╛ - XACT рдмрдлрд╝рд░реНрд╕ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдбрд┐рд╕реНрдХ рддрдХ рддреБрд░рдВрдд рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ;
- рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЪрд╛рд▓рди (рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдмрдирд╛рдирд╛ рдФрд░ рд╣рдЯрд╛рдирд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рддреЗ рд╕рдордп рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдирд╛) - рдЪреВрдВрдХрд┐ рдпреЗ рдСрдкрд░реЗрд╢рди рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред
рд▓реЙрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛:
- рдЧреИрд░-рдЬрд░реНрдирд▓рд┐рдЬреНрдб (рдЕрдирд▓реЙрдЧреНрдб) рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди - рдЙрдирдХрд╛ рдирд╛рдо рдЦреБрдж рдХреЗ рд▓рд┐рдП рдмреЛрд▓рддрд╛ рд╣реИ;
- рдЕрд╕реНрдерд╛рдпреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди - рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕реА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЬреАрд╡рдирдХрд╛рд▓ рдЙрд╕ рд╕рддреНрд░ рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдпрд╛ рдерд╛ред
PostgreSQL 10 рд╕реЗ рдкрд╣рд▓реЗ,
рд╣реИрд╢ рдЗрдВрдбреЗрдХреНрд╕ рд▓реЙрдЧ рдирд╣реАрдВ
рдХрд┐рдП рдЧрдП рдереЗ (рд╡реЗ рдХреЗрд╡рд▓ рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЛрд╕реЗ
рдЧрдП рдереЗ ), рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рддрдп рд╣реЛ рдЧрдпрд╛ рд╣реИред
рддрд╛рд░реНрдХрд┐рдХ рдЙрдкрдХрд░рдг

рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ, рдПрдХ рдкрддреНрд░рд┐рдХрд╛ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд▓рдВрдмрд╛рдИ рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдПрдХ рдорд╛рдирдХ
рд╣реЗрдбрд░ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИред рд╢реАрд░реНрд╖рдХ, рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ:
- рд▓реЗрдирджреЗрди рд╕рдВрдЦреНрдпрд╛ рдЬрд┐рд╕ рдкрд░ рд░рд┐рдХреЙрд░реНрдб рд╣реИред
- рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрдХ - рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдШрдЯрдХ;
- рдЪреЗрдХрд╕рдо (рд╕реАрдЖрд░рд╕реА) - рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
- рд░рд┐рдХреЙрд░реНрдб рд▓рдВрдмрд╛рдИ рдФрд░ рдкрд┐рдЫрд▓реЗ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХред
рдбреЗрдЯрд╛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рд╛рд░реВрдк рдФрд░ рдЕрд░реНрде рд░рдЦрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реЗ рдПрдХ рдкреГрд╖реНрда рдХреЗ рдХреБрдЫ рдЯреБрдХрдбрд╝реЗ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдСрдлрд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрдХ "рдЕрдкрдиреЗ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреИрд╕реЗ рдХрд░реЗрдВ" рд╕рдордЭрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдмрдВрдзрдХ рд╣реИрдВ, рд▓реЗрдирджреЗрди рдХреА рд╕реНрдерд┐рддрд┐ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдВрдЫрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдкреВрд░реА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
pg_waldump -r list
рднреМрддрд┐рдХ рдЙрдкрдХрд░рдг
рдбрд┐рд╕реНрдХ рдкрд░, рд▓реЙрдЧ рдХреЛ $ PGDATA / pg_wal рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ 16 рдПрдордмреА рддрдХ рдбрд┐рдлреЙрд▓реНрдЯ рдХрд░рддреА рд╣реИред рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдХрд╛рд░ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред PostgreSQL 11 рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдХреЗрд╡рд▓ рд╕реНрд░реЛрдд рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдЖрдк рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╕рдордп рдЖрдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (
--wal-segsize
)ред
рд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрддреА рд╣реИрдВ; рдЬрдм рдпрд╣ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЕрдЧрд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рд░реНрд╡рд░ рдХреА рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдмрдлрд╝рд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкрддреНрд░рд┐рдХрд╛ рдХреИрд╢ рдХрд╛ рдЖрдХрд╛рд░
Wal_buffers рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди: рдмрдлрд░ рдХреИрд╢ рдХрд╛ 1/32 рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рдЬрд░реНрдирд▓ рдХреИрд╢ рдХреЛ рдмрдлрд░ рдХреИрд╢ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд░рд┐рдВрдЧ рдмрдлрд░ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ "рд╕рд┐рд░" рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ "рдкреВрдВрдЫ" рд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ ("рдкреВрдВрдЫ") рдФрд░ рд╕рдореНрдорд┐рд▓рди ("рд╕рд┐рд░") рдкрдж рдХреНрд░рдорд╢рдГ pg_current_wal_lsn рдФрд░ pg_current_wal_insert lsn рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ:
=> SELECT pg_current_wal_lsn(), pg_current_wal_insert_lsn();
pg_current_wal_lsn | pg_current_wal_insert_lsn --------------------+--------------------------- 0/331E4E64 | 0/331E4EA0 (1 row)
рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ pg_lsn (LSN = рд▓реЙрдЧ рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ 64-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬреЛ рд▓реЙрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд░рд┐рдХреЙрд░реНрдб рд╕реЗ рдкрд╣рд▓реЗ рдмрд╛рдЗрдЯ рдСрдлрд╕реЗрдЯ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред LSN рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдиреЛрдЯреЗрд╢рди рдореЗрдВ рджреЛ 32-рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд╣реИред
рдЖрдк рдпрд╣ рдкрддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ рдорд┐рд▓реЗрдЧреА, рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдХреНрдпрд╛ рдСрдлрд╕реЗрдЯ рд╣реИ:
=> SELECT file_name, upper(to_hex(file_offset)) file_offset FROM pg_walfile_name_offset('0/331E4E64');
file_name | file_offset --------------------------+------------- 000000010000000000000033 | 1E4E64 \ /\ / 0/331E4E64
рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рджреЛ рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВред рдКрдкрд░реА 8 рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдЕрдВрдХ рд╕рдордп рд╢рд╛рдЦрд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ (рдпрд╣ рдмреИрдХрдЕрдк рд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рд╢реЗрд╖ рдЙрдЪреНрдЪрддрдо рдПрд▓рдПрд╕рдПрди рдЕрдВрдХреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ (рдФрд░ рд╢реЗрд╖ рдирд┐рдЪрд▓реЗ рдПрд▓рдПрд╕рдПрди рдЕрдВрдХ рдСрдлрд╕реЗрдЯ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ)ред
рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ $ PGDATA / pg_wal / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди PostgreSQL 10 рд╕реЗ рд╢реБрд░реВ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рднреА рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
=> SELECT * FROM pg_ls_waldir() WHERE name = '000000010000000000000033';
name | size | modification --------------------------+----------+------------------------ 000000010000000000000033 | 16777216 | 2019-07-08 20:24:13+03 (1 row)
рдлреЙрд░рд╡рд░реНрдб рд▓рд┐рдЦреЛ
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЬрд░реНрдирд▓рд┐рдВрдЧ рдХреИрд╕реЗ рд╣реЛрддреА рд╣реИ рдФрд░ рдкреНрд░реЛрдПрдХреНрдЯрд┐рд╡ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреИрд╕реЗ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдБ:
=> CREATE TABLE wal(id integer); => INSERT INTO wal VALUES (1);
рд╣рдо рдЯреЗрдмрд▓ рдкреЗрдЬ рдХреЗ рд╣реЗрдбрд░ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рдЪрд┐рдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
=> CREATE EXTENSION pageinspect;
рдЖрдЗрдП рд▓реЗрди-рджреЗрди рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рд▓реЙрдЧ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдпрд╛рдж рд░рдЦреЗрдВ:
=> BEGIN; => SELECT pg_current_wal_insert_lsn();
pg_current_wal_insert_lsn --------------------------- 0/331F377C (1 row)
рдЕрдм рдХреБрдЫ рдСрдкрд░реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рд╛рдЗрди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:
=> UPDATE wal set id = id + 1;
рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рд▓реЙрдЧ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЧрдИ рд╣реИ:
=> SELECT pg_current_wal_insert_lsn();
pg_current_wal_insert_lsn --------------------------- 0/331F37C4 (1 row)
рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рдВрд╢реЛрдзрд┐рдд рдбреЗрдЯрд╛ рдкреГрд╖реНрда рдХреЛ рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕реЗ рдкрд╣рд▓реЗ рдбрд┐рд╕реНрдХ рдореЗрдВ рдзрдХреЗрд▓ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рдкреГрд╖реНрда рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдВрддрд┐рдо рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХрд╛ LSN рдкреГрд╖реНрда рд╢реАрд░реНрд╖рдХ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ:
=> SELECT lsn FROM page_header(get_raw_page('wal',0));
lsn ------------ 0/331F37C4 (1 row)
рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЬрд░реНрдирд▓ рдкреВрд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдФрд░ рдирдИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╣рд░ рд╕рдордп рдЗрд╕рдореЗрдВ рдЖрддреА рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдкреГрд╖реНрда рдкрд░ LSN рдЙрд╕ рдорд╛рди рд╕реЗ рдХрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ pg_current_wal_insert_lsn рдлрд╝рдВрдХреНрд╢рди рдЕрднреА рд▓реМрдЯрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдВрдЦреНрдпрд╛ рд╕рдорд╛рди рд╣реИред
рдЕрдм рд▓реЗрди-рджреЗрди рдкреВрд░рд╛ рдХрд░реЗрдВред
=> COMMIT;
рдкреНрд░рддрд┐рдмрджреНрдз рд░рд┐рдХреЙрд░реНрдб рд▓реЙрдЧ рдореЗрдВ рднреА рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдерд┐рддрд┐ рдлрд┐рд░ рд╕реЗ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ:
=> SELECT pg_current_wal_insert_lsn();
pg_current_wal_insert_lsn --------------------------- 0/331F37E8 (1 row)
рдкреНрд░рддрд┐рдмрджреНрдз XACT рдирд╛рдордХ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд▓реЗрдирджреЗрди рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддрд╛ рд╣реИ (рд╣рдордиреЗ
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рд╣реИ )ред рд╕реНрдЯреЗрдЯрд╕ рдХреЛ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреИрд╢ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдореЗрдВ 128 рдкреГрд╖реНрдареЛрдВ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, XACT рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП, рдЕрдВрддрд┐рдо рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ LSN рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдкреГрд╖реНрда рдореЗрдВ рд╣реА рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рд░реИрдо рдореЗрдВ рд╣реИред
рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░, рдмрдирд╛рдИ рдЧрдИ рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред рдЬрд┐рд╕рдореЗрдВ рдПрдХ - рд╣рдо рджреВрд╕рд░реА рдмрд╛рд░ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдкрд╣рд▓реЗ рд╣реА рд╣реЛ рдЪреБрдХрд╛ рд╣реИ:
=> SELECT pg_current_wal_lsn(), pg_current_wal_insert_lsn();
pg_current_wal_lsn | pg_current_wal_insert_lsn --------------------+--------------------------- 0/331F37E8 | 0/331F37E8 (1 row)
рдЗрд╕ рдмрд┐рдВрджреБ рдХреЗ рдмрд╛рдж, рдбреЗрдЯрд╛ рдФрд░ XACT рдкреЗрдЬ рдХреИрд╢ рд╕реЗ рдмрд╛рд╣рд░ рдзрдХреЗрд▓ рджрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдмрд╛рдзреНрдп рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рддреЛ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рджреЛ рдПрд▓рдПрд╕рдПрди рдкрджреЛрдВ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЙрдирдХреЗ рдмреАрдЪ (рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ) рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╕ рдПрдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рджреВрд╕рд░реЗ рд╕реЗ рдШрдЯрд╛рдХрд░ред рдЖрдкрдХреЛ рдмрд╕ рдкрджреЛрдВ рдХреЛ pg_lsn рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
=> SELECT '0/331F37E8'::pg_lsn - '0/331F377C'::pg_lsn;
?column? ---------- 108 (1 row)
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд▓рд╛рдЗрди рдЕрджреНрдпрддрди рдФрд░ рд▓реЙрдЧ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ 108 рдмрд╛рдЗрдЯреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЙрд╕реА рддрд░рд╣, рдЖрдк рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд▓реЛрдб рдкрд░ рд╕рд░реНрд╡рд░ рдХреА рдкреНрд░рддрд┐ рдпреВрдирд┐рдЯ рд╕рдордп рдореЗрдВ рдХрд┐рддрдиреА рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдмрдирддреА рд╣реИрдВред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдЬреЛ рд╕реЗрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧреА (рдЬреЛ рд╣рдо рдЕрдЧрд▓реА рдмрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ)ред
рдЕрдм рд╣рдо рдмрдирд╛рдП рдЧрдП рд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП pg_waldump рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдПрд▓рдПрд╕рдПрди рд╢реНрд░реЗрдгреА (рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИ рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреА рд╣реИред рдпрд╣ рдУрдПрд╕ рдХреЗ рдЙрдкрдпреЛрдХреНрддрд╛ рдХреА рдУрд░ рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рд▓реЙрдЧ рдлрд╛рдЗрд▓ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
postgres$ /usr/lib/postgresql/11/bin/pg_waldump -p /var/lib/postgresql/11/main/pg_wal -s 0/331F377C -e 0/331F37E8 000000010000000000000033
rmgr: Heap len (rec/tot): 69/ 69, tx: 101085, lsn: 0/331F377C, prev 0/331F3014, desc: HOT_UPDATE off 1 xmax 101085 ; new off 2 xmax 0, blkref #0: rel 1663/16386/33081 blk 0
rmgr: Transaction len (rec/tot): 34/ 34, tx: 101085, lsn: 0/331F37C4, prev 0/331F377C, desc: COMMIT 2019-07-08 20:24:13.945435 MSK
рдпрд╣рд╛рдБ рд╣рдо рджреЛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд╣реЗрдбрд░ рджреЗрдЦрддреЗ рд╣реИрдВред
рдкрд╣рд▓рд╛ рд╣реИ
HOT_UPDATE рдСрдкрд░реЗрд╢рди, рд╣реАрдк рд░рд┐рд╕реЛрд░реНрд╕ рдореИрдиреЗрдЬрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдФрд░ рдкреГрд╖реНрда рд╕рдВрдЦреНрдпрд╛ blkref рдлрд╝реАрд▓реНрдб рдореЗрдВ рджрд░реНрд╢рд╛рдИ рдЧрдИ рд╣реИ рдФрд░ рдЕрджреНрдпрддрди рддрд╛рд▓рд┐рдХрд╛ рдкреГрд╖реНрда рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ:
=> SELECT pg_relation_filepath('wal');
pg_relation_filepath ---------------------- base/16386/33081 (1 row)
рджреВрд╕рд░реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ COMMIT рд╣реИ, рдЬреЛ рд▓реЗрди-рджреЗрди рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
рд╕рдмрд╕реЗ рдкрдардиреАрдп рдкреНрд░рд╛рд░реВрдк рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЖрдк рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд╕реВрд▓реА
рдЬрдм рд╣рдо рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреЛрд╕реНрдЯрдорд╛рд╕реНрдЯрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╣рд▓реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рдФрд░ рдпрд╣ рдмрджрд▓реЗ рдореЗрдВ, рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдПрдХ рд╡рд┐рдлрд▓рддрд╛ рд╣реЛрдиреЗ рдкрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИред
рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╡рд┐рд╢реЗрд╖ рдирд┐рдпрдВрддреНрд░рдг рдлрд╝рд╛рдЗрд▓ $ PGDATA / рд╡реИрд╢реНрд╡рд┐рдХ / pg_control рдореЗрдВ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред рд╣рдо рд╕реНрд╡рдпрдВ pg_controldata рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
postgres$ /usr/lib/postgresql/11/bin/pg_controldata -D /var/lib/postgresql/11/main | grep state
Database cluster state: in production
рдмрдбрд╝реЗ рдХрд░реАрдиреЗ рд╕реЗ рдмрдВрдж рд╕рд░реНрд╡рд░ рдХреА рд╕реНрдерд┐рддрд┐ "рдмрдВрдж" рд╣реЛрдЧреАред рдпрджрд┐ рд╕рд░реНрд╡рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдерд┐рддрд┐ "рдЙрддреНрдкрд╛рджрди" рдореЗрдВ рд░рд╣рддреА рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ DBMS рдЧрд┐рд░ рдЧрдпрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╡рд╕реВрд▓реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреА рдЬрд╛рдПрдЧреАред
рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреЗ рд▓рд┐рдП, рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд▓реЙрдЧ рдХреЛ рдкрдврд╝реЗрдЧреА рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рд▓рд╛рдЧреВ рдХрд░реЗрдЧреАред рдЖрдк рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рдПрд▓рдПрд╕рдПрди рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдХ рдкрд░ рдкреГрд╖реНрда рдХреЗ рдПрд▓рдПрд╕рдПрди рдХреА рддреБрд▓рдирд╛ рдХрд░рдХреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдкреГрд╖реНрда рдХрд╛ рдПрд▓рдПрд╕рдПрди рдмрдбрд╝рд╛ рд╣реИ, рддреЛ рд░рд┐рдХреЙрд░реНрдб рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ - рдпрд╣ рднреА рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░рд┐рдХреЙрд░реНрдб рд╕рдЦреНрддреА рд╕реЗ рд╕реБрд╕рдВрдЧрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВред
рдЕрдкрд╡рд╛рдж рд╣реИрдВред рдХреБрдЫ рд░рд┐рдХреЙрд░реНрдб рдПрдХ рдкреВрд░реНрдг рдкреГрд╖реНрда рдЫрд╡рд┐ (FPI, рдкреВрд░реНрдг рдкреГрд╖реНрда рдЫрд╡рд┐) рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдРрд╕реА рдЫрд╡рд┐ рдХреЛ рдХрд┐рд╕реА рднреА рд░рд╛рдЬреНрдп рдореЗрдВ рдПрдХ рдкреГрд╖реНрда рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣ рдЕрднреА рднреА рд╕рдм рдХреБрдЫ рдорд┐рдЯрд╛ рджреЗрдЧрд╛ рдЬреЛ рд╡рд╣рд╛рдВ рдерд╛ред рд▓реЗрди-рджреЗрди рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрдХ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди XACT рдкреГрд╖реНрда рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЗрд╕рд▓рд┐рдП, рдРрд╕реЗ рдкреГрд╖реНрдареЛрдВ рдХреЗ рдЕрдВрджрд░ LSN рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреЗ рджреМрд░рд╛рди рдкреГрд╖реНрдареЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рдмрдлрд╝рд░ рдХреИрд╢ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рдХреЗ рджреМрд░рд╛рди - рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдорд╛рд╕реНрдЯрд░ рдЖрд╡рд╢реНрдпрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕реА рддрд░рд╣, рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рд░рд┐рдХреЙрд░реНрдб рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЧрдИ рд╣реИред
рдареАрдХ рд╣реИ, рдареАрдХ рд╣реЛрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╕рднреА рдЧреИрд░-рдореЗрдЬрд╝реЛрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдЙрдирдХреА
рдЗрдирд┐рдЯ рдкрд░рддреЛрдВ рд╕реЗ "рдбрдореАрдЬрд╝" рдХреЗ рд╕рд╛рде рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдкреНрд░рд╕реНрддреБрддрд┐ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдордиреЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд╣рд╛ рд╣реИ рдХрд┐ рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдирд╛ рдХрд╣рд╛рдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдП (рдпрд╣ рдмрд╛рддрдЪреАрдд рддрдм рддрдХ рд╕реНрдердЧрд┐рдд рдХрд░рдиреА рд╣реЛрдЧреА рдЬрдм рддрдХ рдХрд┐ рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рдФрд░ рдЕрдВрддрд┐рдо рд╕реНрдкрд╖реНрдЯреАрдХрд░рдгред "рдХреНрд▓рд╛рд╕рд┐рдХ" рд░рд┐рдХрд╡рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рджреЛ рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ (рд░реЛрд▓ рдлрд╝реЙрд░рд╡рд░реНрдб), рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд░реЛрд▓ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдФрд░ рд╕рд░реНрд╡рд░ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рджреМрд░рд╛рди рдЦреЛрдП рдЧрдП рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рдкрд░ (рд░реЛрд▓ рдмреИрдХ), рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рд╕рдордп рдЬреЛ рд▓реЗрдирджреЗрди рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рдереЗ, рд╡реЗ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд┐рдП рдЧрдП рд╣реИрдВред рд▓реЗрдХрд┐рди PostgreSQL рдХреЛ рджреВрд╕рд░реЗ рдЪрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ
рдкрд╣рд▓реЗ рдорд╛рдирд╛ рдерд╛ , рдмрд╣реБ-рд╕рдВрд╕реНрдХрд░рдг рд▓реЗрдирджреЗрди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдХреЗ рдХрд╛рд░рдг рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ; рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рдлрд┐рдХреНрд╕ рдмрд┐рдЯ XACT рдореЗрдВ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛рдП ред