PostgreSQL рдореЗрдВ рдЪрд▓реЗрдВ: 3. рдЪреЗрдХрдкреЙрдЗрдВрдЯ

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

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

рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ


рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдХреЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╕рдВрдкрддреНрддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП? рд╣рдореЗрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЪреЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦреЗ рдЧрдП рдкреГрд╖реНрдареЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдВрдЧреАред рдпрджрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдмрд╣рд╛рд▓реА рдХреЗ рджреМрд░рд╛рди рд╣рдо рдбрд┐рд╕реНрдХ рд╕реЗ рдкреЗрдЬ рдХреЗ рдмрд╣реБрдд рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рдкрд░ рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЬрд┐рд╕рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдиреБрдХрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ? рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╡рд┐рдХрд▓реНрдк рд╕рдордп-рд╕рдордп рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░рдирд╛ рдФрд░ рдмрдлрд░ рдХреЗ рдЕрдиреНрдп рдЧрдВрджреЗ рдкреГрд╖реНрдареЛрдВ рдФрд░ рдбрд┐рд╕реНрдХ рдкрд░ рдЕрдиреНрдп рдХреИрд╢ рдХреЛ рдлреНрд▓рд╢ рдХрд░рдирд╛ рд╣реИред (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреГрд╖реНрда рдХреЗрд╡рд▓ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреИрд╢ рд╕реЗ рдирд┐рдХрд╛рд▓реЗ рдирд╣реАрдВ рдЧрдП рд╣реИрдВред) рдРрд╕реЗ рдмрд┐рдВрджреБ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХреЛрдИ рднреА рдПрдХ рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛ рдЬреЛ рд▓рдЧрд╛рддрд╛рд░ рдЕрдирд┐рд╢реНрдЪрд┐рддрдХрд╛рд▓реАрди, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдордп рдХреЗ рд▓рд┐рдП рдЬрдорд╛ рджреЗрддрд╛ рд╣реИред

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



рдЬрдм рд╕рднреА рдмрдлрд╝рд░ рдЬреЛ рдЪреМрдХреА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЧрдВрджреЗ рдереЗ, рд▓рд┐рдЦреЗ рдЧрдП рдереЗ, рддреЛ рдЪреМрдХреА рдХреЛ рдкреВрд░реНрдг рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм (рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдирд╣реАрдВ) рд╣рдо рдкреНрд░рд╛рд░рдВрдн рдмрд┐рдВрджреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕ рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рдЖрдк рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдХреА рдЕрдм рд╣рдореЗрдВ рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред



рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреГрд╖реНрдарднреВрдорд┐ рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЧрдВрджреЗ рдмрдлрд╝рд░реНрд╕ рдХреА рдЕрд╡рдзрд┐ рдЪреЗрдХрдкреЙрдЗрдВрдЯ_completion_target рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рди рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИред рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рджреЛ рдЖрд╕рдиреНрди рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдХрд┐рддрдирд╛ рд╕рдордп рд╣реЛрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 0.5 рд╣реИ (рдКрдкрд░ рджрд┐рдП рдЧрдП рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░), рдЕрд░реНрдерд╛рдд, рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдЖрдзрд╛ рд╕рдордп рд▓реЗрддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдПрдХрд░реВрдкрддрд╛ рдХреЗ рд▓рд┐рдП рдорд╛рди 1.0 рддрдХ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдЗрдП рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред

рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╣рд▓реЗ рд▓реЗрди-рджреЗрди рдХреА рд╕реНрдерд┐рддрд┐ рдмрдлрд╝рд░реНрд╕ (XACT) рдбрд┐рд╕реНрдХ рдкрд░ рдлрд╝реНрд▓рд╢ рдХрд░рддреА рд╣реИред рдЪреВрдВрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣реИрдВ (рдХреБрд▓ рдореЗрдВ 128), рд╡реЗ рддреБрд░рдВрдд рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдлрд┐рд░ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ - рдмрдлрд░ рдХреИрд╢ рд╕реЗ рдЧрдВрджреЗ рдкреГрд╖реНрда рд▓рд┐рдЦрдирд╛ред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛, рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдмрдлрд░ рдХреИрд╢ рдХрд╛ рдЖрдХрд╛рд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рднреА рдЧрдВрджреЗ рдкреГрд╖реНрда рдмрдлрд░ рдлреНрд▓реИрдЧ рдореЗрдВ рд╣реЗрдбрд░ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рд╣реИрдВред



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

рд▓реЗрдмрд▓ рдХрд┐рдП рдЧрдП рдмрдлрд╝рд░реНрд╕ рдХреЛ рд╕рд░реНрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рднреА рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдмрдлрд░ рдореЗрдВ рдХреМрди рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдкрд╣рд▓реЗ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЭрдВрдбрд╛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП (рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ) рдмрдлрд░ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди, рдкреГрд╖реНрда рдмрдлрд░ рдХреИрд╢ рдореЗрдВ рдмрджрд▓рддреЗ рд░рд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдирдП рдЧрдВрджреЗ рдмрдлрд╝рд░реНрд╕ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред



рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдЕрдВрдд рдореЗрдВ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪреМрдХреА рдХреЗ рдЕрдВрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрдирд╛рддреА рд╣реИред рдЗрд╕ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдХреЗ рдХрд╛рдо рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рдПрд▓рдПрд╕рдПрди рд╢рд╛рдорд┐рд▓ рд╣реИред рдЪреВрдВрдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдЕрдкрдиреЗ рдХрд╛рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд▓реЙрдЧ рдХреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдПрд▓рдПрд╕рдПрди рдореЗрдВ рдХреЛрдИ рд▓реЙрдЧ рд░рд┐рдХреЙрд░реНрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, $ PGDATA / рд╡реИрд╢реНрд╡рд┐рдХ / pg_control рдлрд╝рд╛рдЗрд▓ рдЕрдВрддрд┐рдо рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдХреЗ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд╕рдВрдХреЗрдд рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреА рд╣реИред рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдкрд┐рдЫрд▓реЗ рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдкрд░ pg_control рдкреЙрдЗрдВрдЯред



рдЪреМрдХреА рдХреЗ рдХрд╛рдо рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВ - рдЗрд╕рдХреЗ рдкреГрд╖реНрда рдмрдлрд░ рдХреИрд╢ рдореЗрдВ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдпрд╣ рдЧрдВрджреЗ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ:

=> CREATE TABLE chkpt AS SELECT * FROM generate_series(1,10000) AS g(n); => CREATE EXTENSION pg_buffercache; => SELECT count(*) FROM pg_buffercache WHERE isdirty; 
  count ------- 78 (1 row) 

рд▓реЙрдЧ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдпрд╛рдж рд░рдЦреЗрдВ:

 => SELECT pg_current_wal_insert_lsn(); 
  pg_current_wal_insert_lsn --------------------------- 0/3514A048 (1 row) 

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

 => CHECKPOINT; => SELECT count(*) FROM pg_buffercache WHERE isdirty; 
  count ------- 0 (1 row) 

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд▓реЙрдЧ рдореЗрдВ рдЪреМрдХреА рдХреИрд╕реЗ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реБрдИ:

 => SELECT pg_current_wal_insert_lsn(); 
  pg_current_wal_insert_lsn --------------------------- 0/3514A0E4 (1 row) 

 postgres$ /usr/lib/postgresql/11/bin/pg_waldump -p /var/lib/postgresql/11/main/pg_wal -s 0/3514A048 -e 0/3514A0E4 
 rmgr: Standby len (rec/tot): 50/ 50, tx: 0, lsn: 0/3514A048, prev 0/35149CEC, desc: RUNNING_XACTS nextXid 101105 latestCompletedXid 101104 oldestRunningXid 101105 
 rmgr: XLOG len (rec/tot): 102/ 102, tx: 0, lsn: 0/3514A07C, prev 0/3514A048, desc: CHECKPOINT_ONLINE redo 0/3514A048; tli 1; prev tli 1; fpw true; xid 0:101105; oid 74081; multi 1; offset 0; oldest xid 561 in DB 1; oldest multi 1 in DB 1; oldest/newest commit timestamp xid: 0/0; oldest running xid 101105; online 

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

рд╣рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдорд╛рди рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓реЗрдЧреА:

 postgres$ /usr/lib/postgresql/11/bin/pg_controldata -D /var/lib/postgresql/11/main | egrep 'Latest.*location' 
 Latest checkpoint location: 0/3514A07C Latest checkpoint's REDO location: 0/3514A048 

рд╡рд╕реВрд▓реА


рдЕрдм рд╣рдо рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред

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

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЙрд╕реА pg_control рд╕реЗ рдкрдврд╝реЗрдЧреАред (рдЪрд┐рддреНрд░ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрдЧрд░ backup_label рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рдЗрд╕рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рдмреИрдХрдЕрдк рд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдЪрдХреНрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╖рдп рд╣реИред)

рдлрд┐рд░ рд╡рд╣ рдкрддреНрд░рд┐рдХрд╛ рдХреЛ рдкрдврд╝реЗрдЧрд╛, рдкрд╛рдпрд╛ рд╕реНрдерд┐рддрд┐ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдкреГрд╖реНрдареЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ (рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЪрд░реНрдЪрд╛ рдХреА рдереА )ред

рдЕрдВрдд рдореЗрдВ, рд╕рднреА рдЧреИрд░-рдЬрд░реНрдирд▓ рддрд╛рд▓рд┐рдХрд╛рдПрдБ init рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддреБрд░рдВрдд рдбрд┐рд╕реНрдХ рдкрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреА рд╣реИред

рдЖрдк рддрддреНрдХрд╛рд▓ рдореЛрдб рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЛ рдЬрдмрд░рди рд░реЛрдХрдХрд░ рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 student$ sudo pg_ctlcluster 11 main stop -m immediate --skip-systemctl-redirect 

(- --skip-systemctl-redirect key рдХреА рдпрд╣рд╛рдБ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ PostgreSQL рдЙрдмрдВрдЯреВ рдореЗрдВ рдкреИрдХреЗрдЬ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдЗрд╕реЗ pg_ctlcluster рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ systemctl рдХрд╣рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА pg_ctl рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдЗрди рд╕рднреА рдЖрд╡рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде, рдореЛрдб рдирд╛рдоред рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдЦреЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ --skip-systemctl-redirect рдЖрдкрдХреЛ --skip-systemctl-redirect рдмрд┐рдирд╛ рдХрд░рдиреЗ рдФрд░ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

 postgres$ /usr/lib/postgresql/11/bin/pg_controldata -D /var/lib/postgresql/11/main | grep state 
 Database cluster state: in production 

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░, PostgreSQL рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рдлрд▓рддрд╛ рд╣реБрдИ рд╣реИ рдФрд░ рдПрдХ рд╡рд╕реВрд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

 student$ sudo pg_ctlcluster 11 main start 

 postgres$ tail -n 7 /var/log/postgresql/postgresql-11-main.log 
 2019-07-17 15:27:49.441 MSK [8865] LOG: database system was interrupted; last known up at 2019-07-17 15:27:48 MSK 2019-07-17 15:27:49.801 MSK [8865] LOG: database system was not properly shut down; automatic recovery in progress 2019-07-17 15:27:49.804 MSK [8865] LOG: redo starts at 0/3514A048 2019-07-17 15:27:49.804 MSK [8865] LOG: invalid record length at 0/3514A0E4: wanted 24, got 0 2019-07-17 15:27:49.804 MSK [8865] LOG: redo done at 0/3514A07C 2019-07-17 15:27:49.824 MSK [8864] LOG: database system is ready to accept connections 2019-07-17 15:27:50.409 MSK [8872] [unknown]@[unknown] LOG: incomplete startup packet 

рд╕рдВрджреЗрд╢ рд▓реЙрдЧ рдореЗрдВ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдиреЛрдЯ рдХреА рдЧрдИ рд╣реИ: рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдареАрдХ рд╕реЗ рдмрдВрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛; рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ ред рдлрд┐рд░, рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ "рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ" рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рд╕реНрдерд┐рддрд┐ рд╕реЗ рдЦреЗрд▓рдирд╛ рд╢реБрд░реВ рдХрд░рддреА рд╣реИрдВ рдФрд░ рддрдм рддрдХ рдЬрд╛рд░реА рд░рд╣рддреА рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдЕрдЧрд▓реА рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред рдпрд╣ "рдлрд┐рд░ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ DBMS рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ ( рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд┐рд╕реНрдЯрдо рдХрдиреЗрдХреНрд╢рди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ )ред

рдФрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рд░реНрд╡рд░ рд╢рдЯрдбрд╛рдЙрди рдХреЗ рджреМрд░рд╛рди рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ? рдЧрдВрджреЗ рдкрдиреНрдиреЛрдВ рдХреЛ рдбрд┐рд╕реНрдХ рдореЗрдВ рдлреНрд▓рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, PostgreSQL рд╕рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЕрдВрддрд┐рдо рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдЪрд▓рд╛рддрд╛ рд╣реИред

рд▓реЙрдЧ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдпрд╛рдж рд░рдЦреЗрдВ:

 => SELECT pg_current_wal_insert_lsn(); 
  pg_current_wal_insert_lsn --------------------------- 0/3514A14C (1 row) 

рдЕрдм рд╕рд░реНрд╡рд░ рдХреЛ рдзреАрд░реЗ рд╕реЗ рдмрдВрдж рдХрд░реЗрдВ:

 student$ sudo pg_ctlcluster 11 main stop 

рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

 postgres$ /usr/lib/postgresql/11/bin/pg_controldata -D /var/lib/postgresql/11/main | grep state 
 Database cluster state: shut down 

рдФрд░ рд▓реЙрдЧ рдореЗрдВ рд╣рдореЗрдВ рдЕрдВрддрд┐рдо рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ (CHECKPOINT_SHUTDOWN) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рд░рд┐рдХреЙрд░реНрдб рдорд┐рд▓рддрд╛ рд╣реИ:

 postgres$ /usr/lib/postgresql/11/bin/pg_waldump -p /var/lib/postgresql/11/main/pg_wal -s 0/3514A14C 
 rmgr: XLOG len (rec/tot): 102/ 102, tx: 0, lsn: 0/3514A14C, prev 0/3514A0E4, desc: CHECKPOINT_SHUTDOWN redo 0/3514A14C; tli 1; prev tli 1; fpw true; xid 0:101105; oid 74081; multi 1; offset 0; oldest xid 561 in DB 1; oldest multi 1 in DB 1; oldest/newest commit timestamp xid: 0/0; oldest running xid 0; shutdown 
 pg_waldump: FATAL: error in WAL record at 0/3514A14C: invalid record length at 0/3514A1B4: wanted 24, got 0 

(рдПрдХ рднрдпрд╛рдирдХ рдШрд╛рддрдХ рд╕рдВрджреЗрд╢ рдореЗрдВ, pg_waldump рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдкрддреНрд░рд┐рдХрд╛ рдХреЗ рдЕрдВрдд рддрдХ рдкрдврд╝рддрд╛ рд╣реИред)

рдлрд┐рд░ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдВред

 student$ sudo pg_ctlcluster 11 main start 

рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ


рдЬреИрд╕рд╛ рдХрд┐ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдЙрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдмрдлрд░ рдХреИрд╢ рд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рдЧрдВрджреЗ рдкреГрд╖реНрда рд▓рд┐рдЦрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдирд╣реАрдВред

рдпрджрд┐ рдмреИрдХрдПрдВрдб рдХреЛ рдкреГрд╖реНрда рдХреЛ рдмрдлрд░ рд╕реЗ рдмрд╛рд╣рд░ рдзрдХреЗрд▓рдирд╛ рд╣реИ рдФрд░ рдкреГрд╖реНрда рдЧрдВрджрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдПрдХ рдмреБрд░реА рд╕реНрдерд┐рддрд┐ рд╣реИ, рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рдгреА - рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ рдЬрдм рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд╣реЛрддреА рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ , рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдкреГрд╖реНрдарднреВрдорд┐ рд▓реЗрдЦрдХ, bgwriter, рдпрд╛ рд╕рд┐рд░реНрдл рд▓реЗрдЦрдХ) рднреА рд╣реИред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░реАрдореЗрд╢рди рддрдВрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдмрдлрд░ рдЦреЛрдЬ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдореВрд▓ рд░реВрдк рд╕реЗ рджреЛ рдЕрдВрддрд░ рд╣реИрдВред

  1. рдпрд╣ "рдЕрдЧрд▓реЗ рд╢рд┐рдХрд╛рд░" рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рд╣реИред рд╡рд╣ рд╕реВрдЪрдХ рд╕реЗ рдЖрдЧреЗ "рд╢рд┐рдХрд╛рд░" рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрднреА рднреА рдЙрд╕рд╕реЗ рдкреАрдЫреЗ рдирд╣реАрдВ рд░рд╣рддрд╛ред
  2. рдЬрдм рднреИрдВрд╕реЛрдВ рдХреЛ рдЯреНрд░реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рд┐рдЯ рдХрд╛рдЙрдВрдЯрд░ рдХрдо рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдмрдлрд╝рд░ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ рдЬреЛ рдПрдХ рд╕рд╛рде рд╣реИрдВ:

  • рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдбреЗрдЯрд╛ (рдЧрдВрджрд╛),
  • рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ (рдкрд┐рди рдЧрдгрдирд╛ = 0),
  • рд╢реВрдиреНрдп рд╣рд┐рдЯ (рдЙрдкрдпреЛрдЧ рдЧрдгрдирд╛ = 0)ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреГрд╖реНрдарднреВрдорд┐ рдХреА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдереА, рднреАрдбрд╝ рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓рддреА рд╣реИ рдФрд░ рдЙрди рдмрдлрд╝рд░реНрд╕ рдХреЛ рдвреВрдВрдврддреА рд╣реИ рдЬрд┐рдирдХреЗ рдЬрд▓реНрдж рд╣реА рдмрд╛рд╣рд░ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдЗрд╕рдХреЗ рдХрд╛рд░рдг, рд╕реЗрд╡рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдЪрдпрди рдХрд┐рдП рдЧрдП рдмрдлрд╝рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рдирд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рдорд╛рдпреЛрдЬрди


рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдорддреМрд░ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЬрд╛рддреА рд╣реИред

рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рддрдиреА рд▓реЙрдЧ рдлрд╛рдЗрд▓ рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ (рдФрд░ рдХреНрдпрд╛ рд░рд┐рдХрд╡рд░реА рдЯрд╛рдЗрдо рд╣рдореЗрдВ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИ)ред рдмрдбрд╝рд╛, рдмреЗрд╣рддрд░, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдпрд╣ рдореВрд▓реНрдп рд╕реАрдорд┐рдд рд╣реЛрдЧрд╛ред

рдЕрдЧрд▓рд╛, рд╣рдо рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд▓реЛрдб рдХреЗ рддрд╣рдд рдпрд╣ рд╡реЙрд▓реНрдпреВрдо рдХрдм рддрдХ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ред рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ (рд╣рдореЗрдВ рдЬрд░реНрдирд▓ рдореЗрдВ рдкрджреЛрдВ рдХреЛ рдпрд╛рдж рд░рдЦрдиреЗ рдФрд░ рдПрдХ рдХреЛ рджреВрд╕рд░реЗ рд╕реЗ рдШрдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред

рдпрд╣ рд╕рдордп рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рд╣рдорд╛рд░рд╛ рд╕рд╛рдорд╛рдиреНрдп рдЕрдВрддрд░рд╛рд▓ рд╣реЛрдЧрд╛ред рд╣рдо рдЗрд╕реЗ рдЪреЗрдХрдкреЙрдЗрдВрдЯ_ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред 5 рдорд┐рдирдЯ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореВрд▓реНрдп рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рд╕рдордп рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд╣рддреЗ рд╣реИрдВ, рдЖрдзреЗ рдШрдВрдЯреЗ рддрдХред рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ: рдХрдо рдмрд╛рд░ рдЖрдк рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдмрд░реНрджрд╛рд╢реНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмреЗрд╣рддрд░ - рдпрд╣ рдУрд╡рд░рд╣реЗрдб рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╕рдВрднрд╡ рд╣реИ (рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдВрднрд╛рд╡рд┐рдд) рдХрд┐ рдХрднреА-рдХрднреА рд▓реЛрдб рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛, рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдордп рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрд░реНрдирд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдЙрддреНрдкрдиреНрди рд╣реЛрдВрдЧреАред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЕрдзрд┐рдХ рдмрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, max_wal_size рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд╣рдо рдЙрд╕ рд░рд╛рд╢рд┐ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╣реА рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдХреЗ рднреАрддрд░ рдорд╛рдиреНрдп рд╣реИред рдпрджрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реЙрд▓реНрдпреВрдо рдЕрдзрд┐рдХ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рдПрдХ рдЕрдирдЗрдВрд╕реНрдЯрд╛рд▓реНрдб рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЕрдзрд┐рдХрд╛рдВрд╢ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдПрдХ рд╕рдордп рдкрд░ рд╣реЛрддреЗ рд╣реИрдВ: рдПрдХ рдмрд╛рд░ рдЪреЗрдХрдкреЙрдЗрдВрдЯ_ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ред рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд▓реЛрдб рдХреЗ рд╕рд╛рде, рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдХреЛ рдЕрдзрд┐рдХ рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм max_wal_size рд╡реЙрд▓реНрдпреВрдо рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ ред

рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ max_wal_size рдкреИрд░рд╛рдореАрдЯрд░ рдбрд┐рд╕реНрдХ рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЙрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЕрдзрд┐рдХрддрдо рдорд╛рддреНрд░рд╛ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

  • рдПрдХ рд╡рд┐рдлрд▓рддрд╛ рд╕реЗ рдЙрдмрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрд╕ рдкрд▓ рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕ рд╕рдордп рд╕реЗ рдЕрдВрддрд┐рдо рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╡рд░реНрддрдорд╛рди рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдЬрдорд╛ рд╣реБрдИ рдлрд╛рдЗрд▓реЗрдВред рдЗрд╕рд▓рд┐рдП, рдХреБрд▓ рдорд╛рддреНрд░рд╛ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
    (1 + checkpoint_completion_target ) ├Ч max_wal_size
  • рд╕рдВрд╕реНрдХрд░рдг 11 рд╕реЗ рдкрд╣рд▓реЗ, PostgreSQL рдиреЗ рджреЛ-рд╡рд░реНрд╖реАрдп рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓реЗрдВ рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рд╕реВрддреНрд░ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 10 рддрдХ, рдЖрдкрдХреЛ 1 рдХреЗ рдмрдЬрд╛рдп 2 рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
  • Max_wal_size рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗрд╡рд▓ рдПрдХ рдЗрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдХрдард┐рди рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • рд╕рд░реНрд╡рд░ рдХреЛ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдорд┐рдЯрд╛рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЕрднреА рддрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реНрд▓реЙрдЯреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдЬреЛ рдЕрднреА рддрдХ рдирд┐рд░рдВрддрд░ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рджреМрд░рд╛рди рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдпрджрд┐ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдирд┐рд░рдВрддрд░ рдирд┐рдЧрд░рд╛рдиреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд░реНрд╡рд░ рдореЗрдореЛрд░реА рдХреЛ рдУрд╡рд░рдлреНрд▓реЛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

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

рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдкреГрд╖реНрдарднреВрдорд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╕рд╛рде рдореЗрдВ, рд░рдЦрд░рдЦрд╛рд╡ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдЧрдВрджреЗ рдмрдлрд╝рд░реНрд╕ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреГрд╖реНрдарднреВрдорд┐ рдХреА рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ bgwriter_lru_maxpages рдкреГрд╖реНрдареЛрдВ рдкрд░ рдЪрдХреНрд░реЛрдВ рдореЗрдВ рдЪрд▓рддреА рд╣реИ, bgwriter_delay рдкрд░ рдЪрдХреНрд░реЛрдВ рдХреЗ рдмреАрдЪ рд╕реЛ рд░рд╣реА рд╣реИред

рдХрд╛рд░реНрдп рдХреЗ рдПрдХ рдЪрдХреНрд░ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреГрд╖реНрдареЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЙрди рдмрдлрд╝рд░реЛрдВ рдХреА рдФрд╕рдд рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдВрддрд┐рдо рд░рди рд╕реЗ рд╕рд░реНрд╡рд┐рд╕рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рд░рди рдХреЗ рдмреАрдЪ рдЕрд╕рдорд╛рдирддрд╛ рдХреЛ рд╢рд╛рдВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд▓рддреА рдФрд╕рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд▓реЗрдХрд┐рди рдПрдХ рд▓рдВрдмреЗ рдЗрддрд┐рд╣рд╛рд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ)ред рдмрдлрд╝рд░реНрд╕ рдХреА рдкрд░рд┐рдХрд▓рд┐рдд рд╕рдВрдЦреНрдпрд╛ рдЧреБрдгрд╛рдВрдХ bgwriter_lru_multiplier рджреНрд╡рд╛рд░рд╛ рдЧреБрдгрд╛ рдХреА рдЬрд╛рддреА рд╣реИ (рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрд╣ bgwriter_lru_maxpages рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдЧреА)ред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди: bgwriter_delay = 200ms (рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдпрд╣ 1/5 рд╕реЗрдХрдВрдб рдореЗрдВ рдмрд╣реБрдд рдкрд╛рдиреА рд▓реАрдХ рдХрд░рддрд╛ рд╣реИ ), bgwriter_lru_maxpages = 100, bgwriter_lru_bultiplier = 2.0 (рд╣рдо рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдорд╛рдВрдЧ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ)ред

рдпрджрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрдВрджреЗ рдмрдлрд╝рд░реНрд╕ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рддреА рд╣реИ (рдЬреЛ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ), рддреЛ рдпрд╣ "рд╣рд╛рдЗрдмрд░рдиреЗрдЯреНрд╕" рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдпрд╣ рдШрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдлрд░ рддрдХ рдкрд╣реБрдВрдЪрддреА рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬрд╛рдЧ рдЬрд╛рддреА рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред

рдирд┐рдЧрд░рд╛рдиреА


рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реБрдП, рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

Log_checkpoint рдкреИрд░рд╛рдореАрдЯрд░ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо) рд╕рд░реНрд╡рд░ рд╕рдВрджреЗрд╢ рд▓реЙрдЧ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдЪреМрдХрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░реЗрдВред

 => ALTER SYSTEM SET log_checkpoints = on; => SELECT pg_reload_conf(); 

рдЕрдм рдбреЗрдЯрд╛ рдореЗрдВ рдХреБрдЫ рдмрджрд▓реЗрдВ рдФрд░ рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред

 => UPDATE chkpt SET n = n + 1; => CHECKPOINT; 

рд╕рдВрджреЗрд╢ рд▓реЙрдЧ рдореЗрдВ рд╣рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджреЗрдЦреЗрдВрдЧреЗ:

 postgres$ tail -n 2 /var/log/postgresql/postgresql-11-main.log 
 2019-07-17 15:27:55.248 MSK [8962] LOG: checkpoint starting: immediate force wait 2019-07-17 15:27:55.274 MSK [8962] LOG: checkpoint complete: wrote 79 buffers (0.5%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.001 s, sync=0.013 s, total=0.025 s; sync files=2, longest=0.011 s, average=0.006 s; distance=1645 kB, estimate=1645 kB 

рдпрд╣рд╛рдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рддрдиреЗ рдмрдлрд╝рд░реНрд╕ рд▓рд┐рдЦреЗ рдЧрдП рдереЗ, рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдХреЗ рдмрд╛рдж рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреИрд╕реЗ рдмрджрд▓ рдЧрдИ, рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрд╛ рдФрд░ рдкрдбрд╝реЛрд╕реА рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА (рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ)ред

рд▓реЗрдХрд┐рди, рд╢рд╛рдпрдж, рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА pg_stat_bgwriter рджреГрд╢реНрдп рдореЗрдВ рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдХрд╛рдо рдХреЗ рдЖрдВрдХрдбрд╝реЗ рд╣реИрдВред рджреГрд╢реНрдп рджреЛ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдмрд╛рд░ рджреЛрдиреЛрдВ рдХрд╛рд░реНрдп рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдереЗ; рддрдм рдЙрдирдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рджреГрд╢реНрдп рдмрдирд╛ рд░рд╣рд╛ред

 => SELECT * FROM pg_stat_bgwriter \gx 
 -[ RECORD 1 ]---------+------------------------------ checkpoints_timed | 0 checkpoints_req | 1 checkpoint_write_time | 1 checkpoint_sync_time | 13 buffers_checkpoint | 79 buffers_clean | 0 maxwritten_clean | 0 buffers_backend | 42 buffers_backend_fsync | 0 buffers_alloc | 363 stats_reset | 2019-07-17 15:27:49.826414+03 

рдпрд╣рд╛рдВ, рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкреВрд░рд╛ рд╣реЛрддреЗ рд╣реБрдП рджреЗрдЦрддреЗ рд╣реИрдВ:

  • рдЪреМрдХрд┐рдпреЛрдВ_рддрд▓рд╛рдИ - рдЕрдиреБрд╕реВрдЪреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ (рдЪреЗрдХрдкреЙрдЗрдВрдЯ_ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░),
  • рдЪреМрдХрд┐рдпреЛрдВ_рд░реЗрдХ - рдСрди рдбрд┐рдорд╛рдВрдб (рдЕрдзрд┐рдХрддрдо_рд╡рд╛рд▓_рд╕рд╛рдЗрдЬ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╕рд╣рд┐рдд)ред

рдЪреЗрдХрдкреЙрдЗрдВрдЯ_рд░реЗрдХ (рдЪреМрдХрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ) рдХрд╛ рдмрдбрд╝рд╛ рдореВрд▓реНрдп рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдЕрдкреЗрдХреНрд╖рд╛ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВред

рджрд░реНрдЬ рдкреГрд╖реНрдареЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА:

  • рдмрдлрд╝рд░реНрд╕_рдЪреЗрдХрдкреЙрдЗрдВрдЯ - рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛,
  • рдмрдлрд╝рд░реНрд╕_рдмреИрдХреЗрдВрдб - рд╕реЗрд╡рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛,
  • рдмрдлрд╝рд░реНрд╕_рдХреНрд▓реАрди - рдкреГрд╖реНрдарднреВрдорд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ред

рдПрдХ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдкреНрд░рдгрд╛рд▓реА рдкрд░, рдмрдлрд╝рд░реНрд╕_рдмреИрдХреЗрдВрдб рдХрд╛ рдорд╛рди рдмрдлрд╝рд░реНрд╕_рдЪреЗрдХрдкреЙрдЗрдВрдЯ рдФрд░ рдмрдлрд╝рд░реНрд╕_рдХреНрд▓рд╛рдЗрди рдХреЗ рдпреЛрдЧ рд╕реЗ рдХрд╛рдлреА рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рд╛рде рд╣реА, рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП maxwritten_clean рдЙрдкрдпреЛрдЧреА рд╣реИ - рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ bgwriter_lru_maxpages рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд┐рддрдиреА рдмрд╛рд░ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреА рд╣реИ ред

рдЖрдк рдирд┐рдореНрди рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдЪрд┐рдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 => SELECT pg_stat_reset_shared('bgwriter'); 

рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛рдП ред

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


All Articles