- 1 1. MySQL ã¬ããªã±ãŒã·ã§ã³ãšã¯ïŒãã®æŠèŠãšçšé
- 2 2. MySQL ã¬ããªã±ãŒã·ã§ã³ã®åºæ¬æŠå¿µ
- 3 3. MySQL ã¬ããªã±ãŒã·ã§ã³ã®ã»ããã¢ããæé
- 4 4. ã¬ããªã±ãŒã·ã§ã³ã®çš®é¡ãšå¿çš
- 5 5. ã¬ããªã±ãŒã·ã§ã³ã®ã¡ã³ããã³ã¹ãšç£èŠ
- 6 6. ãããããã©ãã«ãšãã®å¯ŸåŠæ¹æ³
- 7 7. ãŸãšã
1. MySQL ã¬ããªã±ãŒã·ã§ã³ãšã¯ïŒãã®æŠèŠãšçšé
MySQL ã¬ããªã±ãŒã·ã§ã³ã¯ãããŒã¿ããŒã¹ã®ã³ããŒããªã¢ã«ã¿ã€ã ã§ä»ã®ãµãŒãã«åæãããæ©èœã§ããããã«ãããããŒã¿ããŒã¹ã®åé·æ§ãããã©ãŒãã³ã¹ãé«ããããšãå¯èœã«ãªããŸãã以äžã«ãMySQL ã¬ããªã±ãŒã·ã§ã³ãã©ã®ãããªã·ãŒã³ã§å©çšããããããŸããã®ä»çµã¿ã«ã€ããŠè©³ãã解説ããŸãã
MySQL ã¬ããªã±ãŒã·ã§ã³ã®æŠèŠ
MySQL ã¬ããªã±ãŒã·ã§ã³ã¯ããã¹ã¿ãŒãµãŒããŒãšã¹ã¬ãŒããµãŒããŒã®æ§æã«ãããããŒã¿ããŒã¹ã®å 容ãè€æ°ã®ãµãŒããŒéã§å ±æããŸããå ·äœçã«ã¯ããã¹ã¿ãŒãµãŒããŒããã€ããªãã°ã«èšé²ããããŒã¿æŽæ°ããã¹ã¬ãŒããµãŒããŒãèªã¿åãåæ ããããšã§ããŒã¿ã®åæãè¡ãããŸããããã«ããããã¹ã¿ãŒãµãŒããŒã«é害ãçºçããŠãã¹ã¬ãŒããµãŒããŒã«åãæ¿ããããšã§ãµãŒãã¹ã®ç¶ç¶ãå¯èœã§ãã
MySQL ã¬ããªã±ãŒã·ã§ã³ã®çšé
MySQL ã¬ããªã±ãŒã·ã§ã³ã¯ã以äžã®ãããªçšéã§åºã掻çšãããŠããŸãã
- é«å¯çšæ§ã®ç¢ºä¿ïŒäžãäžã®é害æã«ã¹ã¬ãŒããµãŒããŒãå©çšããããšã§ããŠã³ã¿ã€ã ãæå°éã«æããããšãã§ããŸãã
- è² è·åæ£ïŒèªã¿åãå°çšã®ã¯ãšãªãã¹ã¬ãŒããµãŒããŒã«æ¯ãåããããšã§ããã¹ã¿ãŒãµãŒããŒã®è² è·ã忣ããŸãã
- ããŒã¿ä¿å šãšããã¯ã¢ããïŒã¬ããªã±ãŒã·ã§ã³ã¯ãªã¢ã«ã¿ã€ã ã«ããŒã¿ãè€è£œãããããããã¯ã¢ãããšããŠã®å©çšãå¯èœã§ãã
ã¬ããªã±ãŒã·ã§ã³ã®çš®é¡
MySQL ã¬ããªã±ãŒã·ã§ã³ã«ã¯ãããŒã¿ã®åææ¹åŒã«ãã以äžã®çš®é¡ããããŸãã
- éåæã¬ããªã±ãŒã·ã§ã³ïŒãã¹ã¿ãŒãã¹ã¬ãŒãã«æŽæ°æ å ±ãéä¿¡ããã¿ã€ãã³ã°ãåŸ ããã«åŠçãé²ãããããé«éãªå¿çãå¯èœã§ããããããé害æã«ã¯ããŒã¿ã®äžéšãã¹ã¬ãŒãã«å±ããªãããšããããŸãã
- æºåæã¬ããªã±ãŒã·ã§ã³ïŒã¹ã¬ãŒãåŽã«ããŒã¿ãåæ ãããããšã確èªããŠããåŠçãé²ãããããéåæãããä¿¡é Œæ§ãé«ãã§ãããå¿çé床ã¯ããé ããªããŸãã
次ã®ã»ã¯ã·ã§ã³ã§ã¯ãMySQLã¬ããªã±ãŒã·ã§ã³ã®åºæ¬æŠå¿µã§ãããã€ããªãã°ãGTIDã«ã€ããŠèª¬æããŸãã
2. MySQL ã¬ããªã±ãŒã·ã§ã³ã®åºæ¬æŠå¿µ
MySQL ã¬ããªã±ãŒã·ã§ã³ãçè§£ããããã«ã¯ãã¬ããªã±ãŒã·ã§ã³ã«ãããŠéèŠãªåœ¹å²ãæãããã€ããªãã°ãGTIDïŒGlobal Transaction IDïŒã®åœ¹å²ã«ã€ããŠææ¡ããããšãéèŠã§ãããããã®èŠçŽ ã¯ãããŒã¿ãæ£ç¢ºã«è€è£œãããããã®åºç€ãšãªããŸãã
ãã¹ã¿ãŒãšã¹ã¬ãŒãã®åœ¹å²
MySQLã¬ããªã±ãŒã·ã§ã³ã§ã¯ããã¹ã¿ãŒãµãŒããŒãšã¹ã¬ãŒããµãŒããŒãããããç°ãªã圹å²ãæ ããŸãããã¹ã¿ãŒãµãŒããŒã¯ãããŒã¿ã®æŽæ°å 容ããã€ããªãã°ã«èšé²ãããã®å 容ãã¹ã¬ãŒãã«é ä¿¡ããŸããã¹ã¬ãŒããµãŒããŒã¯ããã¹ã¿ãŒããåãåã£ããã°ãé©çšããããŒã¿ãæŽæ°ããŸããããã«ãããã¹ã¬ãŒãã¯ãã¹ã¿ãŒã®ææ°ã®ããŒã¿ãšåãå 容ãä¿æã§ããã®ã§ãã
ãã€ããªãã°ãšãªã¬ãŒãã°
MySQLã¬ããªã±ãŒã·ã§ã³ã®åºç€ã«ã¯ã次ã®2ã€ã®ãã°ãå©çšãããŸãã
- ãã€ããªãã°ïŒBinary LogïŒ
- ãã€ããªãã°ã¯ããã¹ã¿ãŒãµãŒããŒäžã§ã®ããŒã¿æŽæ°ïŒINSERTãUPDATEãDELETEãªã©ïŒãèšé²ãããã®ã§ããããã«ãããã¹ã¬ãŒããµãŒããŒããã¹ã¿ãŒãšåæ§ã®ããŒã¿ç¶æ ãä¿ãŠãããã«ãªããŸãã
- ãªã¬ãŒãã°ïŒRelay LogïŒ
- ãªã¬ãŒãã°ã¯ãã¹ã¬ãŒããµãŒããŒããã¹ã¿ãŒããåãåã£ããã€ããªãã°ãèªåã®ã·ã¹ãã äžã«ä¿åãããã®ã§ããã¹ã¬ãŒãã®SQLã¹ã¬ããã¯ãã®ãªã¬ãŒãã°ãé ã«å®è¡ããããŒã¿ã®å€æŽãåæ ããŸãã
GTIDïŒGlobal Transaction IDïŒãšã¯
GTIDã¯ãåãã©ã³ã¶ã¯ã·ã§ã³ã«äžæã®IDãå²ãåœãŠãä»çµã¿ã§ãè€æ°ã®ã¹ã¬ãŒãã§ã®åæã®æŽåæ§ãä¿ã€ã®ã«åœ¹ç«ã¡ãŸããGTIDã䜿çšããããšã§ããã€ããªãã°ã®äœçœ®æå®ãäžèŠã«ãªãããã¹ã¿ãŒããååŸãããŠããªããã©ã³ã¶ã¯ã·ã§ã³ã®ã¿ãèªåçã«ã¹ã¬ãŒãã«é©çšã§ããããã管çãå€§å¹ ã«ç°¡ç¥åãããŸãã
GTID ã®å©ç¹
- äžæã®èå¥ïŒåãã©ã³ã¶ã¯ã·ã§ã³ã«ã¯äžæã®GTIDãä»äžããããããã©ã®ãã©ã³ã¶ã¯ã·ã§ã³ãé©çšæžã¿ã§ããããæç¢ºã«ãªããŸãã
- 埩æ§ã容æïŒGTIDãçšããããšã§ããã¹ã¿ãŒãã¹ã¬ãŒããåèµ·åããŠããé©çšãããŠããªããã©ã³ã¶ã¯ã·ã§ã³ã®ã¿ãåé©çšãããŸãã
- éçšç®¡çã®å¹çåïŒè€æ°ã®ã¹ã¬ãŒããµãŒããŒãååšããå€§èŠæš¡ç°å¢ã§ãããã©ã³ã¶ã¯ã·ã§ã³ã®æŽåæ§ãä¿ã¡ãªããç°¡åã«ç®¡çãå¯èœã§ãã
GTIDã䜿çšããã«ã¯ãgtid_mode=ON
ããã³enforce_gtid_consistency=ON
ã®èšå®ãå¿
é ã§ãããã¹ã¿ãŒããã³ã¹ã¬ãŒãã«ãããŠããããã®èšå®ãè¡ãããšã§ãGTIDã«ããã¬ããªã±ãŒã·ã§ã³ãæå¹ã«ã§ããŸãã
次ã®ã»ã¯ã·ã§ã³ã§ã¯ãå ·äœçãªMySQLã¬ããªã±ãŒã·ã§ã³ã®ã»ããã¢ããæé ã«ã€ããŠèª¬æããŸãã

3. MySQL ã¬ããªã±ãŒã·ã§ã³ã®ã»ããã¢ããæé
ããã§ã¯ãMySQLã¬ããªã±ãŒã·ã§ã³ãã»ããã¢ããããããã®æé ã«ã€ããŠè©³ãã解説ããŸãã以äžã®æé ã«åŸãããšã§ããã¹ã¿ãŒãšã¹ã¬ãŒãã®åºæ¬çãªæ§æãè¡ããããŒã¿ã®ãªã¢ã«ã¿ã€ã åæãå®çŸããŸãã
ãã¹ã¿ãŒãµãŒããŒã®èšå®
ãŸãããã¹ã¿ãŒãµãŒããŒã®èšå®ãã¡ã€ã«ïŒéåžžã¯my.cnf
ãŸãã¯my.ini
ïŒãç·šéããŠããã€ããªãã°ã®æå¹åãšãµãŒããŒIDã®èšå®ãè¡ããŸãã
- èšå®ãã¡ã€ã«ã®ç·šé
- 以äžã®èšå®ã
[mysqld]
ã»ã¯ã·ã§ã³ã«è¿œå ãããµãŒããŒIDãäžæã®å€ïŒäŸïŒ1ïŒã«èšå®ããŸãã
[mysqld]
server-id=1
log-bin=mysql-bin
server-id
ã¯åãµãŒããŒã§ç°ãªãäžæã®çªå·ãæå®ããå¿ èŠããããlog-bin
ã¯ãã€ããªãã°ã®æå¹åãæå³ããŸãã
- ã¬ããªã±ãŒã·ã§ã³ãŠãŒã¶ãŒã®äœæ
- ãã¹ã¿ãŒãµãŒããŒã«ã¬ããªã±ãŒã·ã§ã³å°çšã®ãŠãŒã¶ãŒãäœæããå¿ èŠãªæš©éãä»äžããŸãã
CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
- ãã®ãŠãŒã¶ãŒã¯ã¹ã¬ãŒããµãŒããŒãããã¹ã¿ãŒã®ããŒã¿ã«ã¢ã¯ã»ã¹ããããã«å¿ èŠã§ãã
- ãã¹ã¿ãŒã®ç¶æ 確èª
- çŸåšã®ãã€ããªãã°ãã¡ã€ã«ãšããžã·ã§ã³ïŒãã°ã®äœçœ®ïŒã確èªããŸãããã®æ å ±ã¯ã¹ã¬ãŒããµãŒããŒã®èšå®ã§å¿ èŠã«ãªããŸãã
SHOW MASTER STATUS;
- ãã®ã³ãã³ãã§è¡šç€ºããã
File
ïŒãã°ãã¡ã€ã«åïŒãšPosition
ïŒäœçœ®ïŒã¯ãã¹ã¬ãŒãåŽã®èšå®ã§äœ¿çšããŸãã
ã¹ã¬ãŒããµãŒããŒã®èšå®
次ã«ãã¹ã¬ãŒããµãŒããŒã®èšå®ãã¡ã€ã«ãç·šéãããµãŒããŒIDãšãã¹ã¿ãŒã®æ å ±ãèšå®ããŸãã
- èšå®ãã¡ã€ã«ã®ç·šé
- ã¹ã¬ãŒããµãŒããŒã
server-id
ãäžæã«èšå®ããŸãïŒäŸïŒ2ïŒããµãŒããŒIDã¯ãã¹ã¿ãŒãµãŒããŒãšç°ãªãçªå·ãæå®ããŸãã
[mysqld]
server-id=2
- ã¹ã¬ãŒããµãŒããŒã§ã®ããŒã¿æžã蟌ã¿ãé²ãããã«ã
read_only=ON
ãèšå®ããããšãäžè¬çã§ãã
- ãã¹ã¿ãŒã®æ å ±ãã¹ã¬ãŒãã«èšå®
- ã¹ã¬ãŒããµãŒããŒã§ä»¥äžã®ã³ãã³ããå®è¡ãããã¹ã¿ãŒã®ãã¹ãåããŠãŒã¶ãŒããã€ããªãã°ãã¡ã€ã«åãããžã·ã§ã³ãæå®ããŸãã
CHANGE MASTER TO
MASTER_HOST='master_host',
MASTER_USER='repl',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=123;
MASTER_LOG_FILE
ãšMASTER_LOG_POS
ã«ã¯ãå ã»ã©ãã¹ã¿ãŒã§ç¢ºèªããå€ãå ¥åããŸãã
- ã¬ããªã±ãŒã·ã§ã³ã®éå§
- ã¹ã¬ãŒããµãŒããŒã§ä»¥äžã®ã³ãã³ããå®è¡ããã¬ããªã±ãŒã·ã§ã³ãéå§ããŸãã
START SLAVE;
ã¬ããªã±ãŒã·ã§ã³ã®ç¶æ 確èª
ãã¹ã¿ãŒãšã¹ã¬ãŒãéã§ã¬ããªã±ãŒã·ã§ã³ãæ£ããèšå®ãããŠããã確èªããŸãã
- ãã¹ã¿ãŒã®ç¶æ 確èª
SHOW MASTER STATUS;
- ã¹ã¬ãŒãã®ç¶æ 確èª
SHOW SLAVE STATUS\G;
Slave_IO_Running
ãšSlave_SQL_Running
ãYes
ãšè¡šç€ºãããŠããã°ãã¬ããªã±ãŒã·ã§ã³ãæ£åžžã«çšŒåããŠããŸãã
次ã®ã»ã¯ã·ã§ã³ã§ã¯ãMySQLã¬ããªã±ãŒã·ã§ã³ã®å¿çšçãªèšå®æ¹æ³ã«ã€ããŠè§£èª¬ããŸããéåæãšæºåæã¬ããªã±ãŒã·ã§ã³ã®éãããGTIDãæŽ»çšããèšå®æé ã«è§ŠããŠãããŸãã
4. ã¬ããªã±ãŒã·ã§ã³ã®çš®é¡ãšå¿çš
MySQLã¬ããªã±ãŒã·ã§ã³ã«ã¯ãããŒã¿ã®åææ¹åŒã«ãã£ãŠéåæã¬ããªã±ãŒã·ã§ã³ãšæºåæã¬ããªã±ãŒã·ã§ã³ã®2çš®é¡ããããŸããããããã®ç¹åŸŽãšå©çšã·ãŒã³ã«å¿ããéžæåºæºãçè§£ããããšã§ãã·ã¹ãã ã®æ§èœãšä¿¡é Œæ§ãé«ããããšãå¯èœã§ãããŸããããã§ã¯GTIDïŒGlobal Transaction IdentifierïŒã掻çšããã¬ããªã±ãŒã·ã§ã³èšå®ã®å©ç¹ã«ã€ããŠã説æããŸãã
éåæã¬ããªã±ãŒã·ã§ã³ãšæºåæã¬ããªã±ãŒã·ã§ã³ã®éã
1. éåæã¬ããªã±ãŒã·ã§ã³
éåæã¬ããªã±ãŒã·ã§ã³ã¯ããã¹ã¿ãŒãµãŒããŒããã©ã³ã¶ã¯ã·ã§ã³ãå®äºããæç¹ã§ãããã«ã¯ã©ã€ã¢ã³ãã«å¿çãè¿ããŸããã€ãŸããã¹ã¬ãŒããµãŒããŒãžã®ããŒã¿ã®åæãé å»¶ããŠããéã«ãããã¹ã¿ãŒã¯æ°ãããªã¯ãšã¹ããåŠçããããšãã§ããŸãããã®ãããå¿çæ§èœã«åªããŠãããè² è·åæ£ãç®çãšããã·ã¹ãã ã«é©ããŠããŸããããããé害çºçæã«ã¯ãã¹ã¬ãŒããµãŒããŒã«åæ ãããŠããªãããŒã¿ã倱ãããå¯èœæ§ãããç¹ã«æ³šæãå¿ èŠã§ãã
2. æºåæã¬ããªã±ãŒã·ã§ã³
æºåæã¬ããªã±ãŒã·ã§ã³ã¯ããã¹ã¿ãŒãµãŒããŒãã¹ã¬ãŒããµãŒããŒãžã®ããŒã¿è»¢éãå®äºããããšã確èªããåŸã«ãã¯ã©ã€ã¢ã³ããžå¿çãè¿ããŸããããã«ãããããŒã¿ã®æŽåæ§ãåäžããŸãããã¹ã¬ãŒããžã®åæ ãåŸ ã€åããã©ã³ã¶ã¯ã·ã§ã³ã®å¿çæéãé·ããªãå¯èœæ§ããããŸããæºåæã¬ããªã±ãŒã·ã§ã³ã¯ãé«ãããŒã¿æŽåæ§ãæ±ããããã·ã¹ãã ããããŒã¿ã®ä¿¡é Œæ§ãæåªå ã«ãããç°å¢ã«é©ããŠããŸãã
GTIDãæŽ»çšããã¬ããªã±ãŒã·ã§ã³
GTIDïŒGlobal Transaction IdentifierïŒã¯ãåãã©ã³ã¶ã¯ã·ã§ã³ã«äžæã®IDãä»äžãããã¹ã¿ãŒããã³ã¹ã¬ãŒãã§ãã©ã³ã¶ã¯ã·ã§ã³ã®æŽåæ§ãä¿ã€ä»çµã¿ã§ããGTIDãæå¹ã«ããããšã§ãåŸæ¥ã®ãã€ããªãã°äœçœ®æå®åã®ã¬ããªã±ãŒã·ã§ã³ãšæ¯ã¹ãã¬ããªã±ãŒã·ã§ã³ã®ç®¡çã容æã«ãªããŸãã
GTID ã®å©ç¹
- ããŒã¿æŽåæ§ã®åäžïŒGTIDã«ãããã¹ã¬ãŒãåŽã§é©çšãããŠããªããã©ã³ã¶ã¯ã·ã§ã³ãèªåçã«èªèã§ãããããããŒã¿æŽåæ§ãä¿ããããããªããŸãã
- ã¬ããªã±ãŒã·ã§ã³ç®¡çã®ç°¡ç¥åïŒGTIDã䜿çšãããšããã¹ã¿ãŒãã¹ã¬ãŒãã®åãæ¿ãã埩æ§äœæ¥ãå¹ççã«è¡ããŸãããã€ããªãã°ã®äœçœ®ãæå®ããå¿ èŠããªããªãããã管çãã·ã³ãã«ã«ãªããŸãã
GTID ã¬ããªã±ãŒã·ã§ã³ã®èšå®
GTIDãæŽ»çšããã«ã¯ããã¹ã¿ãŒãšã¹ã¬ãŒãã®èšå®ãã¡ã€ã«ã«ä»¥äžã®ãªãã·ã§ã³ã远å ããæå¹åããå¿ èŠããããŸãã
ãã¹ã¿ãŒãµãŒããŒã®èšå®
[mysqld]
server-id=1
log-bin=mysql-bin
gtid_mode=ON
enforce_gtid_consistency=ON
ã¹ã¬ãŒããµãŒããŒã®èšå®
[mysqld]
server-id=2
gtid_mode=ON
enforce_gtid_consistency=ON
read_only=ON
GTIDãæå¹ã«ããç°å¢ã§ã¯ãã¹ã¬ãŒãã«å¯ŸããŠCHANGE MASTER TO
ã³ãã³ãã䜿çšããŠãã¹ã¿ãŒã®æ
å ±ãèšå®ããã ãã§ãGTIDã«ããã¬ããªã±ãŒã·ã§ã³ãèªåçã«è¡ãããŸãã
次ã®ã»ã¯ã·ã§ã³ã§ã¯ãMySQLã¬ããªã±ãŒã·ã§ã³ã®ã¡ã³ããã³ã¹æ¹æ³ãšéçšç®¡çã«ãããç£èŠã®ãã€ã³ãã«ã€ããŠè§£èª¬ããŸãã

5. ã¬ããªã±ãŒã·ã§ã³ã®ã¡ã³ããã³ã¹ãšç£èŠ
MySQLã¬ããªã±ãŒã·ã§ã³ãé©åã«éçšããããã«ã¯ã宿çãªã¡ã³ããã³ã¹ãšç£èŠãæ¬ ãããŸããããã®ã»ã¯ã·ã§ã³ã§ã¯ãã¬ããªã±ãŒã·ã§ã³ãæ£åžžã«åäœããŠãããã確èªããããã®ã³ãã³ãããäžè¬çãªãšã©ãŒã«å¯Ÿããå¯ŸåŠæ¹æ³ã«ã€ããŠè§£èª¬ããŸãã
ã¬ããªã±ãŒã·ã§ã³ã®ã¹ããŒã¿ã¹ç¢ºèªæ¹æ³
ã¬ããªã±ãŒã·ã§ã³ã®ç¶æ ãææ¡ããããã«ã以äžã®ã³ãã³ãã䜿çšããŠããã¹ã¿ãŒãšã¹ã¬ãŒãéã®åæç¶æ³ã確èªããŸãã
ãã¹ã¿ãŒã®ç¶æ 確èª
ãã¹ã¿ãŒãµãŒããŒã§ã®ã¬ããªã±ãŒã·ã§ã³ç¶æ
ã¯ãSHOW MASTER STATUS
ã³ãã³ãã§ç¢ºèªã§ããŸãããã®ã³ãã³ãã«ãããçŸåšã®ãã€ããªãã°ãã¡ã€ã«åãããžã·ã§ã³ïŒäœçœ®ïŒã衚瀺ãããã¹ã¬ãŒãã«æž¡ãããã¹ãææ°ã®æŽæ°å
容ã確èªã§ããŸãã
SHOW MASTER STATUS;
ãã®ã³ãã³ãã®åºåã«ã¯ã以äžã®ãããªé ç®ãå«ãŸããŸãã
File
ïŒãã¹ã¿ãŒãåºåããŠããçŸåšã®ãã€ããªãã°ãã¡ã€ã«åPosition
ïŒãã€ããªãã°å ã§ã®çŸåšã®äœçœ®Binlog_Do_DB
ãšBinlog_Ignore_DB
ïŒã¬ããªã±ãŒã·ã§ã³å¯Ÿè±¡ã®ããŒã¿ããŒã¹
ã¹ã¬ãŒãã®ç¶æ 確èª
ã¹ã¬ãŒããµãŒããŒã®ã¬ããªã±ãŒã·ã§ã³ç¶æ³ã¯ãSHOW SLAVE STATUS
ã³ãã³ãã§ç¢ºèªã§ããŸãããã®ã³ãã³ãã®çµæã«ã¯ãã¹ã¬ãŒããµãŒããŒãæ£åžžã«åäœããŠãããã倿ããããã®æ
å ±ãå«ãŸããŸãã
SHOW SLAVE STATUS\G;
éèŠãªé ç®ãšããŠã以äžãæããããŸãã
Slave_IO_Running
ãšSlave_SQL_Running
ïŒã©ã¡ããYes
ã§ããã°ãã¹ã¬ãŒããæ£åžžã«çšŒåããŠããããšã瀺ããŸããSeconds_Behind_Master
ïŒã¹ã¬ãŒãããã¹ã¿ãŒã«ã©ãã ãé ããŠãããïŒç§æ°ïŒã瀺ããéåžžããã®å€ã0ã§ããããšãçæ³ã§ãã
ã¬ããªã±ãŒã·ã§ã³ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°
ã¬ããªã±ãŒã·ã§ã³ã®éçšäžã«çºçããããåé¡ã«ã¯ãæ¥ç¶ãšã©ãŒãããŒã¿äžæŽåãªã©ãå«ãŸããŸãã以äžã¯ãäžè¬çãªãšã©ãŒã¡ãã»ãŒãžãšãã®å¯ŸåŠæ³ã§ãã
1. æ¥ç¶ãšã©ãŒ
Slave_IO_Running
ãNo
ãšãªã£ãŠããå Žåãã¹ã¬ãŒãããã¹ã¿ãŒã«æ¥ç¶ã§ããŠããªãããšãæå³ããŸãã以äžã®å¯ŸåŠæ³ã詊ããŠãã ããã
- ãã¹ã¿ãŒãµãŒããŒã®ãã¹ãåãIPã¢ãã¬ã¹ã®ç¢ºèªïŒãã¹ã¿ãŒã®ã¢ãã¬ã¹ãæ£ããã確èªããŸãã
- ãã¡ã€ã¢ãŠã©ãŒã«ã®èšå®ç¢ºèªïŒå¿ èŠãªããŒãïŒéåžžã¯3306ïŒãéããŠããããšã確èªããŸãã
2. ããŒã¿äžæŽå
Last_Error
ã«ãšã©ãŒå
容ãèšèŒãããŠããå Žåããã¹ã¿ãŒãšã¹ã¬ãŒãéã®ããŒã¿äžæŽåãçºçããŠããå¯èœæ§ããããŸããããŒã¿äžæŽåãçºçããéã¯ãã¹ã¬ãŒããäžæŠåæ¢ããŠä¿®æ£ãå¿
èŠã§ãã
STOP SLAVE;
# ä¿®æ£åŸã«åé
START SLAVE;
3. é å»¶ã®è§£æ¶
ã¹ã¬ãŒããé å»¶ããåå ã«ã¯ãã¹ã¬ãŒãã®ããŒããŠã§ã¢æ§èœããããã¯ãŒã¯ã®åé¡ãèããããŸããå¿ èŠã«å¿ããŠãã¹ã¬ãŒãã®æ§æã匷åããããšã§æ¹åã§ããå ŽåããããŸãã
次ã®ã»ã¯ã·ã§ã³ã§ã¯ãã¬ããªã±ãŒã·ã§ã³ã«ããããã©ãã«ã®è©³çްãšãã®è§£æ±ºçã«ã€ããŠããã«æãäžããŸãã
6. ãããããã©ãã«ãšãã®å¯ŸåŠæ¹æ³
MySQLã¬ããªã±ãŒã·ã§ã³ã§ã¯ãéçšäžã«ããŸããŸãªãã©ãã«ãçºçããããšããããŸããããã§ã¯ããããããã©ãã«ãšãã®å¯ŸåŠæ¹æ³ã«ã€ããŠè©³ãã説æããŸããåé¡ãæ©æã«çºèŠããé©åã«å¯ŸåŠããããšã§ãã·ã¹ãã ã®å®å®çšŒåãç¶æããããšãå¯èœã§ãã
1. Slave_IO_Running ã忢ããŠããå Žå
çŸè±¡ïŒSHOW SLAVE STATUS
ã³ãã³ãã®åºåã§ãSlave_IO_Running
ãNo
ã«ãªã£ãŠããå Žåãã¹ã¬ãŒãããã¹ã¿ãŒã«æ¥ç¶ã§ããªãç¶æ
ã瀺ããŠããŸãã
åå ãšå¯ŸçïŒ
- ãããã¯ãŒã¯ã®åé¡ïŒãããã¯ãŒã¯æ¥ç¶ã«åé¡ãããå Žåãã¹ã¬ãŒãããã¹ã¿ãŒã«ã¢ã¯ã»ã¹ã§ããªããªããŸãããã¡ã€ã¢ãŠã©ãŒã«ã®èšå®ã確èªãããã¹ã¿ãŒã«ã¢ã¯ã»ã¹å¯èœãªç¶æ ãã確èªããŸãã
- ãã¹ã¿ãŒã®ãã¹ãåãŸãã¯IPã¢ãã¬ã¹ã®èšå®ãã¹ïŒ
CHANGE MASTER TO
ã§æå®ãããã¹ãåãŸãã¯IPã¢ãã¬ã¹ãééã£ãŠããªãã確èªããŠãã ããã - ãŠãŒã¶ãŒæš©éã®åé¡ïŒãã¹ã¿ãŒåŽã§èšå®ããã¬ããªã±ãŒã·ã§ã³ãŠãŒã¶ãŒã«ååãªæš©éããªãå Žåãæ¥ç¶ã«å€±æããŸãã
GRANT REPLICATION SLAVE
ã§æ£ããæš©éãä»äžãããŠããã確èªããŸãããã
2. ã¹ã¬ãŒãã®ããŒã¿äžæŽå
çŸè±¡ïŒã¹ã¬ãŒããšãã¹ã¿ãŒã§ããŒã¿ãäžèŽããªãå Žåãã¹ã¬ãŒãã®ããŒã¿ãäžæŽåãªç¶æ ã«ãªãããšããããŸãã
åå ãšå¯ŸçïŒ
- ããŒã¿ã®æåä¿®æ£ïŒäžæŽåãçºçããå Žåãã¹ã¬ãŒãã忢ããåé¡ã®ãã©ã³ã¶ã¯ã·ã§ã³ãæåã§ä¿®æ£ããŸããä¿®æ£åŸã«ã¹ã¬ãŒããåéããããšã§ãã¬ããªã±ãŒã·ã§ã³ãæ£åžžã«æ»ããŸãã
STOP SLAVE; # å¿ èŠã«å¿ããŠããŒã¿ãä¿®æ£ START SLAVE;
- ããŒã¿ã®ååæïŒå€§èŠæš¡ãªäžæŽåãçºçããŠããå Žåããã¹ã¿ãŒããããŒã¿ã®ãã«ããã¯ã¢ãããååŸããã¹ã¬ãŒãã«ååæãè¡ãããšã§è§£æ±ºã§ããŸãã
3. ã¬ããªã±ãŒã·ã§ã³ã®é å»¶
çŸè±¡ïŒSHOW SLAVE STATUS
ã®åºåã§Seconds_Behind_Master
ã0ã§ãªãå Žåãã¹ã¬ãŒãããã¹ã¿ãŒããé
å»¶ããŠããããšã瀺ããŸããéåžžããã®å€ãå°ããã»ã©çæ³çã§ãã
åå ãšå¯ŸçïŒ
- ã¹ã¬ãŒãã®ããŒããŠã§ã¢æ§èœïŒã¹ã¬ãŒãã®ãµãŒããŒã¹ããã¯ãäœãå ŽåãåŠçã远ãã€ããã«é å»¶ãçºçããããšããããŸããããŒããŠã§ã¢ã®ã¢ããã°ã¬ãŒãã广çã§ãã
- ã¯ãšãªã®æé©åïŒãã¹ã¿ãŒããéãããã¯ãšãªãã¹ã¬ãŒãäžã§å®è¡ããéã«æéããããå Žåãé å»¶ãçºçããŸããã€ã³ããã¯ã¹ã®è¿œå ãã¯ãšãªã®æé©åãè¡ããåŠçæéãççž®ããããšãæå¹ã§ãã
4. ã¬ããªã±ãŒã·ã§ã³ãŠãŒã¶ãŒã®æš©éãšã©ãŒ
çŸè±¡ïŒLast_Error
ã«æš©éã«é¢ãããšã©ãŒã¡ãã»ãŒãžã衚瀺ãããå Žåãã¹ã¬ãŒãããã¹ã¿ãŒãžã®æ¥ç¶ã«å¿
èŠãªæš©éãæã£ãŠããªãå¯èœæ§ããããŸãã
åå ãšå¯ŸçïŒ
- åèšå®ã«ããæš©éä»äžïŒãã¹ã¿ãŒäžã§é©åãªæš©éãæã€ãŠãŒã¶ãŒãäœæãããŠããã確èªããå¿
èŠã§ããã°åèšå®ãè¡ããŸãã
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'ã¹ã¬ãŒãã®IPã¢ãã¬ã¹'; FLUSH PRIVILEGES;
5. ãã€ããªãã°ã®è¥å€§å
çŸè±¡ïŒãã¹ã¿ãŒã®ãã€ããªãã°ãè¥å€§åãããµãŒããŒã®ãã£ã¹ã¯å®¹éãå§è¿«ãããããšããããŸãã
åå ãšå¯ŸçïŒ
- ãã€ããªãã°ã®ããŒããŒã·ã§ã³ïŒå®æçã«ãã€ããªãã°ãåé€ãŸãã¯ã¢ãŒã«ã€ãããããšã§ãè¥å€§åãé²ããŸãã
expire_logs_days
ãèšå®ããããšã§ãäžå®æéçµéãããã°ãèªååé€ããããšãå¯èœã§ããSET GLOBAL expire_logs_days = 7; # 7æ¥ä»¥äžã®ãã°ãåé€
ãã®ããã«ãMySQLã¬ããªã±ãŒã·ã§ã³ã§ãããããã©ãã«ãšãã®è§£æ±ºçãææ¡ããããšã§ãã¹ã ãŒãºãªéçšç®¡çãå¯èœã«ãªããŸããæ¬¡ã®ã»ã¯ã·ã§ã³ã§ã¯ãèšäºã®ãŸãšããšããŠãã¬ããªã±ãŒã·ã§ã³éçšã®ãã€ã³ããæ¯ãè¿ããŸãã

7. ãŸãšã
MySQL ã¬ããªã±ãŒã·ã§ã³ã¯ãããŒã¿ã®æŽåæ§ãã·ã¹ãã ã®ä¿¡é Œæ§ãé«ããããã«éèŠãªæ©èœã§ããæ¬èšäºã§ã¯ãMySQLã¬ããªã±ãŒã·ã§ã³ã®åºæ¬æŠå¿µããã»ããã¢ããæé ãéçšç®¡çã«ãããç£èŠããã©ãã«ã·ã¥ãŒãã£ã³ã°ãŸã§ã詳ãã解説ããŸãããæåŸã«ãã¬ããªã±ãŒã·ã§ã³ã®éçšç®¡çã«ãããéèŠãªãã€ã³ãã以äžã«ãŸãšããŸãã
éèŠãªãã€ã³ãã®æ¯ãè¿ã
- ã¬ããªã±ãŒã·ã§ã³ã®çš®é¡ãšéžæ
- éåæã¬ããªã±ãŒã·ã§ã³ã¯å¿çé床ã«åªããè² è·åæ£ã«æé©ã§ãããä¿¡é Œæ§ãæ±ããå Žåã«ã¯æºåæã¬ããªã±ãŒã·ã§ã³ãé©ããŠããŸããã·ã¹ãã ã®èŠä»¶ã«å¿ããŠé©åãªæ¹åŒãéžæããŸãããã
- GTIDã®æå¹æŽ»çš
- GTIDãæŽ»çšããããšã§ããã€ããªãã°ã®äœçœ®æå®ãå¿ èŠãšãããã¹ã ãŒãºãªãã©ã³ã¶ã¯ã·ã§ã³ç®¡çãå¯èœã§ããç¹ã«ãè€æ°ã®ã¹ã¬ãŒããããç°å¢ãé害埩æ§ãéèŠãªã·ã¹ãã ã«ãããŠåœ¹ç«ã¡ãŸãã
- 宿çãªã¹ããŒã¿ã¹ã®ç¢ºèª
SHOW MASTER STATUS
ãSHOW SLAVE STATUS
ã³ãã³ããçšããŠããã¹ã¿ãŒããã³ã¹ã¬ãŒãã®çšŒåç¶æ³ã宿çã«ç£èŠããããšãéèŠã§ããç°åžžãæ€ç¥ãããå Žåã«ã¯è¿ éã«å¯ŸåŠããããšã§ãããŒã¿äžæŽåãé å»¶ã®ãªã¹ã¯ãæå°éã«æããããŸãã
- äžè¬çãªãã©ãã«ã·ã¥ãŒãã£ã³ã°ã®ç¿åŸ
- ã¹ã¬ãŒãã®æ¥ç¶ãšã©ãŒãããŒã¿äžæŽåãé å»¶ãªã©ãMySQLã¬ããªã±ãŒã·ã§ã³ã«ã¯ç¹æã®ãã©ãã«ãçºçããã¡ã§ããããããã®åé¡ã«å¯Ÿããåºæ¬çãªè§£æ±ºæ¹æ³ãçè§£ããŠããããšã§ãéçšäžã®ãã©ãã«å¯Ÿå¿ãã¹ã ãŒãºã«è¡ããŸãã
- ãã€ããªãã°ã®ç®¡ç
- ãã€ããªãã°ãè¥å€§åãããšãµãŒããŒã®ãã£ã¹ã¯å®¹éãå§è¿«ãããããã
expire_logs_days
èšå®ã掻çšããŠèªååé€ãèšå®ãã宿çã«ã¡ã³ããã³ã¹ãè¡ãããšãæšå¥šãããŸãã
MySQL ã¬ããªã±ãŒã·ã§ã³ã¯äžåºŠèšå®ããã°çµããã§ã¯ãªããæ¥ã ã®ç£èŠãšé©åãªã¡ã³ããã³ã¹ãæ¬ ãããŸããã宿çã«ç¶æ ã確èªããå¿ èŠã«å¿ããŠèšå®ã®èŠçŽããè¡ãããšã§ãä¿¡é Œæ§ã®é«ãããŒã¿ããŒã¹ã·ã¹ãã ãæ§ç¯ã»ç¶æããããšãã§ããŸãã
æ¬èšäºãMySQLã¬ããªã±ãŒã·ã§ã³ã®çè§£ãšå®è£ ã«åœ¹ç«ã€ãã®ãšãªãã°å¹žãã§ããä»åŸã®ã¬ããªã±ãŒã·ã§ã³éçšãã¹ã ãŒãºã§ããããšãé¡ã£ãŠããŸãã