ืชื–ืžื•ืจืช ื•-VIP ื›ืคืชืจื•ืŸ HA ืœืืฉื›ื•ืœ MySQL

ื‘ืกื™ื˜ื™ืžื•ื‘ื™ืœ ืื ื• ืžืฉืชืžืฉื™ื ื‘ืžืกื“ ื ืชื•ื ื™ื MySQL ื›ืื—ืกื•ืŸ ื”ื ืชื•ื ื™ื ื”ืงื‘ื•ืข ื”ืขื™ืงืจื™ ืฉืœื ื•. ื™ืฉ ืœื ื• ืžืกืคืจ ืืฉื›ื•ืœื•ืช ืžืกื“ื™ ื ืชื•ื ื™ื ืœืฉื™ืจื•ืชื™ื ื•ืœืžื˜ืจื•ืช ืฉื•ื ื•ืช.

ื”ื–ืžื™ื ื•ืช ื”ืžืชืžื“ืช ืฉืœ ื”ืžืืกื˜ืจ ื”ื™ื ืื™ื ื“ื™ืงื˜ื•ืจ ืงืจื™ื˜ื™ ืœื‘ื™ืฆื•ืขื™ื ืฉืœ ื”ืžืขืจื›ืช ื›ื•ืœื” ื•ื—ืœืงื™ื” ื”ืื™ืฉื™ื™ื. ืฉื—ื–ื•ืจ ืžืงื‘ืฅ ืื•ื˜ื•ืžื˜ื™ ื‘ืžืงืจื” ืฉืœ ื›ืฉืœ ืžืืกื˜ืจ ืžืคื—ื™ืช ืžืื•ื“ ืืช ื–ืžืŸ ื”ืชื’ื•ื‘ื” ืœืื™ืจื•ืขื™ื ื•ืืช ื–ืžืŸ ื”ืฉื‘ืชืช ื”ืžืขืจื›ืช. ื‘ืžืืžืจ ื–ื”, ืืกืชื›ืœ ืขืœ ืขื™ืฆื•ื‘ ื–ืžื™ื ื•ืช ื’ื‘ื•ื”ื” (HA) ืขื‘ื•ืจ ืืฉื›ื•ืœ MySQL ื”ืžื‘ื•ืกืก ืขืœ ืชื–ืžื•ืจืช MySQL ื•ื›ืชื•ื‘ื•ืช IP ื•ื™ืจื˜ื•ืืœื™ื•ืช (VIP).

ืชื–ืžื•ืจืช ื•-VIP ื›ืคืชืจื•ืŸ HA ืœืืฉื›ื•ืœ MySQL

ืคืชืจื•ืŸ HA ืžื‘ื•ืกืก ืขืœ VIP

ืจืืฉื™ืช, ืืกืคืจ ืœืš ื‘ืงืฆืจื” ืžื”ื™ ืžืขืจื›ืช ืื—ืกื•ืŸ ื”ื ืชื•ื ื™ื ืฉืœื ื•.

ืื ื• ืžืฉืชืžืฉื™ื ื‘ืกื›ื™ืžืช ืฉื›ืคื•ืœ ืงืœืืกื™ืช ืขื ืžืืกื˜ืจ ืื—ื“ ื ื’ื™ืฉ ืœื›ืชื™ื‘ื” ื•ืžืกืคืจ ื”ืขืชืงื™ื ืœืงืจื™ืื” ื‘ืœื‘ื“. ืืฉื›ื•ืœ ื™ื›ื•ืœ ืœื”ื›ื™ืœ ืžืืกื˜ืจ ื‘ื™ื ื™ื™ื - ืฆื•ืžืช ืฉื”ื•ื ื’ื ื”ืขืชืง ื•ื’ื ืžืืกื˜ืจ ืขื‘ื•ืจ ืื—ืจื™ื. ืœืงื•ื—ื•ืช ื ื™ื’ืฉื™ื ืœื”ืขืชืงื™ื ื“ืจืš HAProxy, ื”ืžืืคืฉืจืช ืคื™ื–ื•ืจ ืขื•ืžืก ืฉื•ื•ื” ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืงืœ. ื”ืฉื™ืžื•ืฉ ื‘- HAProxy ื ื•ื‘ืข ืžืกื™ื‘ื•ืช ื”ื™ืกื˜ื•ืจื™ื•ืช, ื•ื›ืจื’ืข ืื ื• ื ืžืฆืื™ื ื‘ืชื”ืœื™ืš ืฉืœ ื”ื’ื™ืจื” ืœ- ProxySQL.

ืฉื›ืคื•ืœ ืžื‘ื•ืฆืข ื‘ืžืฆื‘ ื—ืฆื™ ืกื™ื ื›ืจื•ื ื™ ืžื‘ื•ืกืก ืขืœ GTID. ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉืœืคื—ื•ืช ืขื•ืชืง ืื—ื“ ื—ื™ื™ื‘ ืœืจืฉื•ื ืขืกืงื” ืœืคื ื™ ืฉื”ื™ื ืชื™ื—ืฉื‘ ืžื•ืฆืœื—ืช. ืžืฆื‘ ืฉื›ืคื•ืœ ื–ื” ืžืกืคืง ืื™ื–ื•ืŸ ืื•ืคื˜ื™ืžืœื™ ื‘ื™ืŸ ื‘ื™ืฆื•ืขื™ื ื•ื‘ื˜ื™ื—ื•ืช ื ืชื•ื ื™ื ื‘ืžืงืจื” ืฉืœ ื›ืฉืœ ื‘ืฆื•ืžืช ืžืืกื˜ืจ. ื‘ืขืฆื ื›ืœ ื”ืฉื™ื ื•ื™ื™ื ืžื•ืขื‘ืจื™ื ืžื”ืžืืกื˜ืจ ืœืขื•ืชืงื™ื ื”ืขืชืงื™ื ื‘ืืžืฆืขื•ืช Row Based Replication (RBR), ืืš ื™ื™ืชื›ืŸ ืฉื™ืฉ ืฆืžืชื™ื ืžืกื•ื™ืžื™ื mixed binlog format.

ื”ืžืชื–ืžืจ ืžืขื“ื›ืŸ ืžืขืช ืœืขืช ืืช ืžืฆื‘ ื˜ื•ืคื•ืœื•ื’ื™ื™ืช ื”ืืฉื›ื•ืœื•ืช, ืžื ืชื— ืืช ื”ืžื™ื“ืข ื”ืžืชืงื‘ืœ, ื•ืื ืžืชืขื•ืจืจื•ืช ื‘ืขื™ื•ืช, ื”ื•ื ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ื”ืœื™ืš ืฉื—ื–ื•ืจ ืื•ื˜ื•ืžื˜ื™. ื”ื™ื–ื ืื—ืจืื™ ืขืœ ื”ื”ืœื™ืš ืขืฆืžื•, ืฉื›ืŸ ื ื™ืชืŸ ืœื™ื™ืฉื ืื•ืชื• ื‘ื“ืจื›ื™ื ืฉื•ื ื•ืช: ืขืœ ื‘ืกื™ืก VIP, DNS, ื‘ืืžืฆืขื•ืช ืฉื™ืจื•ืชื™ ื’ื™ืœื•ื™ ืฉื™ืจื•ืช ืื• ืžื ื’ื ื•ื ื™ื ื‘ื›ืชื‘ ืขืฆืžื™.

ื“ืจืš ืคืฉื•ื˜ื” ืื—ืช ืœืฉื—ื–ืจ ืžืืกื˜ืจ ืื ื”ื•ื ื ื›ืฉืœ ื”ื™ื ืœื”ืฉืชืžืฉ ื‘ื›ืชื•ื‘ื•ืช VIP ืฆืคื•ืช.

ืžื” ืฉืืชื” ืฆืจื™ืš ืœื“ืขืช ืขืœ ื”ืคืชืจื•ืŸ ื”ื–ื” ืœืคื ื™ ืฉืžืชืงื“ืžื™ื ืงื“ื™ืžื”:

  • VIP ื”ื™ื ื›ืชื•ื‘ืช IP ืฉืื™ื ื” ืžืฉื•ื™ื›ืช ืœืžืžืฉืง ืจืฉืช ืคื™ื–ื™ ืกืคืฆื™ืคื™. ืื ืฆื•ืžืช ื ื›ืฉืœ ืื• ื‘ืžื”ืœืš ืชื—ื–ื•ืงื” ืžืชื•ื–ืžื ืช, ื ื•ื›ืœ ืœื”ืขื‘ื™ืจ ืืช ื”-VIP ืœืžืฉืื‘ ืื—ืจ ืขื ื–ืžืŸ ื”ืฉื‘ืชื” ืžื™ื ื™ืžืœื™.
  • ืฉื—ืจื•ืจ ื•ื”ื ืคืงืช ื›ืชื•ื‘ืช IP ื•ื™ืจื˜ื•ืืœื™ืช ื”ื™ื ืคืขื•ืœื” ื–ื•ืœื” ื•ืžื”ื™ืจื”.
  • ื›ื“ื™ ืœืขื‘ื•ื“ ืขื VIP, ืืชื” ืฆืจื™ืš ื’ื™ืฉื” ืœืฉืจืช ื‘ืืžืฆืขื•ืช SSH, ืื• ืฉื™ืžื•ืฉ ื‘ื›ืœื™ ืฉื™ืจื•ืช ืžื™ื•ื—ื“ื™ื, ืœืžืฉืœ, keepalived.

ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื‘ืขื™ื•ืช ืืคืฉืจื™ื•ืช ืขื ื”ืืฉืฃ ืฉืœื ื• ื•ื ื“ืžื™ื™ืŸ ืื™ืš ืžื ื’ื ื•ืŸ ื”ืฉื—ื–ื•ืจ ื”ืื•ื˜ื•ืžื˜ื™ ืืžื•ืจ ืœืขื‘ื•ื“.

ืงื™ืฉื•ืจื™ื•ืช ื”ืจืฉืช ืœืžืืกื˜ืจ ื ืขืœืžื”, ืื• ืฉื ื•ืฆืจื” ื‘ืขื™ื” ื‘ืจืžืช ื”ื—ื•ืžืจื”, ื•ื”ืฉืจืช ืื™ื ื• ื–ืžื™ืŸ

  1. ื”ืžืชื–ืžืจ ืžืขื“ื›ืŸ ืืช ื˜ื•ืคื•ืœื•ื’ื™ื™ืช ื”ืืฉื›ื•ืœื•ืช, ื›ืœ ื”ืขืชืง ืžื“ื•ื•ื— ืฉื”ืžืืกื˜ืจ ืื™ื ื• ื–ืžื™ืŸ. ื”ืžืชื–ืžืจ ืžืชื—ื™ืœ ื‘ืชื”ืœื™ืš ื‘ื—ื™ืจืช ื”ืขืชืง ื”ืžืชืื™ื ืœืชืคืงื™ื“ ื”ืžืืกื˜ืจ ื”ื—ื“ืฉ ื•ืžืชื—ื™ืœ ื”ืชืื•ืฉืฉื•ืช.
  2. ืื ื—ื ื• ืžื ืกื™ื ืœื”ืกื™ืจ ืืช ื”-VIP ืžื”ืžืืกื˜ืจ ื”ื™ืฉืŸ - ืœืœื ื”ืฆืœื—ื”.
  3. ื”ืขืชืง ืขื•ื‘ืจ ืœืชืคืงื™ื“ ื”ืžืืกื˜ืจ. ื”ื˜ื•ืคื•ืœื•ื’ื™ื” ื ื‘ื ื™ืช ืžื—ื“ืฉ.
  4. ื”ื•ืกืคืช ืžืžืฉืง ืจืฉืช ื—ื“ืฉ ืขื VIP. ืžื›ื™ื•ื•ืŸ ืฉืœื ื ื™ืชืŸ ื”ื™ื” ืœื”ืกื™ืจ ืืช ื”-VIP, ืื ื• ืžืชื—ื™ืœื™ื ืœืฉืœื•ื— ื‘ืงืฉื” ืžืขืช ืœืขืช ื‘ืจืงืข ARP ืœืœื ืชืฉืœื•ื. ืกื•ื’ ื–ื” ืฉืœ ื‘ืงืฉื”/ืชืฉื•ื‘ื” ืžืืคืฉืจ ืœืš ืœืขื“ื›ืŸ ืืช ื˜ื‘ืœืช ืžื™ืคื•ื™ ื›ืชื•ื‘ื•ืช ื”-IP ื•ื”-MAC ื‘ืžืชื’ื™ื ื”ืžื—ื•ื‘ืจื™ื, ื•ื‘ื›ืš ืœื”ื•ื“ื™ืข โ€‹โ€‹ืœืš ืฉื”-VIP ืฉืœื ื• ืขื‘ืจ. ื–ื” ืžืžื–ืขืจ ืืช ื”ืกื‘ื™ืจื•ืช split brain ื›ืืฉืจ ืžื—ื–ื™ืจื™ื ืืช ื”ืžืืกื˜ืจ ื”ื™ืฉืŸ.
  5. ื›ืœ ื”ื—ื™ื‘ื•ืจื™ื ื”ื—ื“ืฉื™ื ืžื ื•ืชื‘ื™ื ืžื™ื“ ืœืžืืกื˜ืจ ื”ื—ื“ืฉ. ื—ื™ื‘ื•ืจื™ื ื™ืฉื ื™ื ื ื›ืฉืœื™ื ื•ืงืจื™ืื•ืช ื—ื•ื–ืจื•ืช ืœืžืกื“ ื”ื ืชื•ื ื™ื ืžืชื‘ืฆืขื•ืช ื‘ืจืžืช ื”ืืคืœื™ืงืฆื™ื”.

ื”ืฉืจืช ืคื•ืขืœ ื‘ืžืฆื‘ ืจื’ื™ืœ, ืื™ืจืขื” ื›ืฉืœ ื‘ืจืžืช DBMS

ื”ืืœื’ื•ืจื™ืชื ื“ื•ืžื” ืœืžืงืจื” ื”ืงื•ื“ื: ืขื“ื›ื•ืŸ ื”ื˜ื•ืคื•ืœื•ื’ื™ื” ื•ื”ืชื—ืœืช ืชื”ืœื™ืš ื”ืฉื—ื–ื•ืจ. ืžื›ื™ื•ื•ืŸ ืฉื”ืฉืจืช ื–ืžื™ืŸ, ืื ื• ืžืฉื—ืจืจื™ื ื‘ื”ืฆืœื—ื” ืืช ื”-VIP ื‘ืžืืกื˜ืจ ื”ื™ืฉืŸ, ืžืขื‘ื™ืจื™ื ืื•ืชื• ืœื—ื“ืฉ ื•ืฉื•ืœื—ื™ื ืžืกืคืจ ื‘ืงืฉื•ืช ARP. ื”ื—ื–ืจื” ืืคืฉืจื™ืช ืฉืœ ื”ืžืืกื˜ืจ ื”ื™ืฉืŸ ืœื ืืžื•ืจื” ืœื”ืฉืคื™ืข ืขืœ ื”ืืฉื›ื•ืœ ืฉื ื‘ื ื” ืžื—ื“ืฉ ื•ืขืœ ืคืขื•ืœืช ื”ืืคืœื™ืงืฆื™ื”.

ื‘ืขื™ื•ืช ืื—ืจื•ืช

ื›ืฉืœ ืฉืœ ื”ืขืชืงื™ื ืื• ืžืืกื˜ืจื™ื ื‘ื™ื ื™ื™ื ืœื ืžื•ื‘ื™ืœ ืœืคืขื•ืœื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช ื•ื“ื•ืจืฉ ื”ืชืขืจื‘ื•ืช ื™ื“ื ื™ืช.

ืžืžืฉืง ืจืฉืช ื•ื™ืจื˜ื•ืืœื™ ืžืชื•ื•ืกืฃ ืชืžื™ื“ ื‘ืื•ืคืŸ ื–ืžื ื™, ื›ืœื•ืžืจ, ืœืื—ืจ ืืชื—ื•ืœ ืžื—ื“ืฉ ืฉืœ ื”ืฉืจืช, ื”-VIP ืœื ืžื•ืงืฆื” ืื•ื˜ื•ืžื˜ื™ืช. ื›ืœ ืžื•ืคืข ืžืกื“ ื ืชื•ื ื™ื ืžืชื—ื™ืœ ื‘ืžืฆื‘ ืงืจื™ืื” ื‘ืœื‘ื“ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื”ืžืชื–ืžืจ ืžื—ืœื™ืฃ ืื•ื˜ื•ืžื˜ื™ืช ืืช ื”ืžืืกื˜ืจ ื”ื—ื“ืฉ ืœื›ืชื•ื‘ ื•ืžื ืกื” ืœื”ืชืงื™ืŸ read only ืขืœ ื”ืžืืกื˜ืจ ื”ื–ืงืŸ. ืคืขื•ืœื•ืช ืืœื• ืžื›ื•ื•ื ื•ืช ืœืฆืžืฆื ืืช ื”ืกื‘ื™ืจื•ืช split brain.

ื‘ืขื™ื•ืช ืขืœื•ืœื•ืช ืœื”ืชืขื•ืจืจ ื‘ืžื”ืœืš ืชื”ืœื™ืš ื”ืฉื—ื–ื•ืจ, ืฉืขืœื™ื• ื™ืฉ ืœื”ื•ื“ื™ืข โ€‹โ€‹ื’ื ื“ืจืš ืžืžืฉืง ื”ืžืฉืชืžืฉ ืฉืœ ื”ืชื–ืžืจ ื‘ื ื•ืกืฃ ืœื›ืœื™ ื ื™ื˜ื•ืจ ืกื˜ื ื“ืจื˜ื™ื™ื. ื”ืจื—ื‘ื ื• ืืช REST API ืขืœ ื™ื“ื™ ื”ื•ืกืคืช ืชื›ื•ื ื” ื–ื• (PR ื›ืจื’ืข ื‘ื‘ื“ื™ืงื”).

ื”ืชืจืฉื™ื ื”ื›ืœืœื™ ืฉืœ ืคืชืจื•ืŸ HA ืžื•ืฆื’ ืœื”ืœืŸ.

ืชื–ืžื•ืจืช ื•-VIP ื›ืคืชืจื•ืŸ HA ืœืืฉื›ื•ืœ MySQL

ื‘ื—ื™ืจืช ืžืืกื˜ืจ ื—ื“ืฉ

ื”ืžืชื–ืžืจ ืžืกืคื™ืง ื—ื›ื ื•ืžื ืกื” ืœื‘ื—ื•ืจ ื”ืขืชืง ื”ืžืชืื™ื ื‘ื™ื•ืชืจ ื›ืžืืกื˜ืจ ื—ื“ืฉ ืœืคื™ ื”ืงืจื™ื˜ืจื™ื•ื ื™ื ื”ื‘ืื™ื:

  • ื”ืขืชืง ืžืฉืชืจืš ืžืื—ื•ืจื™ ื”ืžืืกื˜ืจ;
  • ื’ืจืกืช MySQL ืฉืœ โ€‹โ€‹ืžืืกื˜ืจ ื•ื”ืขืชืง;
  • ืกื•ื’ ืฉื›ืคื•ืœ (RBR, SBR ืื• ืžืขื•ืจื‘);
  • ืžื™ืงื•ื ื‘ืžืจื›ื–ื™ ื ืชื•ื ื™ื ื–ื”ื™ื ืื• ืฉื•ื ื™ื;
  • ื”ื–ืžื™ื ื•ืช errant GTID - ืขืกืงืื•ืช ืฉื‘ื•ืฆืขื• ืขืœ ื”ืขืชืง ื•ืื™ื ืŸ ืขืœ ื”ืžืืกื˜ืจ;
  • ื’ื ื›ืœืœื™ ื‘ื—ื™ืจื” ืžื•ืชืืžื™ื ืื™ืฉื™ืช ื ืœืงื—ื™ื ื‘ื—ืฉื‘ื•ืŸ.

ืœื ื›ืœ ืจืžื– ื”ื•ื ืžื•ืขืžื“ ืื™ื“ื™ืืœื™ ืœืžืืกื˜ืจ. ืœื“ื•ื’ืžื”, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืฉื›ืคื•ืœ ืœื’ื™ื‘ื•ื™ ื ืชื•ื ื™ื, ืื• ืฉืœืฉืจืช ื™ืฉ ืชืฆื•ืจืช ื—ื•ืžืจื” ื—ืœืฉื” ื™ื•ืชืจ. ืชื–ืžื•ืจืช ืชื•ืžืš ื›ืœืœื™ื ื™ื“ื ื™ื™ื ืฉื‘ืืžืฆืขื•ืชื ืืชื” ื™ื›ื•ืœ ืœื”ืชืื™ื ืื™ืฉื™ืช ืืช ื”ืขื“ืคื•ืช ื‘ื—ื™ืจืช ื”ืžื•ืขืžื“ื™ื ืฉืœืš ืžื”ืžื•ืขื“ืฃ ื‘ื™ื•ืชืจ ืœื”ืชืขืœื.

ื–ืžืŸ ืชื’ื•ื‘ื” ื•ื–ืžืŸ ื”ื—ืœืžื”

ื‘ืžืงืจื” ืฉืœ ืชืงืจื™ืช, ื—ืฉื•ื‘ ืœืžื–ืขืจ ืืช ื–ืžืŸ ื”ื”ืฉื‘ืชื” ืฉืœ ื”ืžืขืจื›ืช, ืื– ื‘ื•ืื• ื ื™ืงื— ื‘ื—ืฉื‘ื•ืŸ ืืช ื”ืคืจืžื˜ืจื™ื ืฉืœ MySQL ื”ืžืฉืคื™ืขื™ื ืขืœ ื”ื™ืฆื™ืจื” ื•ื”ืขื“ื›ื•ืŸ ืฉืœ ื˜ื•ืคื•ืœื•ื’ื™ื™ืช ื”ืืฉื›ื•ืœื•ืช ืขืœ ื™ื“ื™ ื”ืžืชื–ืžืจ:

  • slave_net_timeout - ืžืกืคืจ ื”ืฉื ื™ื•ืช ืฉื‘ืžื”ืœื›ืŸ ื”ืขืชืง ืžืžืชื™ืŸ ืœื ืชื•ื ื™ื ื—ื“ืฉื™ื ืื• ืื•ืช ืคืขื™ืžื•ืช ืœื‘ ืฉื™ื’ื™ืขื• ืžื”ืžืืกื˜ืจ ืœืคื ื™ ืฉื”ื—ื™ื‘ื•ืจ ื™ื–ื•ื”ื” ื›ืื‘ื“ ื•ืžืชื—ื‘ืจ ืžื—ื“ืฉ. ื›ื›ืœ ืฉื”ืขืจืš ื ืžื•ืš ื™ื•ืชืจ, ื›ืš ื”ื”ืขืชืง ื™ื›ื•ืœ ืœืงื‘ื•ืข ืžื”ืจ ื™ื•ืชืจ ืฉื”ืชืงืฉื•ืจืช ืขื ื”ืžืืกื˜ืจ ื ืฉื‘ืจืช. ื”ื’ื“ืจื ื• ืืช ื”ืขืจืš ื”ื–ื” ืœ-5 ืฉื ื™ื•ืช.
  • MASTER_CONNECT_RETRY - ืžืกืคืจ ืฉื ื™ื•ืช ื‘ื™ืŸ ื ื™ืกื™ื•ื ื•ืช ื—ื™ื‘ื•ืจ ืžื—ื“ืฉ. ื‘ืžืงืจื” ืฉืœ ื‘ืขื™ื•ืช ืจืฉืช, ืขืจืš ื ืžื•ืš ืœืคืจืžื˜ืจ ื–ื” ื™ืืคืฉืจ ื—ื™ื‘ื•ืจ ืžื”ื™ืจ ืžื—ื“ืฉ ื•ื™ืžื ืข ืืช ืชื—ื™ืœืช ืชื”ืœื™ืš ืฉื—ื–ื•ืจ ื”ืืฉื›ื•ืœื•ืช. ื”ืขืจืš ื”ืžื•ืžืœืฅ ื”ื•ื ืฉื ื™ื™ื” ืื—ืช.
  • MASTER_RETRY_COUNT - ื”ืžืกืคืจ ื”ืžืจื‘ื™ ืฉืœ ื ื™ืกื™ื•ื ื•ืช ื—ื™ื‘ื•ืจ ืžื—ื“ืฉ.
  • MASTER_HEARTBEAT_PERIOD - ืžืจื•ื•ื— ื‘ืฉื ื™ื•ืช ืฉืœืื—ืจื™ื• ื”ืžืืกื˜ืจ ืฉื•ืœื— ืื•ืช ื“ื•ืคืง. ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ื™ื ืžื—ืฆื™ืช ืžื”ืขืจืš slave_net_timeout.

ืืคืฉืจื•ื™ื•ืช ืชื–ืžื•ืจืช:

  • DelayMasterPromotionIfSQLThreadNotUpToDate - ืื ืฉื•ื•ื” true, ืื– ืชืคืงื™ื“ ื”ืžืืกื˜ืจ ืœื ื™ื•ื—ืœ ืขืœ ื”ืขืชืง ื”ืžื•ืขืžื“ ืขื“ ืฉื”ืฉืจืฉื•ืจ SQL ืฉืœ โ€‹โ€‹ื”ืขืชืง ื™ืฉืœื™ื ืืช ื›ืœ ื”ืขืกืงืื•ืช ืฉืœื ื™ื•ืฉืžื• ืžื™ื•ืžืŸ ื”ืžืžืกืจ. ืื ื• ืžืฉืชืžืฉื™ื ื‘ืืคืฉืจื•ืช ื–ื• ื›ื“ื™ ืœืžื ื•ืข ืื•ื‘ื“ืŸ ืขืกืงืื•ืช ื›ืืฉืจ ื›ืœ ื”ื”ืขืชืงื™ื ื”ืžื•ืขืžื“ื™ื ืžืคื’ืจื™ื.
  • InstancePollSeconds - ืชื“ื™ืจื•ืช ื‘ื ื™ื™ื” ื•ืขื“ื›ื•ืŸ ืฉืœ ื”ื˜ื•ืคื•ืœื•ื’ื™ื”.
  • RecoveryPollSeconds - ืชื“ื™ืจื•ืช ื ื™ืชื•ื— ื˜ื•ืคื•ืœื•ื’ื™ื”. ืื ืžื–ื•ื”ื” ื‘ืขื™ื”, ืฉื—ื–ื•ืจ ื˜ื•ืคื•ืœื•ื’ื™ื” ืžืชื—ื™ืœ. ื–ึถื” ืงื‘ื•ืข, ืฉื•ื•ื” ืœืฉื ื™ื™ื” ืื—ืช.

ื›ืœ ืฆื•ืžืช ืืฉื›ื•ืœ ื ืฉืืœ ืขืœ ื™ื“ื™ ื”ืžืชื–ืžืจ ืคืขื ืื—ืช InstancePollSeconds ืฉื ื™ื•ืช ื›ืืฉืจ ืžืชื’ืœื” ื‘ืขื™ื”, ืžืฆื‘ ื”ืืฉื›ื•ืœ ื ืืœืฅ ืžึฐืขื•ึผื“ื›ึผึธืŸ, ื•ืœืื—ืจ ืžื›ืŸ ืžืชืงื‘ืœืช ื”ื”ื—ืœื˜ื” ื”ืกื•ืคื™ืช ืœื‘ืฆืข ืฉื—ื–ื•ืจ. ืขืœ ื™ื“ื™ ื ื™ืกื•ื™ ืขื ืคืจืžื˜ืจื™ื ืฉื•ื ื™ื ืฉืœ ืžืกื“ ื ืชื•ื ื™ื ื•ืชื–ืžืจ, ื”ืฆืœื—ื ื• ืœืฆืžืฆื ืืช ื–ืžืŸ ื”ืชื’ื•ื‘ื” ื•ื”ื”ืชืื•ืฉืฉื•ืช ืœ-30 ืฉื ื™ื•ืช.

ืขืžื“ืช ืžื‘ื—ืŸ

ื”ืชื—ืœื ื• ืœื‘ื“ื•ืง ืืช ืขืจื›ืช ื”-HA ืขื ืคื™ืชื•ื— ืฉืœ ืžืงื•ืžื™ ืžื‘ื—ืŸ ื‘ื™ืฆื•ืขื™ื ื•ื”ื˜ืžืขื” ื ื•ืกืคืช ื‘ืกื‘ื™ื‘ื•ืช ื‘ื“ื™ืงื” ื•ื™ื™ืฆื•ืจ. ื”ืขืžื“ื” ื”ืžืงื•ืžื™ืช ืื•ื˜ื•ืžื˜ื™ืช ืœื—ืœื•ื˜ื™ืŸ ืขืœ ื‘ืกื™ืก Docker ื•ืžืืคืฉืจืช ืœื”ืชื ืกื•ืช ื‘ืชืฆื•ืจืช ื”ืชื–ืžืจ ื•ื”ืจืฉืช, ืœื”ื’ื“ื™ืœ ืืช ื”ืืฉื›ื•ืœ ืž-2-3 ืฉืจืชื™ื ืœื›ืžื” ืขืฉืจื•ืช ื•ืœืขืจื•ืš ืชืจื’ื™ืœื™ื ื‘ืกื‘ื™ื‘ื” ื‘ื˜ื•ื—ื”.

ื‘ืžื”ืœืš ื”ืชืจื’ื™ืœื™ื, ืื ื• ื‘ื•ื—ืจื™ื ื‘ืื—ืช ืžืฉื™ื˜ื•ืช ื”ื“ืžื™ื™ืช ื”ื‘ืขื™ื”: ืฆืœื ื‘ืื•ืคืŸ ืžื™ื™ื“ื™ ืืช ื”ืžืืกื˜ืจ ื‘ืืžืฆืขื•ืช kill -9, ืกื™ื™ื ื‘ืขื“ื™ื ื•ืช ืืช ื”ืชื”ืœื™ืš ื•ืขืฆื•ืจ ืืช ื”ืฉืจืช (docker-compose stop), ืœื“ืžื•ืช ื‘ืขื™ื•ืช ืจืฉืช ื‘ืืžืฆืขื•ืช iptables -j REJECT ืื• iptables -j DROP. ืื ื• ืžืฆืคื™ื ืœืชื•ืฆืื•ืช ื”ื‘ืื•ืช:

  • ื”ืžืชื–ืžืจ ื™ื–ื”ื” ื‘ืขื™ื•ืช ืขื ื”ืžืืกื˜ืจ ื•ื™ืขื“ื›ืŸ ืืช ื”ื˜ื•ืคื•ืœื•ื’ื™ื” ืชื•ืš ืœื ื™ื•ืชืจ ืž-10 ืฉื ื™ื•ืช;
  • ื”ืœื™ืš ื”ืฉื—ื–ื•ืจ ื™ืชื—ื™ืœ ืื•ื˜ื•ืžื˜ื™ืช: ืชืฆื•ืจืช ื”ืจืฉืช ืชืฉืชื ื”, ืชืคืงื™ื“ื• ืฉืœ ื”ืžืืกื˜ืจ ื™ืขื‘ื•ืจ ืœืขืชืง, ื”ื˜ื•ืคื•ืœื•ื’ื™ื” ืชื™ื‘ื ื” ืžื—ื“ืฉ;
  • ื”ืžืืกื˜ืจ ื”ื—ื“ืฉ ื™ื”ืคื•ืš ืœื›ืชื™ื‘ื”, ื”ืขืชืงื™ื ื—ื™ื™ื ืœื ื™ืื‘ื“ื• ื‘ืžื”ืœืš ืชื”ืœื™ืš ื”ื‘ื ื™ื™ื” ืžื—ื“ืฉ;
  • ื ืชื•ื ื™ื ื™ืชื—ื™ืœื• ืœื”ื™ื›ืชื‘ ืœืžืืกื˜ืจ ื”ื—ื“ืฉ ื•ืœืฉื•ื›ืคืœ;
  • ื–ืžืŸ ื”ื”ื—ืœืžื” ื”ื›ื•ืœืœ ืœื ื™ืขืœื” ืขืœ 30 ืฉื ื™ื•ืช.

ื›ื™ื“ื•ืข, ื”ืžืขืจื›ืช ืขืฉื•ื™ื” ืœื”ืชื ื”ื’ ืื—ืจืช ื‘ืกื‘ื™ื‘ื•ืช ื‘ื“ื™ืงื” ื•ื™ื™ืฆื•ืจ ืขืงื‘ ืชืฆื•ืจื•ืช ื—ื•ืžืจื” ื•ืจืฉืช ืฉื•ื ื•ืช, ื”ื‘ื“ืœื™ื ื‘ืขื•ืžืก ืกื™ื ื˜ื˜ื™ ื•ืืžื™ืชื™ ื•ื›ื•'. ืœื›ืŸ, ืื ื• ืขื•ืจื›ื™ื ืžื“ื™ ืคืขื ืชืจื’ื™ืœื™ื ื‘ืชื ืื™ื ืืžื™ืชื™ื™ื, ื‘ื•ื“ืงื™ื ื›ื™ืฆื“ ื”ืžืขืจื›ืช ืžืชื ื”ื’ืช ื›ืืฉืจ ื”ืงื™ืฉื•ืจื™ื•ืช ืœืจืฉืช ืื•ื‘ื“ืช ืื• ื—ืœืงื™ื” ื”ื‘ื•ื“ื“ื™ื ืžืชื“ืจื“ืจื™ื. ื‘ืขืชื™ื“, ืื ื• ืจื•ืฆื™ื ืœื‘ื ื•ืช ืชืฉืชื™ืช ื–ื”ื” ืœื—ืœื•ื˜ื™ืŸ ืœืฉืชื™ ื”ืกื‘ื™ื‘ื•ืช ื•ืœื”ืคื•ืš ืืช ื”ื‘ื“ื™ืงื•ืช ืฉืœื” ืœืื•ื˜ื•ืžื˜ื™ื•ืช.

ืžืžืฆืื™ื

ืชืงื™ื ื•ืชื• ืฉืœ ืฆื•ืžืช ืžืขืจื›ืช ื”ืื—ืกื•ืŸ ื”ืจืืฉื™ืช ื”ื™ื ืื—ืช ื”ืžืฉื™ืžื•ืช ื”ืขื™ืงืจื™ื•ืช ืฉืœ ืฆื•ื•ืช SRE ื•ืžื‘ืฆืขื™ื. ื”ื˜ืžืขืช ืคืชืจื•ืŸ ื”ืชื–ืžื•ืจืช ื•ื”-HA ื”ืžื‘ื•ืกืก ืขืœ VIP ืืคืฉืจื” ืœื ื• ืœื”ืฉื™ื’ ืืช ื”ืชื•ืฆืื•ืช ื”ื‘ืื•ืช:

  • ื–ื™ื”ื•ื™ ืืžื™ืŸ ืฉืœ ื‘ืขื™ื•ืช ื‘ื˜ื•ืคื•ืœื•ื’ื™ื” ืฉืœ ืืฉื›ื•ืœ ืžืกื“ ื”ื ืชื•ื ื™ื;
  • ืชื’ื•ื‘ื” ืื•ื˜ื•ืžื˜ื™ืช ื•ืžื”ื™ืจื” ืœืชืงืจื™ื•ืช ื”ืงืฉื•ืจื•ืช ืœืžืืกื˜ืจ, ื”ืคื—ืชืช ื–ืžืŸ ื”ื”ืฉื‘ืชื” ืฉืœ ื”ืžืขืจื›ืช.

ืขื ื–ืืช, ืœืคืชืจื•ืŸ ื™ืฉ ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช:

  • ืงื ื” ื”ืžื™ื“ื” ืฉืœ ืกื›ื™ืžืช ื”-HA ืœืžืกืคืจ ืžืจื›ื–ื™ ื ืชื•ื ื™ื ื™ื“ืจื•ืฉ ืจืฉืช L2 ืื—ืช ื‘ื™ื ื™ื”ื;
  • ืœืคื ื™ ืฉืžืงืฆื™ื VIP ืขืœ ื”ืžืืกื˜ืจ ื”ื—ื“ืฉ, ืขืœื™ื ื• ืœืฉื—ืจืจ ืื•ืชื• ืขืœ ื”ื™ืฉืŸ. ื”ืชื”ืœื™ืš ื”ื•ื ืจืฆื™ืฃ, ืžื” ืฉืžื’ื“ื™ืœ ืืช ื–ืžืŸ ื”ื”ื—ืœืžื”;
  • ืฉื—ืจื•ืจ ื”-VIP ื“ื•ืจืฉ ื’ื™ืฉืช SSH ืœืฉืจืช, ืื• ื›ืœ ืฉื™ื˜ื” ืื—ืจืช ืฉืœ ืงืจื™ืื” ืœืคืจื•ืฆื“ื•ืจื•ืช ืžืจื•ื—ืงื•ืช. ืžื›ื™ื•ื•ืŸ ืฉื”ืฉืจืช ืื• ืžืกื“ ื”ื ืชื•ื ื™ื ื ืชืงืœื™ื ื‘ื‘ืขื™ื•ืช ืฉื’ืจืžื• ืœืชื”ืœื™ืš ื”ืฉื—ื–ื•ืจ, ืื™ื ื ื• ื™ื›ื•ืœื™ื ืœื”ื™ื•ืช ื‘ื˜ื•ื—ื™ื ืฉื”ืกืจืช ื”-VIP ืชืกืชื™ื™ื ื‘ื”ืฆืœื—ื”. ื•ื–ื” ื™ื›ื•ืœ ืœื”ื•ื‘ื™ืœ ืœื”ื•ืคืขื” ืฉืœ ืฉื ื™ ืฉืจืชื™ื ืขื ืื•ืชื” ื›ืชื•ื‘ืช IP ื•ื™ืจื˜ื•ืืœื™ืช ื•ื‘ืขื™ื” split brain.

ืœื”ืชื—ืžืง split brain, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืฉื™ื˜ื” ืกื˜ื•ื ื™ืช ("Shoot The Other Node In The Head"), ื”ืžื‘ื•ื“ื“ ืื• ืžืฉื‘ื™ืช ืœื—ืœื•ื˜ื™ืŸ ืืช ื”ืฆื•ืžืช ื”ื‘ืขื™ื™ืชื™. ื™ืฉื ืŸ ื“ืจื›ื™ื ื ื•ืกืคื•ืช ืœื™ื™ืฉื ื–ืžื™ื ื•ืช ื’ื‘ื•ื”ื” ืฉืœ ืืฉื›ื•ืœื•ืช: ืฉื™ืœื•ื‘ ืฉืœ VIP ื•-DNS, ืฉื™ืจื•ืชื™ ื’ื™ืœื•ื™ ืฉื™ืจื•ืช ื•ืคืจื•ืงืกื™, ืฉื›ืคื•ืœ ืกื™ื ื›ืจื•ื ื™ ื•ืฉื™ื˜ื•ืช ืื—ืจื•ืช ืฉื™ืฉ ืœื”ืŸ ื—ืกืจื•ื ื•ืช ื•ื™ืชืจื•ื ื•ืช ืžืฉืœื”ืŸ.

ื“ื™ื‘ืจืชื™ ืขืœ ื”ื’ื™ืฉื” ืฉืœื ื• ืœื™ืฆื™ืจืช ืืฉื›ื•ืœ MySQL failover. ื–ื” ืงืœ ืœื™ื™ืฉื•ื ื•ืžืกืคืง ืจืžืช ืืžื™ื ื•ืช ืžืงื•ื‘ืœืช ื‘ืชื ืื™ื ื”ื ื•ื›ื—ื™ื™ื. ื›ื›ืœ ืฉื”ืžืขืจื›ืช ื›ื•ืœื” ื‘ื›ืœืœ ื•ื”ืชืฉืชื™ืช ื‘ืคืจื˜ ืชืชืคืชื—, ื’ื™ืฉื” ื–ื• ืœืœื ืกืคืง ืชืชืคืชื—.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”