MySQL рд╕рд╛рдареА рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░: рдЖрдкрдг рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдкреНрд░рдХрд▓реНрдк рдХрд╛ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА

рдХреЛрдгрддрд╛рд╣реА рдореЛрдард╛ рдкреНрд░рдХрд▓реНрдк рджреЛрди рд╕рд░реНрд╡реНрд╣рд░рдиреЗ рд╕реБрд░реВ рд╣реЛрддреЛ. рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдПрдХ рдбреАрдмреА рд╕рд░реНрд╡реНрд╣рд░ рд╣реЛрддрд╛, рдирдВрддрд░ рд╡рд╛рдЪрди рдореЛрдЬрдгреНрдпрд╛рд╕рд╛рдареА рдЧреБрд▓рд╛рдо рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ. рдЖрдгрд┐ рдордЧ - рдерд╛рдВрдмрд╛! рдПрдХ рдорд╛рд▓рдХ рдЖрд╣реЗ, рдкрдг рдЧреБрд▓рд╛рдо рдкреБрд╖реНрдХрд│ рдЖрд╣реЗрдд; рдЬрд░ рдЧреБрд▓рд╛рдорд╛рдВрдкреИрдХреА рдПрдХ рд╕реЛрдбрд▓рд╛ рддрд░ рд╕рд░реНрд╡рдХрд╛рд╣реА рдареАрдХ рд╣реЛрдИрд▓, рдкрд░рдВрддреБ рдЬрд░ рдорд╛рд╕реНрдЯрд░ рд╕реЛрдбрд▓рд╛ рддрд░ рддреЗ рд╡рд╛рдИрдЯ рд╣реЛрдИрд▓: рдбрд╛рдЙрдирдЯрд╛рдЗрдо, рдкреНрд░рд╢рд╛рд╕рдХ рд╕рд░реНрд╡реНрд╣рд░ рд╡рд╛рдврд╡рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реАрдд рдЖрд╣реЗрдд. рдХрд╛рдп рдХрд░рд╛рдпрдЪрдВ? рдПрдХ рдорд╛рд╕реНрдЯрд░ рд░рд╛рдЦреВрди рдареЗрд╡рд╛. рдорд╛рдЭрд╛ рд╕рд╣рдХрд╛рд░реА рдкрд╛рд╡реЗрд▓рдиреЗ рдпрд╛рдмрджреНрджрд▓ рдЖрдзреАрдЪ рд▓рд┐рд╣рд┐рд▓реЗ рдЖрд╣реЗ рдПрдХ рд▓реЗрдЦ, рдореА рддреНрдпрд╛рдЪреА рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. рддреНрдпрд╛рдРрд╡рдЬреА, рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдВрдЧреЗрди рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ MySQL рд╕рд╛рдареА рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рдЪреА рдЧрд░рдЬ рдХрд╛ рдЖрд╣реЗ!

рдЪрд▓рд╛ рдореБрдЦреНрдп рдкреНрд░рд╢реНрдирд╛рдкрд╛рд╕реВрди рд╕реБрд░реБрд╡рд╛рдд рдХрд░реВрдпрд╛: "рдорд╛рд╕реНрдЯрд░ рдирд┐рдШреВрди рдЧреЗрд▓реНрдпрд╛рд╡рд░ рдЖрдореНрд╣реА рдХреЛрдб рдирд╡реАрди рдорд╢реАрдирд╡рд░ рдХрд╕рд╛ рд╕реНрд╡рд┐рдЪ рдХрд░реВ?"

  • рдорд▓рд╛ рд╡реНрд╣реАрдЖрдпрдкреА (рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдЖрдпрдкреА) рдЕрд╕рд▓реЗрд▓реА рдпреЛрдЬрдирд╛ рд╕рд░реНрд╡рд╛рдд рдЬрд╛рд╕реНрдд рдЖрд╡рдбрддреЗ, рдЖрдореНрд╣реА рддреНрдпрд╛рдмрджреНрджрд▓ рдЦрд╛рд▓реА рдмреЛрд▓реВ. рд╣реЗ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкрд╛ рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ, рдЬрд░реА рддреНрдпрд╛рдЪреА рд╕реНрдкрд╖реНрдЯ рдорд░реНрдпрд╛рджрд╛ рдЖрд╣реЗ: рдЖрдореНрд╣реА рдЖрд░рдХреНрд╖рд┐рдд рдХрд░реВ рдЬреЛ рдорд╛рд╕реНрдЯрд░ рдирд╡реАрди рдорд╢реАрдирд╕рд╣ L2 рд╡рд┐рднрд╛рдЧрд╛рдордзреНрдпреЗ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдореНрд╣рдгрдЬреЗрдЪ, рдЖрдореНрд╣реА рджреБрд╕рд▒реНрдпрд╛ DC рдмрджреНрджрд▓ рд╡рд┐рд╕рд░реВ рд╢рдХрддреЛ. рдЖрдгрд┐, рд╕реМрд╣рд╛рд░реНрджрдкреВрд░реНрдг рдорд╛рд░реНрдЧрд╛рдиреЗ, рдЬрд░ рддреБрдореНрд╣реА рдирд┐рдпрдо рдкрд╛рд│рд▓рд╛рдд рдХреА рдореЛрдард╛ L2 рд╡рд╛рдИрдЯ рдЖрд╣реЗ, рдХрд╛рд░рдг L2 рдлрдХреНрдд рдкреНрд░рддрд┐ рд░реЕрдХ рдЖрд╣реЗ рдЖрдгрд┐ L3 рд░реЕрдХрдордзреНрдпреЗ рдЖрд╣реЗ рдЖрдгрд┐ рдЕрд╢рд╛ рдпреЛрдЬрдиреЗрдд рдЖрдгрдЦреА рдирд┐рд░реНрдмрдВрдз рдЖрд╣реЗрдд.
  • рддреБрдореНрд╣реА рдХреЛрдбрдордзреНрдпреЗ DNS рдирд╛рд╡ рд▓рд┐рд╣реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рддреЗ /etc/hosts рджреНрд╡рд╛рд░реЗ рд╕реЛрдбрд╡реВ рд╢рдХрддрд╛. рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдХреЛрдгрддрд╛рд╣реА рдард░рд╛рд╡ рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА. рдпреЛрдЬрдиреЗрдЪрд╛ рдлрд╛рдпрджрд╛: рдкрд╣рд┐рд▓реНрдпрд╛ рдкрджреНрдзрддреАрдЪреА рдХреЛрдгрддреАрд╣реА рдорд░реНрдпрд╛рджрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдирд╛рд╣реА, рдореНрд╣рдгрдЬреЗрдЪ рдХреНрд░реЙрд╕-рдбреАрд╕реА рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ. рдкрдг рдордЧ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рд╢реНрди рдЙрджреНрднрд╡рддреЛ: рдЖрдореНрд╣реА /etc/hosts рд▓рд╛ Puppet-Ansible рджреНрд╡рд╛рд░реЗ рдХрд┐рддреА рд▓рд╡рдХрд░ рдмрджрд▓ рдХрд░реВ рд╢рдХрддреЛ?
  • рддреБрдореНрд╣реА рджреБрд╕рд░реА рдкрджреНрдзрдд рдереЛрдбреА рдмрджрд▓реВ рд╢рдХрддрд╛: рд╕рд░реНрд╡ рд╡реЗрдм рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдХреЕрд╢рд┐рдВрдЧ DNS рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛, рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рдХреЛрдб рдорд╛рд╕реНрдЯрд░ рдбреЗрдЯрд╛рдмреЗрд╕рд╡рд░ рдЬрд╛рдИрд▓. DNS рдордзреНрдпреЗ рдпрд╛ рдПрдВрдЯреНрд░реАрд╕рд╛рдареА рддреБрдореНрд╣реА TTL 60 рд╕реЗрдЯ рдХрд░реВ рд╢рдХрддрд╛. рдЕрд╕реЗ рджрд┐рд╕рддреЗ рдХреА рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реНрдпрд╛рд╕, рдкрджреНрдзрдд рдЪрд╛рдВрдЧрд▓реА рдЖрд╣реЗ.
  • рд╕реЗрд╡рд╛ рд╢реЛрдз рдЕрд╕рд▓реЗрд▓реА рдпреЛрдЬрдирд╛, рдХрдиреНрд╕реБрд▓ рдЖрдгрд┐ рдЗ.рдЪрд╛ рд╡рд╛рдкрд░ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ.
  • рд╕рд╣ рдПрдХ рдордиреЛрд░рдВрдЬрдХ рдкрд░реНрдпрд╛рдп рдкреНрд░реЙрдХреНрд╕реАрдПрд╕рдХреНрдпреВрдПрд▓. рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд░реНрд╡ рдЯреНрд░реЕрдлрд┐рдХ ProxySQL рджреНрд╡рд╛рд░реЗ MySQL рдХрдбреЗ рдЬрд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓; ProxySQL рд╕реНрд╡рддрдГ рдХреЛрдг рдЖрд╣реЗ рд╣реЗ рдард░рд╡реВ рд╢рдХрддреЗ. рддрд╕реЗ, рдЖрдкрдг рд╣реЗ рдЙрддреНрдкрд╛рджрди рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкрд░реНрдпрд╛рдпрд╛рдВрдкреИрдХреА рдПрдХрд╛рдмрджреНрджрд▓ рд╡рд╛рдЪреВ рд╢рдХрддрд╛ рдорд╛рдЭреНрдпрд╛ рд▓реЗрдЦ.

рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рдЪреНрдпрд╛ рд▓реЗрдЦрдХрд╛рдиреЗ, рдЧрд┐рдердмрдордзреНрдпреЗ рдХрд╛рдо рдХрд░рдд, рдкреНрд░рдердо рд╡реНрд╣реАрдЖрдпрдкреАрд╕рд╣ рдкрд╣рд┐рд▓реА рдпреЛрдЬрдирд╛ рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЖрдгрд┐ рдирдВрддрд░ рддреА рдХрдиреНрд╕реБрд▓рд╕рд╣ рдпреЛрдЬрдиреЗрдд рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реА.

рдард░рд╛рд╡рд┐рдХ рдкрд╛рдпрд╛рднреВрдд рд▓реЗрдЖрдЙрдЯ:

MySQL рд╕рд╛рдареА рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░: рдЖрдкрдг рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдкреНрд░рдХрд▓реНрдк рдХрд╛ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА
рдореА рддрд╛рдмрдбрддреЛрдм рд╕реНрдкрд╖реНрдЯ рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрдЪреЗ рд╡рд░реНрдгрди рдХрд░реЗрди рдЬреНрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:

  • VIP рдкрддреНрддрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реАрд▓ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ рдиреЛрдВрджрдгреАрдХреГрдд рдирд╕рд╛рд╡рд╛. рдЪрд▓рд╛ рдПрдХрд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдЪреА рдХрд▓реНрдкрдирд╛ рдХрд░реВрдпрд╛: рдорд╛рд╕реНрдЯрд░ рд░реАрдмреВрдЯ рдЭрд╛рд▓рд╛, рдЖрдгрд┐ рддреЛ рд▓реЛрдб рд╣реЛрдд рдЕрд╕рддрд╛рдирд╛, рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдлреЗрд▓рдУрд╡реНрд╣рд░ рдореЛрдбрдордзреНрдпреЗ рдЧреЗрд▓рд╛ рдЖрдгрд┐ рджрд╛рд╕рд╛рдВрдкреИрдХреА рдПрдХрд╛рд▓рд╛ рдорд╛рд╕реНрдЯрд░ рдмрдирд╡рд▓реЗ; рдордЧ рдЬреБрдирд╛ рдорд╛рд╕реНрдЯрд░ рдЙрдард▓рд╛ рдЖрдгрд┐ рдЖрддрд╛ рд╡реНрд╣реАрдЖрдпрдкреА рджреЛрди рдЧрд╛рдбреНрдпрд╛рдВрд╡рд░ рдЖрд╣реЗ. рд╣реЗ рд╡рд╛рдИрдЯ рдЖрд╣реЗ.
  • рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдЬреБрдиреНрдпрд╛ рдорд╛рд╕реНрдЯрд░ рдЖрдгрд┐ рдирд╡реАрди рдорд╛рд╕реНрдЯрд░рд▓рд╛ рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рд╣рд╛рд╡реА рд▓рд╛рдЧреЗрд▓. рдЬреБрдиреНрдпрд╛ рдорд╛рд╕реНрдЯрд░рд╡рд░ рддреБрдореНрд╣рд╛рд▓рд╛ ifdown рдЪрд╛рд▓рд╡рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ рдЖрдгрд┐ рдирд╡реАрди рдорд╛рд╕реНрдЯрд░рд╡рд░ - ifup vip. рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдордзреНрдпреЗ рд╣реЗ рджреЗрдЦреАрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЪрд╛рдВрдЧрд▓реЗ рд╣реЛрдИрд▓ рдХреА рдлреЗрд▓рдУрд╡реНрд╣рд░ рдЭрд╛рд▓реНрдпрд╛рд╕, рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕реНрдкреНрд▓рд┐рдЯрдмреНрд░реЗрди рдЯрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА рдЬреБрдиреНрдпрд╛ рдорд╛рд╕реНрдЯрд░рдЪреНрдпрд╛ рд╕реНрд╡рд┐рдЪрд╡рд░реАрд▓ рдкреЛрд░реНрдЯ рдлрдХреНрдд рдмрдВрдж рдХреЗрд▓реЗ рдЬрд╛рддреЗ.
  • рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рдиреЗ рдкреНрд░рдердо VIP рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐/рдХрд┐рдВрд╡рд╛ рд╕реНрд╡рд┐рдЪрд╡рд░реАрд▓ рдкреЛрд░реНрдЯ рд╡рд┐рдЭрд╡рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдордЪреНрдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓рд╛ рдХреЙрд▓ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдЖрдгрд┐ рдирдВрддрд░ рдирд╡реАрди рдорд╛рд╕реНрдЯрд░рд╡рд░ VIP рд╡рд╛рдврд╡рдгрд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЙрд▓ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдирд╡реАрди VIP рдЖрддрд╛ рдЖрд╣реЗ рд╣реЗ рд╕рд░реНрд╡рд╛рдВрдирд╛ рд╕рд╛рдВрдЧрдгреНрдпрд╛рд╕рд╛рдареА arping рдХрдорд╛рдВрдб рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рд╡рд┐рд╕рд░реВ рдирдХрд╛. рдпреЗрдереЗ
  • рд╕рд░реНрд╡ рдЧреБрд▓рд╛рдорд╛рдВрдХрдбреЗ рдлрдХреНрдд рд╡рд╛рдЪрдиреАрдп = 1 рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рддреБрдореНрд╣реА рдЧреБрд▓рд╛рдорд╛рд▓рд╛ рдорд╛рд▓рдХрд╛рдХрдбреЗ рдкреНрд░рдореЛрдЯ рдХрд░рддрд╛рдЪ, рддреЗ рдлрдХреНрдд read_only=0 рдЕрд╕рд╛рд╡реЗ.
  • рд╣реЗ рд╡рд┐рд╕рд░реВ рдирдХрд╛ рдХреА рдЖрдореНрд╣реА рдпрд╛рд╕рд╛рдареА рдирд┐рд╡рдбрд▓реЗрд▓рд╛ рдХреЛрдгрддрд╛рд╣реА рдЧреБрд▓рд╛рдо рдорд╛рд╕реНрдЯрд░ рдмрдиреВ рд╢рдХрддреЛ (рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рдХрдбреЗ рд╕рдВрдкреВрд░реНрдг рдкреНрд░рд╛рдзрд╛рдиреНрдп рдпрдВрддреНрд░рдгрд╛ рдЖрд╣реЗ рдЬреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рдердо рд╕реНрдерд╛рдирд╛рд╡рд░ рдирд╡реАрди рдорд╛рд▓рдХрд╛рд╕рд╛рдареА рдЙрдореЗрджрд╡рд╛рд░ рдореНрд╣рдгреВрди рдХреЛрдгрддрд╛ рдЧреБрд▓рд╛рдо рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреНрдпрд╛рд╡рд╛, рдХреЛрдгрддрд╛ рджреБрд╕рд▒реНрдпрд╛ рд╕реНрдерд╛рдирд╛рд╡рд░ рдЖрдгрд┐ рдХреЛрдгрддрд╛ рдЧреБрд▓рд╛рдо рдЕрд╕рд╛рд╡рд╛. рдХреЛрдгрддреНрдпрд╛рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рдорд╛рд╕реНрдЯрд░рдЪреА рдирд┐рд╡рдб рдХреЗрд▓реА рдЬрд╛рдК рдирдпреЗ). рдЧреБрд▓рд╛рдо рдорд╛рд▓рдХ рдЭрд╛рд▓рд╛ рддрд░ рдЧреБрд▓рд╛рдорд╛рдЪрд╛ рднрд╛рд░ рддреНрдпрд╛рдЪреНрдпрд╛рд╡рд░ рд░рд╛рд╣реАрд▓ рдЖрдгрд┐ рдзрдиреНрдпрд╛рдЪрд╛ рднрд╛рд░ рдЬреЛрдбрд▓рд╛ рдЬрд╛рдИрд▓, рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрддрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ.

рдЖрдкрд▓реНрдпрд╛рдХрдбреЗ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдирд╕рд▓реНрдпрд╛рд╕ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдЖрд╣реЗ?

  • рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рдХрдбреЗ рдЕрддрд┐рд╢рдп рд╡рд╛рдкрд░рдХрд░реНрддрд╛-рдЕрдиреБрдХреВрд▓ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрд╣реЗ рдЬреЛ рд╕рдВрдкреВрд░реНрдг рдЯреЛрдкреЛрд▓реЙрдЬреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЛ (рдЦрд╛рд▓реА рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдкрд╣рд╛).
  • рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдЯреНрд░реЕрдХ рдХрд░реВ рд╢рдХрддреЛ рдХреА рдХреЛрдгрддреЗ рдЧреБрд▓рд╛рдо рдорд╛рдЧреЗ рдЖрд╣реЗрдд рдЖрдгрд┐ рдХреБрдареЗ рдкреНрд░рддрд┐рдХреГрддреА рд╕рд╛рдорд╛рдиреНрдпрдкрдгреЗ рдЦрдВрдбрд┐рдд рдЭрд╛рд▓реА рдЖрд╣реЗ (рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрд╕рдПрдордПрд╕ рдкрд╛рдард╡рдгреНрдпрд╛рд╕рд╛рдареА рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рд╢реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд▓рдЧреНрди рдЖрд╣реЗрдд).
  • рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдВрдЧрддреЛ рдХреА рдХреЛрдгрддреНрдпрд╛ рдЧреБрд▓рд╛рдорд╛рдВрдордзреНрдпреЗ GTID рддреНрд░реБрдЯреА рдЖрд╣реЗ.

рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдЗрдВрдЯрд░рдлреЗрд╕:

MySQL рд╕рд╛рдареА рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░: рдЖрдкрдг рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдкреНрд░рдХрд▓реНрдк рдХрд╛ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА
GTID рддреНрд░реБрдЯреА рдореНрд╣рдгрдЬреЗ рдХрд╛рдп?

рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рд▓рд╛ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреЛрди рдореБрдЦреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗрдд:

  • MySQL рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рд╕рд░реНрд╡ рдорд╢реАрдирд╡рд░ рд╕реНрдпреВрдбреЛ GTID рд╕рдХреНрд╖рдо рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ; рдЖрдореНрд╣реА GTID рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдЖрд╣реЗ.
  • рд╕рд░реНрд╡рддреНрд░ рдПрдХ рдкреНрд░рдХрд╛рд░рдЪреЗ рдмрд┐рдирд▓реЙрдЧ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рддреБрдореНрд╣реА рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛. рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╣реЛрддреЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдорд╛рд╕реНрдЯрд░ рдЖрдгрд┐ рдмрд╣реБрддреЗрдХ рдЧреБрд▓рд╛рдорд╛рдВрдЪреА рдкрдВрдХреНрддреА рд╣реЛрддреА рдЖрдгрд┐ рджреЛрди рдРрддрд┐рд╣рд╛рд╕рд┐рдХрджреГрд╖реНрдЯреНрдпрд╛ рдорд┐рд╢реНрд░рд┐рдд рдореЛрдбрдордзреНрдпреЗ рд░рд╛рд╣рд┐рд▓реЗ. рдкрд░рд┐рдгрд╛рдореА, рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рд▓рд╛ рдпрд╛ рдЧреБрд▓рд╛рдорд╛рдВрдирд╛ рдирд╡реАрди рдорд╛рд▓рдХрд╛рд╢реА рдЬреЛрдбрд╛рдпрдЪреЗ рдирд╡реНрд╣рддреЗ.

рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рдкреНрд░реЙрдбрдХреНрд╢рди рд╕реНрд▓реЗрд╡реНрд╣рдордзреНрдпреЗ рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрд╡рд╛рдЪреА рдЧреЛрд╖реНрдЯ рдореНрд╣рдгрдЬреЗ рдорд╛рд╕реНрдЯрд░рд╢реА рд╕реБрд╕рдВрдЧрддрддрд╛! рддреБрдордЪрд╛ рдорд╛рд▓рдХ рдЖрдгрд┐ рдЧреБрд▓рд╛рдо рдпрд╛ рджреЛрдШрд╛рдВрд╡рд░ рддреБрдореНрд╣реА рдЧреНрд▓реЛрдмрд▓ рдЯреНрд░рд╛рдиреНрдЭреЕрдХреНрд╢рди рдЖрдпрдбреА (GTID) рд╕рдХреНрд╖рдо рдХреЗрд▓рд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА рдпрд╛ рдорд╢реАрдирд╡рд░ рдбреЗрдЯрд╛ рдмрджрд▓рд╛рдВрдЪреНрдпрд╛ рд╕рдорд╛рди рд╡рд┐рдирдВрддреНрдпрд╛ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд рдХреА рдирд╛рд╣реА рд╣реЗ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА gtid_subset рдлрдВрдХреНрд╢рди рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛. рдЖрдкрдг рдпрд╛рдмрджреНрджрд▓ рдЕрдзрд┐рдХ рд╡рд╛рдЪреВ рд╢рдХрддрд╛ рдпреЗрдереЗ.

рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдЬреАрдЯреАрдЖрдпрдбреА рддреНрд░реБрдЯреАрджреНрд╡рд╛рд░реЗ рджрд╛рдЦрд╡рддреЛ рдХреА рдЧреБрд▓рд╛рдорд╛рд╡рд░ рдЕрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдЖрд╣реЗрдд рдЬреЗ рдорд╛рд╕реНрдЯрд░рд╡рд░ рдирд╛рд╣реАрдд. рдЕрд╕реЗ рдХрд╛ рд╣реЛрдд рдЖрд╣реЗ?

  • Read_only=1 рд╕реНрд▓реЗрд╡реНрд╣рд╡рд░ рд╕рдХреНрд╖рдо рдирд╛рд╣реА, рдХреЛрдгреАрддрд░реА рдХрдиреЗрдХреНрдЯ рдХреЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдбреЗрдЯрд╛ рдмрджрд▓рдгреНрдпрд╛рдЪреА рд╡рд┐рдирдВрддреА рдкреВрд░реНрдг рдХреЗрд▓реА рдЖрд╣реЗ.
  • Super_read_only=1 рд╕реНрд▓реЗрд╡реНрд╣рд╡рд░ рд╕рдХреНрд╖рдо рдирд╛рд╣реА, рдирдВрддрд░ рдкреНрд░рд╢рд╛рд╕рдХрд╛рдиреЗ, рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рдЧреЛрдВрдзрд│рд╛рдд рдЯрд╛рдХреВрди, рддреЗрдереЗ рдЬрд╛рдКрди рд╡рд┐рдирдВрддреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реА.
  • рддреБрдореНрд╣реА рдорд╛рдЧреАрд▓ рджреЛрдиреНрд╣реА рдореБрджреНрджреЗ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрддрд▓реНрдпрд╛рд╕, рдЖрдгрдЦреА рдПрдХ рдпреБрдХреНрддреА рдЖрд╣реЗ: MySQL рдордзреНрдпреЗ, рдмрд┐рдирд▓реЙрдЧ рдлреНрд▓рд╢ рдХрд░рдгреНрдпрд╛рдЪреА рд╡рд┐рдирдВрддреА рджреЗрдЦреАрд▓ рдмрд┐рдирд▓реЙрдЧрдХрдбреЗ рдЬрд╛рддреЗ, рдореНрд╣рдгреВрди рдкрд╣рд┐рд▓реНрдпрд╛ рдлреНрд▓рд╢рд╡рд░, рдорд╛рд╕реНрдЯрд░ рдЖрдгрд┐ рд╕рд░реНрд╡ рдЧреБрд▓рд╛рдорд╛рдВрд╡рд░ рдПрдХ GTID рддреНрд░реБрдЯреА рджрд┐рд╕реВрди рдпреЗрдИрд▓. рд╣реЗ рдХрд╕реЗ рдЯрд╛рд│рд╛рдпрдЪреЗ? рдкреЗрд░реЛрдирд╛-5.7.25-28 рдиреЗ binlog_skip_flush_commands=1 рд╕реЗрдЯрд┐рдВрдЧ рд╕рд╛рджрд░ рдХреЗрд▓реА, рдЬреЗ binlogs рд╡рд░ рдлреНрд▓рд╢ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддреЗ. mysql.com рд╡реЗрдмрд╕рд╛рдЗрдЯрд╡рд░ рдПрдХ рд╕реНрдерд╛рдкрд┐рдд рдЖрд╣реЗ рдХрд┐рдбрд╛.

рдореА рд╡рд░реАрд▓ рд╕рд░реНрд╡ рдЧреЛрд╖реНрдЯреАрдВрдЪрд╛ рд╕рд╛рд░рд╛рдВрд╢ рджреЗрддреЛ. рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрджреНрдпрд╛рдк рдлреЗрд▓рдУрд╡реНрд╣рд░ рдореЛрдбрдордзреНрдпреЗ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рд╡рд╛рдкрд░рд╛рдпрдЪрд╛ рдирд╕реЗрд▓, рддрд░ рддреЗ рдирд┐рд░реАрдХреНрд╖рдг рдореЛрдбрдордзреНрдпреЗ рдареЗрд╡рд╛. рдордЧ рддреБрдордЪреНрдпрд╛ рдбреЛрд│реНрдпрд╛рдВрд╕рдореЛрд░ рдиреЗрд╣рдореА MySQL рдорд╢реАрдиреНрд╕рдЪреНрдпрд╛ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджрд╛рдЪрд╛ рдирдХрд╛рд╢рд╛ рдЕрд╕реЗрд▓ рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдорд╢реАрдирд╡рд░ рдХреЛрдгрддреНрдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреА рдкреНрд░рддрд┐рдХреГрддреА рдЖрд╣реЗ, рдЧреБрд▓рд╛рдо рдорд╛рдЧреЗ рдЖрд╣реЗрдд рдХреА рдирд╛рд╣реА рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдореНрд╣рдгрдЬреЗ рддреЗ рдорд╛рд╕реНрдЯрд░рд╢реА рдХрд┐рддреА рд╕реБрд╕рдВрдЧрдд рдЖрд╣реЗрдд рдпрд╛рдЪреА рджреГрд╢реНрдп рдорд╛рд╣рд┐рддреА рдЕрд╕реЗрд▓!

рд╕реНрдкрд╖реНрдЯ рдкреНрд░рд╢реНрди рдЖрд╣реЗ: "рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рдиреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рд╛рд╡реЗ?" рддреНрдпрд╛рдиреЗ рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдЧреБрд▓рд╛рдорд╛рдВрдордзреВрди рдирд╡реАрди рдорд╛рд╕реНрдЯрд░ рдирд┐рд╡рдбрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЖрдгрд┐ рдирдВрддрд░ рд╕рд░реНрд╡ рдЧреБрд▓рд╛рдорд╛рдВрдирд╛ рдкреБрдиреНрд╣рд╛ рдЬреЛрдбрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ (рдпрд╛рд╕рд╛рдареА рдЬреАрдЯреАрдЖрдпрдбреА рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ; рдЬрд░ рддреБрдореНрд╣реА binlog_name рдЖрдгрд┐ binlog_pos рд╕рд╣ рдЬреБрдиреА рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░рдд рдЕрд╕рд╛рд▓, рддрд░ рдЧреБрд▓рд╛рдорд╛рд▓рд╛ рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдорд╛рд▓рдХрд╛рдХрдбреВрди рдирд╡реАрдирд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдлрдХреНрдд рдЕрд╢рдХреНрдп рдЖрд╣реЗ!). рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдЕрд╕рдгреНрдпрд╛рдЖрдзреА, рдорд▓рд╛ рдПрдХрджрд╛ рд╣реЗ рд╕рд░реНрд╡ рд╣рд╛рддрд╛рдиреЗ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ. рдмрдЧреНрдЧреА рдЕреЕрдбрд╛рдкреНрдЯреЗрдХ рдХрдВрдЯреНрд░реЛрд▓рд░рдореБрд│реЗ рдЬреБрдирд╛ рдорд╛рд╕реНрдЯрд░ рд▓рдЯрдХрд▓рд╛ рд╣реЛрддрд╛; рддреНрдпрд╛рдд рд╕реБрдорд╛рд░реЗ 10 рдЧреБрд▓рд╛рдо рд╣реЛрддреЗ. рдорд▓рд╛ рдорд╛рд╕реНрдЯрд░рдХрдбреВрди рдПрдХрд╛ рдЧреБрд▓рд╛рдорд╛рдХрдбреЗ рд╡реНрд╣реАрдЖрдпрдкреА рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рдЗрддрд░ рд╕рд░реНрд╡ рдЧреБрд▓рд╛рдорд╛рдВрдирд╛ рдкреБрдиреНрд╣рд╛ рдЬреЛрдбрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдорд▓рд╛ рдХрд┐рддреА рдХрдиреНрд╕реЛрд▓ рдЙрдШрдбрд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ, рдореА рдПрдХрд╛рдЪ рд╡реЗрд│реА рдХрд┐рддреА рдЖрдЬреНрдЮрд╛ рджрд┐рд▓реНрдпрд╛... рдорд▓рд╛ рдкрд╣рд╛рдЯреЗ 3 рд╡рд╛рдЬреЗрдкрд░реНрдпрдВрдд рдерд╛рдВрдмрд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ, рджреЛрди рд╡рдЧрд│рддрд╛ рд╕рд░реНрд╡ рдЧреБрд▓рд╛рдорд╛рдВрд╡рд░реАрд▓ рднрд╛рд░ рдХрд╛рдвреВрди рдЯрд╛рдХрд╛, рджреЛрди рдорд╛рд╕реНрдЯрд░рдордзреВрди рдкрд╣рд┐рд▓реЗ рдорд╢реАрди рдмрдирд╡рд╛, рд▓рдЧреЗрдЪ рджреБрд╕рд░реЗ рдорд╢реАрди рд╕рдВрд▓рдЧреНрди рдХрд░рд╛ рддреНрдпрд╛рд╡рд░, рдореНрд╣рдгреВрди рдЗрддрд░ рд╕рд░реНрд╡ рдЧреБрд▓рд╛рдорд╛рдВрдирд╛ рдирд╡реАрди рдорд╛рд▓рдХрд╛рд╢реА рдЬреЛрдбрд╛ рдЖрдгрд┐ рднрд╛рд░ рдкрд░рдд рдХрд░рд╛. рдПрдХреВрдгрдЪ, рднрдпрд╛рдирдХ...

рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдлреЗрд▓рдУрд╡реНрд╣рд░ рдореЛрдбрдордзреНрдпреЗ рдЬрд╛рддреЛ рддреЗрд╡реНрд╣рд╛ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ? рд╣реЗ рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдЪреНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рджреНрд╡рд╛рд░реЗ рдЕрдЧрджреА рд╕рд╣рдЬрдкрдгреЗ рд╕реНрдкрд╖реНрдЯ рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЬреЗрдереЗ рдЖрдкрдг рдорд╛рд╕реНрдЯрд░рд▓рд╛ рдЖрдкрд▓реНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА, рдЕрдзрд┐рдХ рдЖрдзреБрдирд┐рдХ рдорд╢реАрди рдмрдирд╡реВ рдЗрдЪреНрдЫрд┐рддреЛ.

MySQL рд╕рд╛рдареА рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░: рдЖрдкрдг рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдкреНрд░рдХрд▓реНрдк рдХрд╛ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА
рдЖрдХреГрддреА рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреНрдпрд╛ рдордзреНрдпрднрд╛рдЧреА рджрд░реНрд╢рд╡рддреЗ. рдпрд╛ рдмрд┐рдВрджреВрдкрд░реНрдпрдВрдд рдЖрдзреАрдЪ рдХрд╛рдп рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ? рдЖрдореНтАНрд╣реА рдореНтАНрд╣рдЯрд▓реЗ рдХреА рдЖрдореНтАНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рдЧреБрд▓рд╛рдо рдирд╡реАрди рдорд╛рд╕реНтАНрдЯрд░ рдмрдирд╡рд╛рдпрдЪреЗ рдЖрд╣реЗ, рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рдиреЗ рдЗрддрд░ рд╕рд░реНрд╡ рдЧреБрд▓рд╛рдорд╛рдВрдирд╛ рд╕рд╣рдЬ рдЬреЛрдбрдгреНтАНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА, рдирд╡реАрди рдорд╛рд╕реНтАНрдЯрд░ рдЯреНрд░рд╛рдиреНрдЭрд┐рдЯ рдорд╢реАрди рдореНтАНрд╣рдгреВрди рдХрд╛рдо рдХрд░рдд рдЖрд╣реЗ. рдпрд╛ рдпреЛрдЬрдиреЗрд╕рд╣, рдХреЛрдгрддреНрдпрд╛рд╣реА рддреНрд░реБрдЯреА рдЙрджреНрднрд╡рдд рдирд╛рд╣реАрдд, рд╕рд░реНрд╡ рдЧреБрд▓рд╛рдо рдХрд╛рдо рдХрд░рддрд╛рдд, рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдЬреБрдиреНрдпрд╛ рдорд╛рд╕реНрдЯрд░рдХрдбреВрди рд╡реНрд╣реАрдЖрдпрдкреА рдХрд╛рдвреВрди рдЯрд╛рдХрддреЛ, рддреЗ рдирд╡реАрдирдХрдбреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рддреЛ, рдлрдХреНрдд read_only=0 рдмрдирд╡рддреЛ рдЖрдгрд┐ рдЬреБрдиреНрдпрд╛ рдорд╛рд╕реНрдЯрд░рдмрджреНрджрд▓ рд╡рд┐рд╕рд░рддреЛ. рд╕рд░реНрд╡! рдЖрдордЪреНрдпрд╛ рд╕реЗрд╡реЗрдЪрд╛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╡реНрд╣реАрдЖрдпрдкреА рд╣рд╕реНрддрд╛рдВрддрд░рдг рд╡реЗрд│ рдЖрд╣реЗ, рдЬреЛ 2-3 рд╕реЗрдХрдВрдж рдЖрд╣реЗ.

рдЖрдЬрд╕рд╛рдареА рдПрд╡рдвреЗрдЪ, рд╕рд░реНрд╡рд╛рдВрдЪреЗ рдЖрднрд╛рд░. рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рдмрджреНрджрд▓ рд▓рд╡рдХрд░рдЪ рджреБрд╕рд░рд╛ рд▓реЗрдЦ рдпреЗрдИрд▓. "рдЧреЕрд░реЗрдЬ" рдпрд╛ рдкреНрд░рд╕рд┐рджреНрдз рд╕реЛрд╡реНрд╣рд┐рдПрдд рдЪрд┐рддреНрд░рдкрдЯрд╛рдд, рдПрдХрд╛ рдкрд╛рддреНрд░рд╛рдиреЗ рдореНрд╣рдЯрд▓реЗ, "рдореА рддреНрдпрд╛рдЪреНрдпрд╛рдмрд░реЛрдмрд░ рд╢реЛрдз рдШреЗрдгрд╛рд░ рдирд╛рд╣реА!" рддрд░, рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░, рдореА рддреБрдордЪреНрдпрд╛рд╕реЛрдмрдд рдЬрд╛рдИрди!

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛