MySQL рдХреЛ рд▓рд╛рдЧрд┐ рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░: рдХрд┐рди рддрдкрд╛рдИрдВ рдмрд┐рдирд╛ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди

рдХреБрдиреИ рдкрдирд┐ рдареВрд▓реЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рд░реНрднрд░ рдХреЛ рдПрдХ рдЬреЛрдбреА рд╕рдВрдЧ рд╕реБрд░реБ рднрдпреЛред рд╕реБрд░реБрдорд╛ рддреНрдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ DB рд╕рд░реНрднрд░ рдерд┐рдпреЛ, рддреНрдпрд╕рдкрдЫрд┐ рдкрдврд╛рдЗ рдорд╛рдкрди рдЧрд░реНрди рджрд╛рд╕рд╣рд░реВ рдердкрд┐рдпреЛред рд░ рддреНрдпрд╕рдкрдЫрд┐ - рд░реЛрдХреНрдиреБрд╣реЛрд╕реН! рддреНрдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рдорд╛рд▓рд┐рдХ рдЫ, рддрд░ рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рджрд╛рд╕рд╣рд░реВ рдЫрдиреН; рдпрджрд┐ рджрд╛рд╕рд╣рд░реВ рдордзреНрдпреЗ рдПрдХрд▓реЗ рдЫреЛрдбреНрдпреЛ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рд╕рдмреИ рдареАрдХ рд╣реБрдиреЗрдЫ, рддрд░ рдпрджрд┐ рдорд╛рд▓рд┐рдХрд▓реЗ рдЫреЛрдбреНрдпреЛ рднрдиреЗ, рдпреЛ рдЦрд░рд╛рдм рд╣реБрдиреЗрдЫ: рдбрд╛рдЙрдирдЯрд╛рдЗрдо, рдкреНрд░рд╢рд╛рд╕рдХрд╣рд░реВрд▓реЗ рд╕рд░реНрднрд░ рдЙрдард╛рдЙрди рдЦреЛрдЬрд┐рд░рд╣реЗрдХрд╛ рдЫрдиреНред рдХреЗ рдЧрд░реНрдиреЗ? рдорд╛рд╕реНрдЯрд░ рд░рд┐рдЬрд░реНрдн рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдореЗрд░реЛ рд╕рд╣рдХрд░реНрдореА рдкрд╛рд╡реЗрд▓ рдкрд╣рд┐рд▓реЗ рдиреИ рдпрд╕ рдмрд╛рд░реЗ рд▓реЗрдЦреЗ рд▓реЗрдЦ, рдо рдпрд╕рд▓рд╛рдИ рджреЛрд╣реЛрд░реНрдпрд╛рдЙрдиреЗ рдЫреИрдиред рдпрд╕рдХреЛ рд╕рдЯреНрдЯрд╛, рдо рддрдкрд╛рдИрд▓рд╛рдИ MySQL рдХреЛ рд▓рд╛рдЧрд┐ рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдХрд┐рди рдЪрд╛рд╣рд┐рдиреНрдЫ рднрдиреЗрд░ рдмрддрд╛рдЙрдиреЗрдЫреБ!

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

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

Github рдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдХреЛ рд▓реЗрдЦрдХ, рдкрд╣рд┐рд▓реЗ VIP рд╕рдВрдЧ рдкрд╣рд┐рд▓реЛ рдпреЛрдЬрдирд╛ рд▓рд╛рдЧреВ рдЧрд░реНрдпреЛ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдХрдиреНрд╕реБрд▓ рд╕рдВрдЧ рдПрдХ рдпреЛрдЬрдирд╛ рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдгред

рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рд▓реЗрдЖрдЙрдЯ:

MySQL рдХреЛ рд▓рд╛рдЧрд┐ рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░: рдХрд┐рди рддрдкрд╛рдИрдВ рдмрд┐рдирд╛ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди
рдо рддреБрд░реБрдиреНрддреИ рд╕реНрдкрд╖реНрдЯ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗрдЫреБ рдЬреБрди рдЦрд╛рддрд╛рдорд╛ рд▓рд┐рдиреБ рдЖрд╡рд╢реНрдпрдХ рдЫ:

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

рдпрджрд┐ рддрдкрд╛рдИрд╕рдБрдЧ рдЫреИрди рднрдиреЗ рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдХрд┐рди рдЪрд╛рд╣рд┐рдиреНрдЫ?

  • рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рд╕рдБрдЧ рдзреЗрд░реИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛-рдЕрдиреБрдХреВрд▓ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдЫ рдЬрд╕рд▓реЗ рд╕рдореНрдкреВрд░реНрдг рдЯреЛрдкреЛрд▓реЛрдЬреА рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫ (рддрд▓рдХреЛ рд╕реНрдХреНрд░рд┐рдирд╕рдЯ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН)ред
  • рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рд▓реЗ рдХреБрди рджрд╛рд╕рд╣рд░реВ рдкрдЫрд┐ рдкрд░реЗрдХрд╛ рдЫрдиреН рднрдиреЗрд░ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрди рд╕рдХреНрдЫ, рд░ рдЬрд╣рд╛рдБ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдмрд┐рдЧреНрд░рд┐рдПрдХреЛ рдЫ (рд╣рд╛рдореАрд╕рдБрдЧ SMS рдкрдард╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рд╕рдБрдЧ рд╕рдВрд▓рдЧреНрди рд▓рд┐рдкрд┐рд╣рд░реВ рдЫрдиреН)ред
  • рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рд▓реЗ рддрдкрд╛рдИрд▓рд╛рдИ рдмрддрд╛рдЙрдБрдЫ рдХрд┐ рдХреБрди рджрд╛рд╕рд╣рд░реВрдорд╛ GTID рддреНрд░реБрдЯрд┐ рдЫред

рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдЗрдиреНрдЯрд░рдлреЗрд╕:

MySQL рдХреЛ рд▓рд╛рдЧрд┐ рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░: рдХрд┐рди рддрдкрд╛рдИрдВ рдмрд┐рдирд╛ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди
GTID рддреНрд░реБрдЯрд┐ рдХреЗ рд╣реЛ?

рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рдо рдЧрд░реНрди рджреБрдИрд╡рдЯрд╛ рдореБрдЦреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдЫрдиреН:

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

рдпрд╛рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдЙрддреНрдкрд╛рджрди рджрд╛рд╕рдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХреБрд░рд╛ рдорд╛рд▓рд┐рдХрд╕рдБрдЧ рдпрд╕рдХреЛ рд╕реНрдерд┐рд░рддрд╛ рд╣реЛ! рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рддрдкрд╛рдЗрдБрдХреЛ рдорд╛рд▓рд┐рдХ рд░ рджрд╛рд╕ рджреБрдмреИрдорд╛ рдЧреНрд▓реЛрдмрд▓ рд▓реЗрдирджреЗрди ID (GTID) рд╕рдХреНрд╖рдо рдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдпреА рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛ рдбрд╛рдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рди рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХреЛ рдЫ рдХрд┐ рдЫреИрди рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди gtid_subset рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рддрдкрд╛рдИрдВ рдпрд╕ рдмрд╛рд░реЗ рдердк рдкрдвреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдпрд╣рд╛рдБ.

рдпрд╕рд░реА, рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ GTID рддреНрд░реБрдЯрд┐ рдорд╛рд░реНрдлрдд рджреЗрдЦрд╛рдЙрдБрджрдЫ рдХрд┐ рддреНрдпрд╣рд╛рдБ рджрд╛рд╕рдорд╛ рд▓реЗрдирджреЗрдирд╣рд░реВ рдЫрдиреН рдЬреБрди рдорд╛рд▓рд┐рдХрдорд╛ рдЫреИрдирдиреНред рдпреЛ рдХрд┐рди рднрдЗрд░рд╣реЗрдХреЛ рдЫ?

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

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

рд╕реНрдкрд╖реНрдЯ рдкреНрд░рд╢реНрди рд╣реЛ: "рдЕрд░рдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдиреБрдкрд░реНрдЫ?" рдЙрд╕рд▓реЗ рд╣рд╛рд▓рдХреЛ рджрд╛рд╕рд╣рд░реВрдмрд╛рдЯ рдирдпрд╛рдБ рдорд╛рд▓рд┐рдХ рдЪрдпрди рдЧрд░реНрдиреБрдкрд░реНрдЫ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╕рдмреИ рджрд╛рд╕рд╣рд░реВрд▓рд╛рдИ рдпрд╕рдорд╛ рдкреБрди: рдЬрдбрд╛рди рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ GTID рдЖрд╡рд╢реНрдпрдХ рдЫ; рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ binlog_name рд░ binlog_pos рд╕рдБрдЧ рдкреБрд░рд╛рдиреЛ рдореЗрдХрд╛рдирд┐рдЬрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рд╣рд╛рд▓рдХреЛ рдорд╛рд▓рд┐рдХрдмрд╛рдЯ рдирдпрд╛рдБрдорд╛ рджрд╛рд╕рд▓рд╛рдИ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрджреИред рдмрд╕ рдЕрд╕рдореНрднрд╡ рдЫ!) рд╣рд╛рдореАрд╕рдБрдЧ рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рд╣реБрдиреБ рдЕрдШрд┐, рдореИрд▓реЗ рдПрдХ рдкрдЯрдХ рдпреЛ рд╕рдмреИ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдЧрд░реНрдиреБрдкрд░реНрдереНрдпреЛред рдкреБрд░рд╛рдиреЛ рдорд╛рд▓рд┐рдХ рдПрдЙрдЯрд╛ рдмрдЧреНрдЧреА Adaptec рдирд┐рдпрдиреНрддреНрд░рдХрдХреЛ рдХрд╛рд░рдг рдЭреБрдгреНрдбрд┐рдПрдХреЛ рдерд┐рдпреЛ; рдпрд╕рдорд╛ рд▓рдЧрднрдЧ 10 рджрд╛рд╕рд╣рд░реВ рдерд┐рдПред рдореИрд▓реЗ рдорд╛рд▓рд┐рдХрдмрд╛рдЯ рдПрдХ рджрд╛рд╕рдорд╛ VIP рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрди рд░ рдЕрдиреНрдп рд╕рдмреИ рджрд╛рд╕рд╣рд░реВрд▓рд╛рдИ рдкреБрди: рдЬрдбрд╛рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛред рдореИрд▓реЗ рдХрддрд┐рд╡рдЯрд╛ рдХрдиреНрд╕реЛрд▓ рдЦреЛрд▓реНрдиреБ рдкрд░реНрдпреЛ, рдХрддрд┐рд╡рдЯрд╛ рдХрдорд╛рдгреНрдбрд╣рд░реВ рдПрдХреИрд╕рд╛рде рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реЗрдВ... рдореИрд▓реЗ рдмрд┐рд╣рд╛рди рей рдмрдЬреЗрд╕рдореНрдо рдкрд░реНрдЦрдиреБрдкрд░реНтАНрдпреЛ, рджреБрдИ рдмрд╛рд╣реЗрдХ рд╕рдмреИ рджрд╛рд╕рд╣рд░реВрдмрд╛рдЯ рд▓реЛрдб рд╣рдЯрд╛рдЙрдиреБрд╣реЛрд╕реН, рджреБрдИ рдорд╛рд▓рд┐рдХрдмрд╛рдЯ рдкрд╣рд┐рд▓реЛ рдореЗрд╕рд┐рди рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН, рддреБрд░реБрдиреНрддреИ рджреЛрд╕реНрд░реЛ рдореЗрд╕рд┐рди рдЬреЛрдбреНрдиреБрд╣реЛрд╕реНред рдпрд╕рдорд╛, рддреНрдпрд╕реИрд▓реЗ рдЕрдиреНрдп рд╕рдмреИ рджрд╛рд╕рд╣рд░реВрд▓рд╛рдИ рдирдпрд╛рдБ рдорд╛рд▓рд┐рдХрд╕рдБрдЧ рдЬреЛрдбреНрдиреБрд╣реЛрд╕реН рд░ рднрд╛рд░ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рд╕рдордЧреНрд░рдорд╛, рднрдпрд╛рдирдХ ...

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

MySQL рдХреЛ рд▓рд╛рдЧрд┐ рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░: рдХрд┐рди рддрдкрд╛рдИрдВ рдмрд┐рдирд╛ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди
рдЪрд┐рддреНрд░рд▓реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдмреАрдЪрдорд╛ рджреЗрдЦрд╛рдЙрдБрдЫред рдпрд╕ рдмрд┐рдиреНрджреБ рд╕рдореНрдо рдкрд╣рд┐рд▓реЗ рдиреИ рдХреЗ рдЧрд░рд┐рд╕рдХрд┐рдПрдХреЛ рдЫ? рд╣рд╛рдореАрд▓реЗ рднрдиреНрдпреМрдВ рдХрд┐ рд╣рд╛рдореА рдХреЗрд╣реА рджрд╛рд╕рд▓рд╛рдИ рдирдпрд╛рдБ рдорд╛рд▓рд┐рдХ рдмрдирд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреМрдВ, рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рд▓реЗ рдирдпрд╛рдБ рдорд╛рд▓рд┐рдХрд▓реЗ рдЯреНрд░рд╛рдиреНрдЬрд┐рдЯ рдореЗрд╕рд┐рдирдХреЛ рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрджреИ рдЕрдиреНрдп рд╕рдмреИ рджрд╛рд╕рд╣рд░реВрд▓рд╛рдИ рдкреБрди: рдЬрдбрд╛рди рдЧрд░реНрди рдерд╛рд▓реНрдпреЛред рдпрд╕ рдпреЛрдЬрдирд╛рдХреЛ рд╕рд╛рде, рдХреБрдиреИ рддреНрд░реБрдЯрд┐рд╣рд░реВ рджреЗрдЦрд╛ рдкрд░реНрджреИрди, рд╕рдмреИ рджрд╛рд╕рд╣рд░реВрд▓реЗ рдХрд╛рдо рдЧрд░реНрдЫрдиреН, рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рд▓реЗ рдкреБрд░рд╛рдиреЛ рдорд╛рд▓рд┐рдХрдмрд╛рдЯ VIP рд╣рдЯрд╛рдЙрдБрджрдЫ, рдпрд╕рд▓рд╛рдИ рдирдпрд╛рдБрдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрджрдЫ, read_only=0 рдмрдирд╛рдЙрдБрджрдЫ рд░ рдкреБрд░рд╛рдиреЛ рдорд╛рд▓рд┐рдХрдХреЛ рдмрд╛рд░реЗрдорд╛ рдмрд┐рд░реНрд╕рдиреНрдЫред рд╕рдмреИ! рд╣рд╛рдореНрд░реЛ рд╕реЗрд╡рд╛рдХреЛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо VIP рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рд╕рдордп рд╣реЛ, рдЬреБрди 2-3 рд╕реЗрдХреЗрдиреНрдб рд╣реЛред

рдЖрдЬрдХреЛ рд▓рд╛рдЧрд┐ рдпрддрд┐ рд╣реЛ, рд╕рдмреИрд▓рд╛рдИ рдзрдиреНрдпрд╡рд╛рджред рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЪрд╛рдБрдбреИ рджреЛрд╕реНрд░реЛ рд▓реЗрдЦ рд╣реБрдиреЗрдЫред рдкреНрд░рд╕рд┐рджреНрдз рд╕реЛрднрд┐рдпрдд рдЪрд▓рдЪрд┐рддреНрд░ "рдЧреНрдпрд╛рд░реЗрдЬ" рдорд╛ рдПрдХ рдкрд╛рддреНрд░рд▓реЗ рднрдиреЗ, "рдо рдЙрд╣рд╛рдБрд╕рдБрдЧ рдЬрд╛рдиреНрджрд┐рди!" рддреНрдпрд╕реЛрднрдП, рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░, рдо рддрдкрд╛рдИрд╕рдБрдЧ рдЯреЛрдкрдирдорд╛ рдЬрд╛рдиреНрдЫреБ!

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди