レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン ã§ãæ²ããã´ã¼ã«ã§ãããããã¹ã¿ãè½ã¡ã¦ããã¼ããå¯ã¦ããããããã«ãããããã»ã¼ã§ããã®ã§ãã»ã¨ãã©ãµã¼ãã¹ãåæ¢ãããã¨ãªãããã§ã¤ã«ãªã¼ãããæ§ãã¹ã¯ãªã¼ã³ãã£ã¹ãã«åãã¾ããã
åãè¾¼ã¿ãã¬ã¤ã¤ã¼ã ã¨ãå°ããã¦ããããªãã¨æãã®ã§ããªã³ã¯ç´æ¥ã§ã¿ã¦ãã ããã
http://www.irori.org/pub/mysql-mm.mov
ç»å ´ãããã¹ã
ç»å ´ãããã¹ãã¯2å°ãdb901ã¨db902ã§ãã
æåã¯ãdb901ãæ´æ°ç³»ã¯ã¨ãªãåãããã©ã¤ããªã§db900ã®æµ®åIPã¢ãã¬ã¹ãæã£ã¦ãã¾ãã
ç»é¢åå²
ç»é¢ã¯5åå²ãã¦ãã¾ãã
åç»ã®è§£èª¬
- 00:00
- ã¯ãã¾ãã¯ãã¾ããdb900ã«å¯¾ããselectãdb900,db901,db902ã«å¯¾ããpingããã¹ã¦æ£å¸¸ã«æµãã¦ãããselectã®server_idã¯ãdb901ã®ãã®ã§ããã901ããè¿ã£ã¦ãã¦ããã®ãè¦ãã¦ããã¦ãã ããã
- 00:11
- ãã®æç¹ã§ã®ãã©ã¤ããªã§ãããdb901ãå¼·å¶çµäºãããå¼·å¶çµäºã«ã¯ SysRq ã使ã£ã¦ãã«ã¹ã£ã¨è½ã¨ã (# echo b > /proc/sysrq-trigger)
- 00:12
- db901ãåæ¢ããã®ã§ãdb901ã«å¯¾ããpingãã¨ã¾ããdb901ã¯db900ã§ããã£ãã®ã§ãdb900ã«å¯¾ããpingã¨db900ã«å¯¾ããselectãæ¢ã¾ãã
- 00:17
- é¦å°¾ãããã§ã¤ã«ãªã¼ããå®äºããdb902ãdb900ã¨ãªã£ãã®ã§ãdb900ã«å¯¾ããpingã¨db900ã«å¯¾ããselectãå復(server_idãã901ãããã902ãã«å¤ãã£ã¦ããç¹ã«æ³¨ç®ï¼)ãããyay!
ãã§ã¤ã«ãªã¼ãã®ã¡ã«ããºã
ä»åã®ã±ã¼ã¹ã§ã¯ãåæ¢ãã 5 ç§å¾ã«ã¯ã
- ç°å¸¸ã®æ¤ç¥
- ãã©ã¤ããªã®ãã§ã¤ã«ãªã¼ã
ãå®äºãã¦ãã¾ãã
ãã§ã¤ã«ãªã¼ãã®ã¡ã«ããºã ã¯ãレプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン ã® ã<ã»ã«ã³ããªããã©ã¤ããªã«ææ ¼>ãã«æ¸ããéããªãã§ãããç£è¦ã¨ãã®ãã§ã¤ã«ãªã¼ãå¦çã®å®è£ ã¯ã
- keepalived --vrrp
- MySQLã®L7ã¬ãã«ã®ç£è¦ãããã¹ã¯ãªãã (check-service.db)
- ç¶æ
å¤æ´æã«ããããã®å¦çãããã¹ã¯ãªãã (trigger-vrrp.db)
- keepalived.confã®notifyããcheck-service.db ããå®è¡ããã
ã§è¡ã£ã¦ã¾ãã
ãã¨ãã
ããã§ãæ£æã¯å®å¿ãã¦ããã¡ããã¹ããããã§ã ï¼¾Ïï¼¾