Citymobil ááœááºáá»áœááºá¯ááºááá¯á·ááẠMySQL áá±áá¬áá±á·á áºááá¯áá»áœááºá¯ááºááá¯á·áá¡áááá¡ááŒá²áááºážáá±áá¬ááá¯ááŸá±á¬ááºááŸá¯á¡ááŒá áºá¡áá¯á¶ážááŒá¯áááºá áá»áœááºá¯ááºááá¯á·ááœáẠáááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áááºááœááºáá»ááºá¡áá»áá¯ážáá»áá¯ážá¡ááœáẠáá±áá¬áá±á·á áºá¡á á¯á¡ááŒá±á¬ááºá¡áá»á¬ážááŸááááºá
áá¬á
áá¬áá¡áááºáááŒááºáááŸáááá¯ááºááŸá¯áááºá
áá
áºáá
áºáá¯áá¯á¶ážááŸáá·áºáááºážáá¡á
áááºá¡ááá¯ááºážáá
áºáá¯áá»ááºážá
á®áá
áœááºážáá±á¬ááºáááºá¡ááœááºá¡áá±ážááŒá®ážáá±á¬ááœáŸááºááŒáá»ááºááŒá
áºáááºá áá¬á
áá¬áá¡á±á¬ááºááŒááºááá·áºááŒá
áºáááºááœáẠá¡ááá¯á¡áá»á±á¬ááºá¡á
á¯ááá¯ááºááŒááºáááºááá°ááŒááºážááẠá¡ááŒá
áºá¡áá»ááºáá¯á¶á·ááŒááºááŸá¯á¡áá»áááºááŸáá·áº á
áá
áºáááºááá·áºáá»áááºááá¯á·ááᯠáá»á¬ážá
áœá¬áá»áŸá±á¬á·áá»áá±ážáááºá á€áá±á¬ááºážáá«ážááœááºá áá»áœááºá¯ááºááẠMySQL á¡á
á¯á¡áá±ážá¡ááœáẠááŒáá·áºáá¬ážáá±á¬áááŸáááá¯ááºááŸá¯ (HA) áá®ááá¯ááºážááᯠááŒáá·áºááŸá¯áá«áááºá
VIP ááá¯á¡ááŒá±áá¶á HA ááŒá±ááŸááºážáá»ááº
ááááŠážá áœá¬ áá»áœááºá¯ááºááá¯á·á áá±áá¬ááááºážáááºážááŸá¯á áá áºááẠáááºáá²á·ááá¯á·ááŒá áºáááºááᯠá¡ááá¯áá»á¯á¶ážááŒá±á¬ááŒáá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠá á¬áá±ážááá¯ááºáá±á¬ áá¬á áá¬áá áºáá¯ááŸáá·áº á¡áá»á¬ážá¡ááŒá¬ážáááºáááºáᬠáá¯á¶áá°áá»á¬ážáá«ááŸááá±á¬ ááá¹ááááºáá¯á¶áá°áá¯á¶á á¶ááᯠáá»áœááºá¯ááºááá¯á· á¡áá¯á¶ážááŒá¯áá«áááºá á¡á á¯á¡áá±ážáá áºáá¯ááœáẠá¡áááºá¡áááºáá¬á áá¬áá áºáᯠáá«áááºááá¯ááºááẠ- á¡ááŒá¬ážáá°áá»á¬ážá¡ááœáẠáá¯á¶áá°ááŸáá·áº áá¬á áá¬ááŸá áºáá¯áá¯á¶ážáá«ááŸááá±á¬ node áá áºáá¯áá«ááŸááááºá áá±á¬ááºáááºáá»á¬ážááẠLoad ááŒáá·áºááŒá°ážááŸá¯ááŸáá·áº ááœááºáá°áá±á¬á¡ááá¯ááºážá¡áá¬ááá¯ááẠááœáá·áºááŒá¯ááá·áº HAProxy ááŸáááá·áº áá¯á¶áá°áá»á¬ážááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯áááºá HAProxy ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááẠáááá¯ááºážááá¯ááºáᬠá¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬ážááŒá±á¬áá·áºááŒá áºááŒá®ážá áá»áœááºá¯ááºááá¯á·ááẠáááºááŸáááœáẠProxySQL ááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááŒááºáž áá¯ááºáááºážá ááºááœáẠáá«áááºáá±áá«áááºá
áá°ážáá°ááŒááºážá¡á¬áž á¡ááŒá±áá¶á áá
áºááá¯ááºážáá
áºááŒáá¯ááºáááºážáá¯ááºááœáẠáá¯ááºáá±á¬ááºáá«áááºá GTID
. ááá¯ááá¯áááºááŸá¬ á¡á±á¬ááºááŒááºáááºáᯠááá°ááá® á¡áááºážáá¯á¶áž áá¯á¶á
á¶áá°áá
áºáá¯ááẠááœá±áá±ážááœá±áá°áá
áºáá¯ááᯠá
á¬áááºážááœááºážááá«áááºá á€áá¯á¶áá°áá¯ááºááẠmaster node áá»áá¯á·ááœááºážááŸá¯ááŒá
áºááá·áºá¡áá« á
áœááºážáá±á¬ááºáááºááŸáá·áº áá±áá¬áá±ážáááºážáá±ážá¡ááŒá¬áž á¡áá±á¬ááºážáá¯á¶ážáá»áááºááœááºáá»áŸá¬ááᯠáá±ážáá±á¬ááºáááºá á¡ááŒá±áá¶á¡á¬ážááŒáá·áº ááŒá±á¬ááºážáá²ááŸá¯á¡á¬ážáá¯á¶ážááᯠá¡áá¯á¶ážááŒá¯ááŒá®áž áá¬á
áá¬á០áá¯á¶áá°áá»á¬ážáᶠááœáŸá²ááŒá±á¬ááºážáá±ážáá«áááºá Row Based Replication (RBR)
ááá¯á·áá±á¬áº á¡áá»áá¯á·áá±á¬ node áá»á¬áž ááŸáááá¯ááºáááºá mixed binlog format
.
áá®ážááŸá¯ááºáá°ááẠá¡á á¯á¡áá±ážá ááááºááá¯ááºážáá±áá¡ááŒá±á¡áá±á¡á¬áž á¡áá«á¡á¬ážáá»á±á¬áºá áœá¬ á¡ááºááááºáá¯ááºáᬠáááºáá¶áááŸáááá·áº á¡áá»ááºá¡áááºáá»á¬ážááᯠááá¯ááºážááŒá¬ážá áááºááŒá¬áᬠááŒá¿áá¬áá»á¬ážáá±á«áºáá±á«ááºáá«á áááºážááẠá¡ááá¯á¡áá»á±á¬áẠááŒááºáááºááá°áá±ážáá¯ááºáááºážá ááºááᯠá áááºááá¯ááºáááºá áááºáá±á¬ááºááŸá¯ááŸá¬ááœá±ááœá±á·ááŸáááŒááºážáááºáá±á¬ááºááŸá¯áá»á¬áž ááá¯á·ááá¯áẠááá¯ááºááá¯ááºáá±ážáá¬ážáá±á¬ ááá¹ááá¬ážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á VIPá DNS ááá¯á¡ááŒá±áá¶á á¡áá»áá¯ážáá»áá¯ážáá±á¬áááºážáááºážáá»á¬ážááŒáá·áº á¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºáá±á¬ááŒá±á¬áá·áº áá±á¬á·ááºáá²áá±ážáá¬ážáá°ááẠáá¯ááºáááºážá ááºá¡ááœáẠáá¬áááºááŸááá«áááºá
á¡áááºáááŒá±áá«á áá¬á áá¬ááᯠááŒááºáááºááá°ááẠááá¯ážááŸááºážáá±á¬áááºážáááºážáá áºáá¯ááŸá¬ áá±áá±á«áº VIP ááááºá á¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŒá áºáááºá
ááŸá±á·ááááºááẠáá®ááŒá±ááŸááºážáá»ááºáá²á· áááºáááºááŒá®áž áááá¬ážááá·áºáá¬á
- VIP ááá¯áááºááŸá¬ áááá»áá±á¬ áá¯ááºááá¯ááºážááá¯ááºáá¬ááœááºááẠáá»ááºááŸá¬ááŒááºááŸáá·áº áááºá ááºááŸá¯áááŸááá±á¬ IP ááááºá á¬áá áºáá¯ááŒá áºáááºá á¡áááºá node áá áºáá¯áá»ááºááœááºáá»áŸáẠááá¯á·ááá¯áẠá á®á ááºáá¬ážáá±á¬ ááŒá¯ááŒááºááááºážááááºážááŸá¯áá¬áá¡ááœááºážá VIP á¡á¬áž á¡áá»áááºá¡áááºážáá¯á¶ážááŒáá·áº á¡ááŒá¬ážá¡áááºážá¡ááŒá áºáá áºáá¯ááá¯á· ááŒá±á¬ááºážááá¯ááºáááºá
- virtual IP ááááºá á¬ááᯠáááºááŸá¬ážááŒááºážááŸáá·áº áá¯ááºáá±ážááŒááºážááẠá á»á±ážáá±á«ááŒá®áž ááŒááºáááºáá±á¬ áá¯ááºáá±á¬ááºááŸá¯áá áºáá¯ááŒá áºáááºá
- VIP ááŸáá·áºá¡áá¯ááºáá¯ááºáááºá áááºááẠSSH ááŸáá
áºááá·áº áá¬áá¬ááá¯á·áááºáá±á¬ááºááœáá·áºááá¯á¡ááºáááºá ááá¯á·ááá¯áẠá¡áá°ážá¡áá¯á¶ážá¡áá±á¬ááºáá»á¬ážá¡áá¯á¶ážááŒá¯ááŒááºáž á¥ááá¬á
keepalived
.
áá»áœááºá¯ááºááá¯á·á wizard ááœááºááŒá áºááá¯ááºáá±á¬ááŒá¿áá¬áá»á¬ážááá¯ááŒáá·áºááŸá¯ááŒá®áž á¡ááá¯á¡áá»á±á¬ááºááŒááºáááºááá°áá±ážááá¹ááá¬ážáááºáááºááá¯á·áá¯ááºáá±á¬ááºááá·áºáááºááá¯ááŒááºáá±á¬ááºááŒáá·áºáá«á
áá¬á áá¬ááá¯á· ááœááºáááºáá»áááºáááºááŸá¯ áá»á±á¬ááºááœááºááœá¬ážááẠááá¯á·ááá¯áẠáá¬á·ááºáá²á¡ááá·áºááœáẠááŒá¿áá¬áá áºáᯠáá±á«áºáá¬ááŒá®áž áá¬áá¬ááẠááááá¯ááºáá«á
- áá®ážááŸá¯ááºáá°ááẠá¡á á¯á¡áá±ážá ááááºááá¯ááºážáá±áááᯠá¡ááºááááºáá¯ááºáááºá áá¯á¶áá°áá áºáá¯á á®ááẠáá¬á áá¬ááááŸáááá¯ááºááŒá±á¬ááºáž á¡á á®áááºáá¶áááºá áá¶á á¯á¶áá®ážááá¯ááºážááẠáá¬á áá¬á¡áá áºáá¡áááºážááá¹áá¡ááœáẠááá·áºáá»á±á¬áºáá±á¬áá¯á¶á á¶áá°áá áºáá¯ááᯠááœá±ážáá»ááºááŒááºážáá¯ááºáááºážá ááºááᯠá áááºááŒá®áž ááŒááºáááºááá°ááŒááºážááᯠá áááºáááºá
- áá»áœááºá¯ááºááá¯á·ááẠáá¡á±á¬ááºááŒááºáá² ááááºáá±á¬ááºážáá¶á០VIP ááᯠââáááºááŸá¬ážááẠááŒáá¯ážá á¬ážáá±áá«áááºá
- áá¯á¶áá°ááẠáá¬á áá¬á¡áááºážááá¹áááá¯á· ááŒá±á¬ááºážáááºá topology ááᯠááŒááºáááºáááºáá±á¬ááºáá±áá«áááºá
- VIP ááŒáá·áº ááœááºáááºá¡ááºáá¬áá±á·á
áºá¡áá
áºááᯠááá·áºááœááºážááŒááºážá VIP ááᯠââáááºááŸá¬ážááẠáááŒá
áºááá¯ááºáá±á¬ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠá¡áá«á¡á¬ážáá»á±á¬áºá
áœá¬ áá±á¬ááºáá¶ááœáẠáá±á¬ááºážááá¯áá»ááºáá
áºáá¯ááᯠá
áááºáá±ážááá¯á·áá«áááºá á¡ááá²á· ARP. á€áá±á¬ááºážááá¯ááŸá¯/áá¯á¶á·ááŒááºááŸá¯ á¡áá»áá¯ážá¡á
á¬ážááẠáá»áááºáááºáá¬ážáá±á¬ ááá¯ááºáá»á¬ážáá±á«áºááœáẠIP ááŸáá·áº MAC ááááºá
á¬ááŒá±áá¯á¶ááœá²ááŒááºážááá¬ážááᯠá¡ááºááááºáá¯ááºááœáá·áºááŒá¯áᬠáá»áœááºá¯ááºááá¯á·á VIP ááŒá±á¬ááºážááœáŸá±á·ááœá¬ážááŒá±á¬ááºáž á¡áááá±ážá¡ááºáá«áááºá áááºážá ááŒá
áºááá¯ááºááŒá±ááᯠáááºážáá«ážá
á±áááºá
split brain
ááááºáá±á¬ááºáž ááŒááºáá¬áá±á¬á¡áá«á - áá»áááºáááºááŸá¯á¡áá áºá¡á¬ážáá¯á¶ážááᯠáá¬á áá¬á¡áá áºáᶠáá»ááºáá»ááºážááŒááºááœáŸááºážáááºá áá»áááºáááºááŸá¯áá±á¬ááºážáá»á¬áž áá»ááºááœááºááŒá®áž áá±áá¬áá±á·á áºááá¯á· áááºáá«ááá²áá²áá±á«áºááá¯ááŸá¯áá»á¬ážááᯠá¡ááá®áá±ážááŸááºážá¡ááá·áºááœáẠááŒá¯áá¯ááºáááºá
áá¬áá¬ááẠáá¯á¶ááŸááºáá¯ááºááœáẠáááºáááºáá±ááŒá®áž DBMS á¡ááá·áºááœáẠáá»áá¯á·ááœááºážááŸá¯áá áºáᯠááŒá áºááœá¬ážáá²á·áááºá
á¡ááºáááá¯áá®áááºááẠááááºááá á¹á ááŸáá·áº áááºáá°áááº- topology ááᯠá¡ááºááááºáá¯ááºááŒááºážááŸáá·áº ááŒááºáááºááá°ááŒááºážáá¯ááºáááºážá ááºááᯠá áááºááŒááºážá áá¬áá¬ááᯠáááá¯ááºáá±á¬ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠáá¬á áá¬áá±á¬ááºážááœáẠVIP ááᯠââá¡á±á¬ááºááŒááºá áœá¬ áá¯ááºáá±ááŒá®áž á¡áá áºááá¯á· ááœáŸá²ááŒá±á¬ááºážáᬠARP áá±á¬ááºážááá¯áá»ááºáá»á¬ážá áœá¬ááᯠáá±ážááá¯á·áá«áááºá áá¬á áá¬áá±á¬ááºážá ááŒá áºááá¯ááºáá»á±ááŸááá±á¬ ááŒááºáááºáááºáá±á¬ááºááŸá¯ááẠááŒááºáááºáááºáá±á¬ááºáá¬ážáá±á¬ á¡á á¯á¡áá±ážááŸáá·áº á¡ááá®áá±ážááŸááºážááá¯ááºáá±á¬ááºááŸá¯ááᯠáááááá¯ááºá á±ááá·áºáá«á
á¡ááŒá¬ážááŒá¿áá¬áá»á¬áž
áá¯á¶áá°áá»á¬áž ááá¯á·ááá¯áẠá¡áááºá¡áááºááááºáá»á¬áž áá»ááºááœááºááŒááºážá ááŠážáá±á¬ááºáá°ážá á¡ááá¯á¡áá»á±á¬áẠáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áá°ááá¯ááºááá¯áẠáááºáá±á¬ááºá áœááºáááºááŸá¯ ááá¯á¡ááºáááºá
virtual network interface ááᯠá¡ááŒá²áááºáž áá¬áá®ááá·áºááœááºážáá¬ážáááºá ááá¯ááá¯áááºááŸá¬ áá¬áá¬áá
áºáᯠááŒááºáááºá
áááºááŒá®ážáá±á¬áẠVIP ááᯠââá¡ááá¯á¡áá»á±á¬áẠáááºááŸááºáá±ážáááºááá¯ááºáá«á áá±áá¬áá±á·á
áºá¡ááºá
áá®áá»á°ážááŸááºážáá
áºáá¯á
á®ááẠáá¯á¶ááŸááºá¡á¬ážááŒáá·áº áááºáááº-áááºáááºáá¯ááºááœáẠá
áááºáááºá áá®ážááŸá¯ááºáá°á á
á¬áá±ážááẠáá¬á
áá¬á¡áá
áºááᯠá¡ááá¯á¡áá»á±á¬ááºááŒá±á¬ááºážááŒá®áž ááá·áºááœááºážááẠááŒáá¯ážá
á¬ážááẠread only
ááááºáá±á¬ááºážá¡áá±á«áºá á€áá¯ááºáááºáá»á¬ážááẠááŒá
áºááá¯ááºááŒá±ááᯠáá»áŸá±á¬á·áá»ááẠáááºááœááºáááºá split brain
.
ááŒááºáááºááá°áá±áž áá¯ááºáááºážá
ááºá¡ááœááºáž ááŒá¿áá¬áá»á¬áž ááŒá
áºáá±á«áºáá¬ááá¯ááºáááºá áááºážááẠáá¯á¶ááŸááºá
á±á¬áá·áºááŒáá·áºáá±ážáááááá¬áá»á¬ážá¡ááŒáẠáá¶á
á¯á¶áá®ážááá¯ááºáž UI ááŸáááá·áºáááºáž á¡áááá±ážááá·áºáááºá á€á¡ááºá¹áá«áááºááᯠááá·áºááœááºážááŒááºážááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠREST API ááᯠááá¯ážáá»á²á·áá²á·ááẠ(
HA ááŒá±ááŸááºážáá»ááºá áá±áá°áá» áá¯á¶ááŒááºážááᯠá¡á±á¬ááºááœáẠáá±á¬áºááŒáá¬ážáááºá
ááááºá¡áá áºááᯠááœá±ážáá»ááºááŒááºážá
áá¶á
á¯á¶áá®ážááá¯ááºážááẠáá¬ááºáá±á¬ááºážááŒá®áž ááœá±ážáá»ááºááẠááŒáá¯ážá
á¬ážáááºá
- áá¯á¶áá°ááẠááááºáá±á¬ááºá áá±á¬ááºáá»áá»ááºáá±áá
- áá¬á áá¬ááŸáá·áº áá¯á¶áá° MySQL áá¬ážááŸááºážá
- áá°ážáá°ááŸá¯á¡áá»áá¯ážá¡á á¬áž (RBRá SBR ááá¯á·ááá¯áẠáá±á¬ááŸá±á¬);
- áá°áá®áá±á¬ ááá¯á·ááá¯áẠááá°áá®áá±á¬áá±áá¬á ááºáá¬áá»á¬ážááœááºáááºáá±áá¬á
- á¡áá¯á¶ážááŒá¯ááá¯ááºááŸá¯
errant GTID
- áá¯á¶á á¶áá°áá±á«áºááœááºáá¯ááºáá±á¬ááºááŒá®áž áá¬á áá¬ááœááºááá¯ááºáá±á¬ á¡áá±á¬ááºážá¡áááºáá»á¬ážá - á áááºááŒáá¯ááºááœá±ážáá»ááºááŸá¯á ááºážáá»ááºážáá»á¬ážááá¯áááºáž ááá·áºááœááºážá ááºážá á¬ážáá«áááºá
áá¬ááºááœáŸááºážááá¯ááºážááẠááááºáá
áºáŠážá¡ááœáẠá
á¶ááŒááá¯ááºá
á¬ážááŸááºááá¯ááºáá±á á¥ááá¬á¡á¬ážááŒáá·áºá áá±áá¬ááᯠá¡áááºáá°ážááẠáá¯á¶á
á¶áá°ááᯠáá¯á¶ážááá¯ááºáááºá ááá¯á·ááá¯áẠáá¬áá¬ááœáẠá¡á¬ážáááºážáá±á¬ áá¬á·ááºáá²ááœá²á·á
ááºážáá¯á¶ ááŸááááºá áá¶á
á¯á¶áá®ážááá¯ááºáž
áá¯á¶á·ááŒááºááŸá¯ááŸáá·áº ááŒááºáááºááá°áá»áááº
á¡ááŒá áºá¡áá»ááºáá áºáá¯ááœááºá á áá áºá ááºáááºáá»áááºááᯠáá»áŸá±á¬á·áá»ááẠá¡áá±ážááŒá®ážáááºá ááá¯á·ááŒá±á¬áá·áº áá®ážááŸá¯ááºáá°á០áááºáá®ážááŒááºážááŸáá·áº ááœááºážáá¶ááŒááºážááá¯á·ááᯠá¡áá»áá¯ážáááºáá±á¬ááºá á±áá±á¬ MySQL áá±á¬ááºáá»á¬ážááᯠáá¯á¶ážáááºááŒáá·áºááŒáá«á áá¯á·á
â áá¯á¶áá°ááẠáá±áá¬á¡áá Ạááá¯á·ááá¯áẠáá»áááºáááºááŸá¯ááŒááºáá±á¬ááºááŒá®áž ááŒááºáááºáá»áááºáááºááŸá¯ááá¶ááá® áá¬á áá¬áá¶á០ááŸáá¯á¶ážáá¯ááºá¡áá»ááºááŒááŸá¯ááᯠá á±á¬áá·áºááá¯ááºážáá±ááá·áº á áá¹ááá·áºá¡áá±á¡ááœááºá áááºááá¯ážáááá·áºáá±á áá¯á¶á á¶áá°ááẠááááºááŸáá·áº áááºááœááºááŸá¯ áá»ááºááœá¬ážááŒá±á¬ááºážááᯠááá¯ááá¯ááŒááºáááºá áœá¬ áá¯á¶ážááŒááºááá¯ááºáá±ááŒá áºáááºá áá»áœááºá¯ááºááá¯á·ááẠá€áááºááá¯ážááᯠ5 á áá¹ááá·áºáááºááŸááºáá¬ážáááºáslave_net_timeout
- ááŒááºáááºáá»áááºáááºááẠááŒáá¯ážá á¬ážááŸá¯áá»á¬ážááŒá¬áž á áá¹ááá·áºá¡áá±á¡ááœááºá ááœááºáááºááŒá¿áá¬áá»á¬ážááŸáááá·áºá¡áá«á á€ááá·áºáááºáá»ááºá¡ááœáẠáááºááá¯ážáááºážááŒááºážááẠá¡ááŒááºááŒááºáááºáá»áááºáááºááŸá¯ááᯠááœáá·áºááŒá¯áá±ážááŒá®áž á¡á á¯ááá¯ááºááŒááºáááºááá°ááŒááºážáá¯ááºáááºážá ááºááᯠá áááºááŒááºážá០áá¬ážáá®ážáá±ážáááºááŒá áºáááºá á¡ááŒá¶ááŒá¯áá¬ážáá±á¬áááºááá¯ážááẠ1 á áá¹ááá·áºááŒá áºáááºáMASTER_CONNECT_RETRY
MASTER_RETRY_COUNT
- ááŒááºáááºáá»áááºáááºááẠááŒáá¯ážá á¬ážááŸá¯ á¡áá»á¬ážáá¯á¶ážá¡áá±á¡ááœááºáMASTER_HEARTBEAT_PERIOD
- ááááºááẠááŸáá¯á¶ážáá¯ááºá¡áá»ááºááŒááŸá¯ááᯠáá±ážááá¯á·ááŒá®ážáá±á¬áẠá áá¹ááá·áºááá¯ááºážá¡ááœááºáž ááŒá¬ážáá¬áá áá¯á¶áá±áááºááá¯ážááẠáá áºáááºá¡ááááŒá áºáááºáslave_net_timeout
.
áá¶á á¯á¶áá®ážááá¯ááºážááœá±ážáá»ááºá áá¬áá»á¬áž-
DelayMasterPromotionIfSQLThreadNotUpToDate
- áááºážáá°true
ááá¯á·áá±á¬áẠáá¯á¶áá°á SQL thread ááẠRelay Log á០á¡áá¯á¶ážáááŒá¯ááá±ážáá±á¬ ááœá±áá±ážááœá±áá°áá»á¬ážá¡á¬ážáá¯á¶ážááᯠá¡ááŒá®ážáááºáááŒá®ážááá»ááºáž áá»áŸá±á¬ááºáá¬ážáá°áá¯á¶áá°á¡áá±á«áºááœáẠáá¬á áá¬á¡áááºážááá¹áááᯠá¡áá¯á¶ážáá»áááºááá¯ááºáá«á ááá¯ááºá á¬ážááŸááºáá±á¬ááºáž áá¯á¶áá°áá»á¬áž á¡á¬ážáá¯á¶áž áá±á¬ááºáá»ááœá¬ážáá±á¬á¡áá« ááœá±áá±ážááœá±áá°áá»á¬áž áá¯á¶ážááŸá¯á¶ážááŒááºážááᯠááŸá±á¬ááºááŸá¬ážááẠá€ááœá±ážáá»ááºááŸá¯ááᯠáá»áœááºá¯ááºááá¯á· á¡áá¯á¶ážááŒá¯áá«áááºáInstancePollSeconds
- topology áááºáá±á¬ááºááŒááºážááŸáá·áº á¡ááá·áºááŒáŸáá·áºáááºááŒááºáž á¡ááŒáááºáá±áRecoveryPollSeconds
- topology ááœá²ááŒááºážá áááºááŒá¬ááŸá¯á¡ááŒáááºáá±á ááŒá¿áá¬áá áºáá¯ááœá±á·ááŸááá«á topology ááŒááºáááºááá°ááŒááºážááᯠá áááºáá¯ááºáá±á¬ááºáá«áááºá áá®á ááºáááºáááŒáẠ1 á áá¹ááá·áº ááŸáá·áº áá®áááºá
á¡á
á¯á¡áá±ážáá
áºáá¯á
á®ááᯠáá
áºááŒáááºá
á®áá®ážááŸá¯ááºáá°á á
á
áºáááºážáá±á¬ááºáá°áááºá InstancePollSeconds
á
áá¹ááá·áº ááŒá¿áá¬áá
áºáá¯ááᯠááŸá¬ááœá±á·áá±á¬á¡áá«á á¡á
á¯á¡áá±ážá¡ááŒá±á¡áá±ááᯠááá¯ááºážá
á±áá«áááºá
á ááºážáááºááŸá¯áááº
áá±ááá¶áá
áºáŠážááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááŸáá·áºá¡áá° HA á
á®áá¶áá»ááºááᯠá
áááºá
ááºážáááºáá²á·áá«áááºá
áá±á·áá»áá·áºáááºážáá»á¬ážá¡ááœááºážá áá»áœááºá¯ááºááá¯á·ááẠááŒá¿áá¬ááᯠá¡áá¯áá°ááá·áºáááºážáááºážáá»á¬ážáá²á០áá
áºáá¯ááᯠááœá±ážáá»ááºáááº- áá¬á
áá¬ááᯠá¡áá¯á¶ážááŒá¯á áá»ááºáá»ááºážáá
áºáá«á kill -9
áá¯ááºáááºážá
ááºááᯠáááºáá¬á
áœá¬ á¡áá¯á¶ážáááºááŒá®áž áá¬áá¬ááᯠáááºááá¯ááºáá« (docker-compose stop
) áá¯á¶ážááŒá®áž ááœááºáááºááŒá¿áá¬áá»á¬ážááᯠáá¯á¶áá±á¬áºáá«á iptables -j REJECT
ááá¯á·ááá¯áẠiptables -j DROP
. á¡á±á¬ááºáá«ááááºáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· áá»áŸá±á¬áºááá·áºáááº-
- áá¶á á¯á¶áá®ážááá¯ááºážááẠáá¬á áá¬ááŸáá·áº ááŒá¿áá¬áá»á¬ážááᯠááŸá¬ááœá±ááŒá®áž ááááºáááºážáááºážááá¬ááᯠ10 á áá¹ááá·áºáááºáááá¯áá² á¡ááºááááºáá¯ááºáááá·áºáááºá
- ááŒááºáááºááá°ááŒááºážáá¯ááºáááºážá ááºááẠá¡ááá¯á¡áá»á±á¬ááºá áááºáááá·áºáááº- ááœááºáááºááœá²á·á ááºážáá¯á¶ááẠááŒá±á¬ááºážáá²ááœá¬ážáááºááŒá áºááŒá®ážá áá¬á áá¬áá¡áááºážááá¹áááẠáá¯á¶á á¶áá°ááá¯á·áá±á¬ááºááœá¬ážáááºááŒá áºááŒá®ážá topology ááᯠááŒááºáááºáááºáá±á¬ááºáááºááŒá áºáááºá
- áá¬á áá¬á¡áá áºááẠá á¬áá±ážááááá¯ááºáááºááŒá áºááŒá®áž ááŒááºáááºáááºáá±á¬ááºááŸá¯áá¯ááºáááºážá ááºá¡ááœááºáž ááá¯ááºááá¯ááºáá¯á¶áá°áá»á¬áž áá»á±á¬ááºáá¯á¶ážáááºááá¯ááºáá«á
- á¡áá»ááºá¡áááºáá»á¬ážááᯠáá¬á áá¬á¡áá áºáᶠá á¬áá±ážááŒá®áž áááºáá°ááŒá¯áá«áááºá
- á á¯á á¯áá±á«ááºáž ááŒááºáááºááá°áá»áááºááẠá áá¹ááá·áº 30 ááẠáááá¯á á±áá
áááºááááá·áºá¡ááá¯ááºážá á áá áºááẠááá°áá®áá±á¬ hardware ááŸáá·áº network configurations á synthetic ááŸáá·áº real load ááœá¬ááŒá¬ážáá»ááºáá»á¬áž á áááºááá¯á·ááŒá±á¬áá·áº á ááºážáááºááŸá¯ááŸáá·áº áá¯ááºáá¯ááºááŸá¯áááºáááºážáá»ááºááœáẠááœá²ááŒá¬ážá áœá¬ááŒá¯áá°ááá¯ááºáááºá ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠááœááºáááºáá»áááºáááºááŸá¯ áá»á±á¬ááºáá¯á¶ážááœá¬ážáá±á¬á¡áá« ááá¯á·ááá¯áẠáááºážááá áºá áááºáá áºááá¯ááºáž á¡á áááºá¡ááá¯ááºážáá»á¬áž ááá¯ááœááºážááœá¬ážááá·áºá¡áá« á áá áºá ááŒá¯áá°áá¯á¶ááᯠá á áºááŸááºáá±á¬ á¡ááŒá±á¡áá±áá»á¬ážááœáẠá¡áá«á¡á¬ážáá»á±á¬áºá áœá¬ áá±á·áá»áá·áºáááºážáá»á¬áž ááŒá¯áá¯ááºáá«áááºá á¡áá¬áááºááœááºá áá»áœááºá¯ááºááá¯á·ááẠáááºáááºážáá»ááºááŸá áºáá¯áá¯á¶ážá¡ááœáẠáá¯á¶ážááá°áá®áá±á¬á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áá áºáá¯ááᯠáááºáá±á¬ááºááŒá®áž áááºážáá ááºážáááºááŸá¯ááᯠá¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±á¬ááºáá±ážááá¯áá«áááºá
ááœá±á·ááŸááá»ááºáá»á¬áž
áááºáááá¯ááŸá±á¬ááºááŸá¯á áá Ạnode ááá»ááºážáá¬áá±ážááẠSRE ááŸáá·áº áá¯ááºáááºážáá±á¬ááºááœááºááŸá¯á¡ááœá²á·á á¡ááááá¬áááºáá»á¬ážáá²ááŸáá áºáá¯ááŒá áºáááºá VIP ááá¯á¡ááŒá±áá¶á áá¶á á¯á¶áá®ážááá¯ááºážááŸáá·áº HA ááŒá±ááŸááºážáá»ááºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážááẠáá»áœááºá¯ááºááá¯á·á¡á¬áž á¡á±á¬ááºáá«ááááºáá»á¬ážááᯠáááŸáá á±áá«áááºá
- áá±áá¬áá±á·á áºá¡á á¯á¡áá±ážá topology ááá¯ááºáᬠááŒá¿áá¬áá»á¬ážááᯠáá¯á¶ááŒááºá áááºáá»ááá±á¬ áá±á¬ááºááŸááºážááŒááºážá
- ááááºááŸáá·áºáááºáááºáá±á¬ á¡ááŒá áºá¡áá»ááºáá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬ááºááŸáá·áº áá»ááºááŒááºá áœá¬ áá¯á¶á·ááŒááºááá¯ááºááŒá®áž á áá áºá ááºáááºááŸá¯ááᯠáá»áŸá±á¬á·áá»áá±ážáááºá
ááá¯á·áá±á¬áºá ááŒá±ááŸááºážáá»ááºááœáẠáááºážá ááá·áºáááºáá»ááºáá»á¬ážááŸáá·áº á¡á¬ážáááºážáá»ááºáá»á¬ážááŸááááºá
- HA á¡á á®á¡á ááºááᯠáá±áá¬á ááºáá¬áá»á¬ážá áœá¬ááá¯á· áá»á²á·ááœááºááŒááºážááẠáááºážááá¯á·ááŒá¬ážááŸá L2 ááœááºáááºáá áºáᯠááá¯á¡ááºáááºááŒá áºáááºá
- Master á¡áá áºááœáẠVIP ááááºááŸááºáá®á áááºážááᯠá¡áá±á¬ááºážáá±á«áºááœáẠáá¯ááºááŒááºááẠááá¯á¡ááºáááºá áá¯ááºáááºážá ááºááẠá¡á ááºááá¯ááºááŒá áºááŒá®áž ááŒááºáááºááá°áá»áááºááᯠááá¯ážá á±áááºá
- VIP ááá¯áá¯ááºááœáŸááºááŒááºážááẠáá¬áá¬ááá¯á· SSH áááºáá±á¬ááºááœáá·áº ááá¯á·ááá¯áẠá¡áá±ážááááºážáá¯ááºáááºážá
ááºáá»á¬ážááᯠáá±á«áºááá¯ááá·áº á¡ááŒá¬ážáááºážáááºážáá
áºáᯠááá¯á¡ááºáááºá áá¬áᬠááá¯á·ááá¯áẠáá±áá¬áá±á·á
áºááẠááŒááºáááºááá°ááŒááºážáá¯ááºáááºážá
ááºááᯠááŒá
áºá
á±áá±á¬ ááŒá¿áá¬áá»á¬ážááᯠááœá±á·ááŒá¯á¶áá±ááá±á¬ááŒá±á¬áá·áº VIP áááºááŸá¬ážááŒááºážááŸá¬ á¡á±á¬ááºááŒááºá
áœá¬ááŒá®ážáá¯á¶ážáááºááᯠáá»áœááºá¯ááºááá¯á· ááá±áá»á¬ááá¯ááºáá«á áááºážááẠáá°áá®áá±á¬ virtual IP ááááºá
á¬ááŸáá·áº ááŒá¿áá¬áá
áºáá¯ááŸáááá·áº áá¬áá¬ááŸá
áºáá¯ááᯠááŒá
áºáá±á«áºá
á±ááá¯ááºáááºá
split brain
.
ááŸá±á¬ááºááŒááºááẠsplit brain
, áááºáááºážáááºážááá¯áá¯á¶ážááá¯ááºáááºá
MySQL áá»ááºááœááºááŸá¯á¡á
á¯á¡áá±ážáá
áºáá¯áááºáá®ážááẠáá»áœááºá¯ááºááá¯á·ááá»ááºážáááºáá¯á¶á¡ááŒá±á¬ááºáž ááŒá±á¬áá²á·áááºá áááºážááẠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠááœááºáá°ááŒá®áž áááºááŸáá¡ááŒá±á¡áá±á¡á±á¬ááºááœáẠáááºáá¶ááá¯ááºáá±á¬ áá¯á¶ááŒááºá
áááºáá»áááŸá¯á¡ááá·áºááᯠáá±ážáá±á¬ááºáá«áááºá áá±áá¯áá»á¡á¬ážááŒáá·áº á
áá
áºáá
áºáá¯áá¯á¶ážááŸáá·áº á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áá»á¬áž á¡áá°ážáááŒáá·áº ááœá¶á·ááŒáá¯ážááá¯ážáááºáá¬áááºááŸáá·áºá¡áá»áŸá á€áá»ááºážáááºááŸá¯ááẠáá¶ááááŒá
áºááœáẠááŒá
áºááœááºážáá¬áááºááŒá
áºáááºá
source: www.habr.com