æ°ãã倧ããªãããžã§ã¯ãã§ããBitrix24ãèšèšãéçºãããã³ç«ã¡äžããéã«ãããŒã ã¯ãŒã¯ïŒããã³ç¡æ-æ倧12ãŠãŒã¶ãŒïŒåãã®éåžžã«ã¯ãŒã«ãªãµãŒãã¹ãäœæããã ãã§ãªããã¯ã©ãŠãã®éçšçµéšãåéããŠèç©ããããšèããŸããWebãµãŒãã¹ãé«è² è·ã®ãã©ãŒã«ããã¬ã©ã³ããããžã§ã¯ãã®éçºèœåãã掻çšãããæãéèŠãªããšã¯ããã®ç¥èãããŒãããŒããã³ãé«è² è·ãã®ãããã¯ã«è¿ããã¹ãŠã®Webéçºè ãšå ±æããããšã§ãã :)
ãã¡ããã1ã€ã®èšäºïŒ1ã€ã§ããªãïŒã§ã絶察ã«ãã¹ãŠã®ãããžã§ã¯ãã«é©ããæ®éçãªãã¬ã·ããã説æããããšã¯äžå¯èœã§ããäžéšã®äººã«ãšã£ãŠã¯ãçç£æ§ãããéèŠã§ãïŒä¿¡é Œæ§ãæãªãå ŽåããããŸãïŒããšããããã©ããã«å€ãã®å°ããªããŒãã«ããããã©ããã«å€§éã®ããŒã¿ããã...
ç¹å®ã®å®çšçãªåé¡ã解決ããäžã§ãç§ãã¡ã®ä»äºã«äœåºŠã圹ç«ã£ãŠããããã€ã©ã€ããã説æããããšããŸããã ãããã圹ã«ç«ã€ããšãé¡ã£ãŠããŸãã :)
é çªã«å§ããŸãããã
Bitrix24ã Amazonã«ãããã€ãããŠããããšããã§ã«äœåºŠãè¿°ã¹ã æžããŠããŸãã ãããŠãç§ãã¡ã¯ããŸããŸãªã¯ã©ãŠããµãŒãã¹ãæããç©æ¥µçã«äœ¿çšããŠãããããæåã®è³ªå...
1.ãªãRDSã䜿çšããªãã®ã§ããïŒ
Amazon Relational Database Service ïŒAmazon RDSïŒã¯ã¯ã©ãŠãããŒã¹ã®ããŒã¿ããŒã¹ã§ãã MS SQLãOracleãããã³-ç§ãã¡ã«ãšã£ãŠèå³æ·±ããã®-MySQLã®ãµããŒãããããŸãã
ç§ãã¡ã¯é·ãéãã£ãšèŠã€ããŠããŸãããããããžã§ã¯ãã§ããã䜿ããããšæããŸãã...ãã®çµæãç§ãã¡ã¯ãã®èããæšãŠãŸããã ããã€ãã®äž»ãªçç±ïŒ
- 第äžã«ãã·ã¹ãã ã¯æè»æ§ãšééæ§ãååã§ã¯ãããŸããã ããšãã°ãããŒã¿ããŒã¹ãžã®å®å šãªã«ãŒãã¢ã¯ã»ã¹ãååŸããŸããã ãããŠããã¯ãç¹å®ã®ïŒç¹ã«ãããžã§ã¯ãçšã®ïŒç¹å®ã®èšå®ãæ©èœããªãå Žåãããããšãæå³ããŸãã
- äºæ ãçºçãããšãé·æéã®ããŠã³ã¿ã€ã ãçºçãããªã¹ã¯ããããŸãã ãããŠãå®éã«ã¯ããã®ãªã¹ã¯ã¯éåžžã«çŸå®çã§ãã ã¯ãã1ã€ã®ãŸãŒã³ã®ã¿ã«ããããŒã¹ãããé »ç¹ã«åœ±é¿ãåãããããããã«ãAZ DBã€ã³ã¹ã¿ã³ã¹ã䜿çšããŠãã©ãŒã«ããã¬ã©ã³ã¹ã確ä¿ã§ããŸãã ããã-ãããã«ã€ããŠããã«...
- ããŒã¿ããŒã¹ã«ãã«ãAZ DBã€ã³ã¹ã¿ã³ã¹ã䜿çšããå Žåãã¹ã¿ã³ãã€ããã¯ã¢ããã¯åžžã«å¥ã®AZïŒã¢ãã€ã©ããªãã£ãŸãŒã³ïŒã«æžã蟌ãŸããæåã®ãŸãŒã³ã§ã®äºæ ã®å Žåãèªåçã«å¥ã®ãŸãŒã³ã«åãæ¿ãããŸãã ãã ãããã®å ŽåãããŒã¹ãæã€1ã€ã®ã€ã³ã¹ã¿ã³ã¹ã®ã³ã¹ãã¯ãã¡ããã©2åé«ããªããŸãã åæã«ããŠãŒã¶ãŒã¯1å°ã®ãã·ã³ã®ãªãœãŒã¹ã®ã¿ãå¹æçã«äœ¿çšããŸãïŒå ã»ã©èª¬æãããã¹ã¿ãŒã¬ããªã±ãŒã·ã§ã³ã¹ããŒã ãšã¯ç°ãªããŸãïŒã
ããã¯ãã¹ãŠãRDSãäžé©åãªãµãŒãã¹ã§ããããšãæå³ãããã®ã§ã¯ãªãã䜿çšããªãã§ãã ããã ããã§ã¯ãããŸããã 圌ã¯ç§ãã¡ã«ç¹ã«åã£ãŠããŸããã§ããã ãããŠãããããã誰ããAmazonããŒã«ã䜿çšããŠæ£ç¢ºã«ã¹ã±ãŒãªã³ã°ãšãã©ãŒã«ããã¬ã©ã³ã¹ãæäŸããæ¹ãã¯ããã«ç°¡åã«ãªãã§ãããã
2.ãã¹ã¿ãŒã¹ã¬ãŒãã§ããïŒ ãããããã¹ã¿ãŒãã¹ã¿ãŒïŒ
MySQLã®æšæºã®ãã¹ã¿ãŒã¹ã¬ãŒãã¬ããªã±ãŒã·ã§ã³ã¹ããŒã ã¯ãå€ãã®ãããžã§ã¯ãã§é·ãé䜿çšãããããã€ãã®åé¡ã解決ããŠããŸããè² è·ã¹ã±ãŒãªã³ã°ïŒèªã¿åãå°çšïŒ-ã¹ã¬ãŒããžã®ã¯ãšãªïŒSELECTïŒã®åé åžããã©ãŒã«ããã¬ã©ã³ã¹ã
ãããã決å®-å®å šã§ã¯ãããŸããã
1.ã¹ã±ãŒãªã³ã°ããŠèšé²ãããã
2.ä¿¡é Œã§ãããã§ã€ã«ãªãŒããŒãå®çŸããäºæ ãçºçããå Žåã«èªåçã«åäœãç¶ãããïŒãã¹ã¿ãŒã§ã®äºæ ã®å Žåã®ãã¹ã¿ãŒ/ã¹ã¬ãŒãã§ã¯ãæåã¢ãŒããŸãã¯åèªåã¢ãŒãã§ã¹ã¬ãŒãã®1ã€ããã¹ã¿ãŒã®åœ¹å²ã«åãæ¿ããå¿ èŠããããŸãïŒ
ãããã®åé¡ã解決ããããã«ãããã¹ã¿ãŒ-ãã¹ã¿ãŒãã¬ããªã±ãŒã·ã§ã³ã䜿çšããŸãã ç¹°ãè¿ããŸãããæè¿ãHabréã®å¥ã®æçš¿ããã®ææ³ã«åœãŠãããŠããŸãã
3. MySQLïŒ ããããPercona ServerïŒ
æåã®æ°ã¶æïŒãããã¿ã€ããéçºããã»ã¹ããµãŒãã¹ã®ã¯ããŒãºãããŒã¿ãã¹ãã®éå§æïŒã§ãæšæºMySQLã«åãçµã¿ãŸããã ãããŠã圌ããé·ãåãã»ã©ã圌ãã¯ããŸããŸãªãã©ãŒã¯ãããèŠãŸããã æãèå³æ·±ãã®ã¯ãç§ãã¡ã®æèŠã§ã¯ã Percona ServerãšMariaDBã§ããã
æçµçã«ãPerkonãéžæããŸãã-ãã¡ãããåæ§ã®ãå転ãããŽãããããã§ãã ;ïŒ
...ãããŠãç§ãã¡ã«ãšã£ãŠéåžžã«éèŠã§ããããšãå€æããããã€ãã®æ©èœïŒ
- Percona Serverã¯ãäœéãã£ã¹ã¯ã§ã®äœæ¥ã«æé©åãããŠããŸãã ããã¯ãã¯ã©ãŠããã«ã€ããŠãéåžžã«åœãŠã¯ãŸããŸããåŸæ¥ã®ãã©ã€ãã¯ããã¢ã€ãã³ããµãŒããŒã®éåžžã®ãã©ã€ããããïŒæ®å¿µãªããïŒã»ãšãã©åžžã«äœéã§ãã ãœãããŠã§ã¢ RAIDã®ç·šæã¯åé¡ãããŸã解決ããŸãïŒRAID-10ã䜿çšããŸãïŒãããµãŒããŒåŽã®æé©åã¯ãã©ã¹ã«ãããŸããã
- ïŒå€§éã®ããŒã¿ãå«ãïŒããŒã¿ããŒã¹ã®åèµ·åã¯ãè²»çšã®ãããé·æéã®æäœã§ãã Perconã«ã¯ãé«éã·ã£ããããŠã³ããããã¡ããŒã«ã®ããªããŒããªã©ãã¯ããã«é«éã«åèµ·åã§ããå€æ°ã®æ©èœããããŸãã åŸè ã䜿çšãããšãåèµ·åäžã«ãããã¡ããŒã«ã®ç¶æ ãä¿åã§ãããããéå§çŽåŸã«ããŠã©ãŒã ã¢ãããããŒã¹ãååŸã§ããŸãïŒé·æéãããããšã¯ãããŸããïŒã
- å€ãã®ã«ãŠã³ã¿ãŒãšé«åºŠãªã¬ããŒãïŒãŠãŒã¶ãŒãããŒãã«ãSHOW ENGINE INNODB STATUSã®æ¡åŒµåºåãªã©ïŒãããšãã°ãã·ã¹ãã ãããŒãããæããã¯ã©ã€ã¢ã³ãããèŠã€ããã®ã«åœ¹ç«ã¡ãŸãã
- XtraDBã¹ãã¬ãŒãžãšã³ãžã³-æšæºã®InnoDBãšã®åŸæ¹äºææ§ããããŸãããé«è² è·ãããžã§ã¯ãçšã«æé©åãããŠããŸãã
å®å šãªãªã¹ãã¯ã PerconaãµãŒããŒæ©èœã®æ¯èŒã»ã¯ã·ã§ã³ã® Webãµã€ãã«ãããŸã ã
éèŠãªãã€ã³ã-æšæºã®MySQLããPercona Serverãžã®ç§»è¡ã§ã¯ãã³ãŒããã¢ããªã±ãŒã·ã§ã³ããžãã¯ãå€æŽããå¿ èŠã¯ãããŸããã§ããã
ãããŠãããã§ãã移åãã®ããã»ã¹ã¯éåžžã«èå³æ·±ããã®ã§ããã ãŸããããã¹ã¿ãŒ-ãã¹ã¿ãŒãã¬ããªã±ãŒã·ã§ã³ã§ã¹ããŒã ã䜿çšãããããã§ããŠãŒã¶ãŒã«ã¯ãŸã£ããæ°ä»ãããŸããã§ããã åã«ããŠã³ã¿ã€ã ã¯ãããŸããã§ããã
移åã¹ããŒã ã¯æ¬¡ã®ãšããã§ãã
- ããŒããã¹ããã-ã¹ãããã·ã§ãããã·ã³ã®ãã¹ããã³ãããå®éã®ããŒã¿ãããŒã¹ã«äžããŸããã ãããŠãå®å®ããåäœã®ããã«æ§æã®ãããã°ãéå§ããŸããã ãããŠããã¡ãããæ§æãã¡ã€ã«ã§Perconaåºæã®ãªãã·ã§ã³ãéžæããŸãã
- å®å®ããæ§æãåãåã£ãã®ã§ããã¹ãŠã®ãã©ãã£ãã¯ã1ã€ã®DCã«åãæ¿ããããŒã¿ããŒã¹ã¯è² è·ãªãã§ã¬ããªã±ãŒã·ã§ã³ãããªãã«åãæ¿ããããŸããã
- ããã«åºã¥ããŠãPercona Serverã«ç§»è¡ããŸããã
- ã¬ããªã±ãŒã·ã§ã³ã«ããŒã¹ãå«ããŸããïŒæšæºã®MySQLããã³Percona ServeräºæïŒã
- ããŒã¿ã®åæãåŸ æ©ããŸããã
- ãã®åŸã2çªç®ã®ããŒã¹ã§åãæé ãå®è¡ããŸããã
4. MyISAMïŒ InnoDBïŒ
ããã§ã¯ãã¹ãŠãç°¡åã§ãã
- MyISAMã®é·ãã¯ãšãªã§ã¯ãããŒãã«å šäœãããã¯ãããŸãã InnoDBã§ã¯ã䜿çšããè¡ã®ã¿ã ãããã£ãŠãInnoDBã§ã¯ãé·ããªã¯ãšã¹ããä»ã®ãªã¯ãšã¹ãã«åœ±é¿ãäžããå¯èœæ§ã¯äœãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«ã¯åœ±é¿ããŸããã
- 倧éã®ããŒã¿ã§é«è² è·ã®å ŽåãMyISAMããŒãã«ãç ŽæããŸãã ããã¯æ¢ç¥ã®äºå®ã§ãã ããã¯åœç€Ÿã®ãµãŒãã¹ã§ã¯åãå ¥ããããŸããã
- ãã¡ããããæ¹åããããInnoDB-XtraDBãããããããã®ã¹ãã¬ãŒãžãšã³ãžã³ã䜿çšããŸãã :)
* * *
ã¢ãŒããã¯ãã£ã®åé¡ããããå®çšçãªåé¡ã«ç§»è¡ããŸãã :)
5.ãã¹ãŠã®ããŒã¿ãè€è£œããå¿ èŠããããŸããïŒ ãããããã¹ãŠã§ã¯ãããŸããã
ã»ãšãã©ãã¹ãŠã®ãããžã§ã¯ãã«ã¯ãæ倱ãéèŠãªããŒã¿ãŸãã¯å埩å¯èœãªããŒã¿ããããŸãã å«ã-ããã³ããŒã¿ããŒã¹å ã
ç§ãã¡ã®å Žåããã®ãããªããŒã¿ã¯ã»ãã·ã§ã³ã§ããã ãã¹ãŠãè€è£œããããšã®äœãåé¡ã«ãªããŸãããïŒ
- ã»ãã·ã§ã³ããŒãã«ã«ã¯ãSELECTãšãšãã«ãå€ãã®æžã蟌ã¿æäœïŒINSERTãUPDATEãDELETEïŒããããŸãã ããã¯ãã¹ã¬ãŒãããŒã¹ã«äœåãªè² è·ããããããšãæå³ããŸãã åé¿ã§ããè² è·ã
- ããã«ãquery_cache_sizeã®å€ãååã«å€§ãããšããããã®ããŒãã«ã§ã®ã¢ã¯ãã£ããªäœæ¥ãšã¬ããªã±ãŒã·ã§ã³ãžã®åå ã«ãããå€ãã®ã¹ã¬ãããã ã¯ãšãªãã£ãã·ã¥ããã¯ã®åŸ æ©ãç¶æ ïŒSHOW PROCESSLISTã§è¡šç€ºïŒã§ãããªãŒãºããããšããäºå®ã«çŽé¢ããŸã ã ããã«ãããã«ã¯CPUã®è² è·ã®å¢å ãšããã©ãŒãã³ã¹ã®äžè¬çãªäœäžã䌎ããŸãã
ãã®ããŒã¿ãã¬ããªã±ãŒã·ã§ã³ããé€å€ããããšã§ãåé¡ã¯å®å šã«è§£æ±ºããŸããã
é€å€ããæ¹æ³ã¯ïŒ ããŸããŸãªæ¹æ³ããããŸãã
1.ã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã§ãã¬ããªã±ãŒã·ã§ã³ããé€å€ããããŒãã«ãæäœããŠããæ¥ç¶ã§ã以äžãå®è¡ããŸãã
SET sql_log_bin = 0;
2.ããç°¡åã§çŽæçãªæ¹æ³ã¯ãMySQLæ§æãã¡ã€ã«ã§äŸå€ãæå®ããããšã§ãã
replicate-wild-ignore-table = %.b_sec_session
ãã®èšèšã§ã¯ããã¹ãŠã®ããŒã¿ããŒã¹ã®b_sec_sessionããŒãã«ãã¬ããªã±ãŒã·ã§ã³ããé€å€ãããŸãã
ããè€éãªããžãã¯ãå¿ èŠãªå Žåããã¹ãŠãå°ãè€éã«ãªããŸãã ããšãã°ã dbããŒã¿ããŒã¹ãé€ããã¹ãŠã®ããŒã¿ããŒã¹ã§ããŒãã«ããŒãã«ãã¬ããªã±ãŒãããªãã§ãã ããã
ãã®å Žåããªãã·ã§ã³ã®é©åãªçµã¿åããã§ãããã£ã«ã¿ãŒãäœæããã«ã¯ãMySQLãæäŸãããããªåè·¯å³ãäœæããå¿ èŠããããŸãã
- ããŒã¿ããŒã¹ã¬ãã«ã®ã¬ããªã±ãŒã·ã§ã³ãšãã€ããªãã°ãªãã·ã§ã³ã®è©äŸ¡
- ããŒãã«ã¬ãã«ã®è€è£œãªãã·ã§ã³ã®è©äŸ¡
6.ã¬ããªã±ãŒã·ã§ã³ã®ã¿ã€ãã
å€ãã®è«äºã«ãããSTATEMENTããŒã¹ã®ã¬ããªã±ãŒã·ã§ã³ã䜿çšããã®ããROWããŒã¹ã®ã¬ããªã±ãŒã·ã§ã³ã䜿çšããã®ããšããçåãçããŸãã ãããšä»ã®ãªãã·ã§ã³ã¯äž¡æ¹ãšããã©ã¹ãšãã€ãã¹ã®äž¡æ¹ãæã£ãŠããŸãã
ããã©ã«ãã§ã¯ãMySQLïŒPerconaïŒ5.5ã¯STATEMENTããŒã¹ã®ã¬ããªã±ãŒã·ã§ã³ã䜿çšããŸãã
ãã®æ§æã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããã°ã§æ¬¡ã®è¡ãå®æçã«ç¢ºèªããŸããã ãã¹ããŒãã¡ã³ãã¯ã¹ããŒãã¡ã³ã圢åŒã§ãã°ã€ã³ããŠãå®å šã§ã¯ãªãå¯èœæ§ããããŸãã ã
ããã«ããã¹ã¿ãŒè€è£œãã¹ã¿ãŒã®2ã€ã®ããŒã¿ããŒã¹ãæ¯èŒãããšãããŒã¿ã«ççŸãããå¯èœæ§ããããŸãã ãã¡ãããããã¯åãå ¥ããããŸããã§ããã
MySQLã«ã¯ç§ãã¡ã«å®å šã«åã£ãèå³æ·±ããœãªã¥ãŒã·ã§ã³ããããŸã-MIXED binlog圢åŒã䜿çšããŠãã ããïŒ
binlog-format = mixed
ãã®å Žåãããã©ã«ãã§ã¯ãã¬ããªã±ãŒã·ã§ã³ã¯STATEMENTã¢ãŒãã§ããããã®ãããªå®å šã§ãªãæäœã®å Žåã«ã®ã¿ROWã«åãæ¿ãããŸãã
7.è€è£œãå£ããŠããŸãã ã©ããã
è€è£œããŸã äžæããå ŽåããããŸãã ç¹ã«æãïŒæåã¯:)ïŒããã¹ã¿ãŒãã¹ã¿ãŒãã§äœæ¥ãããšãã«èãããŸãã
å®éãå¿é ããããšã¯ãããŸããã çå®ã¯ã :)
ãŸãã 説æãããŠãããã¹ã¿ãŒ-ãã¹ã¿ãŒè€è£œã¹ããŒã ã¯ãå®éã«ã¯2ã€ã®éåžžã®ãã¹ã¿ãŒ-ã¹ã¬ãŒãè€è£œã§ããããšã«æ³šæããŠãã ããã ã¯ããããã€ãã®ãã¥ã¢ã³ã¹ããããŸãããæšæºã¹ããŒã ã§äœ¿çšãããã»ãšãã©ã®ãã©ã¯ãã£ã¹ã¯ããã§æ©èœããŸãã
æãåçŽãªïŒæãé »ç¹ã«çºçããïŒåé¡ã¯ã ã1062 Error 'Duplicate entry'ããšãã圢åŒã®ãšã©ãŒã§ãã
çç±ã¯ç°ãªãå ŽåããããŸãã ããšãã°ãåºå°ã§äºæ ãçºçããå Žåããã©ãã£ãã¯ãå¥ã®DCã«åãæ¿ããŸãã èŠæ±ãDC 1ã§æ¢ã«å®è¡ãããŠããããDC 2ã§ã¬ããªã±ãŒããããã«å床å®è¡ãããå Žå-ã¯ãããŸãã«ãã®ãšã©ãŒãçºçããŸãã
ã¹ã¬ãŒãã§æ¬¡ã®ã³ãã³ããå®è¡ããããšã§åŠçãããŸãã
STOP SLAVE; SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; START SLAVE;
ãããã£ãŠãè¿œå ã®ãªã¯ãšã¹ãã¯ã¹ãããããŸãã 次ã«ãã¬ããªã±ãŒã·ã§ã³ã¹ããŒã¿ã¹ã確èªããŸãã
SHOW SLAVE STATUS\G
å¿ èŠã«å¿ããŠãæé ãç¹°ãè¿ããŸãã
* * *
ã¯ããçŸåšãæãç°¡åãªãªãã·ã§ã³ã詳现ã«æ€èšããŠããŸãã ãã¡ã€ã«ã·ã¹ãã ãå£ãããããã¡ã€ã«ãå£ããããªã©ããã¹ãŠãããã«æªåããŸãã
ããã¹ãŠãä¿®æ£ããæ¹æ³ããšããæ®éçãªã¬ã·ãã¯ãããŸããã ãã ãã次ã®ããšã«æ³šæããããšãåžžã«éèŠã§ãã
- ãããã¯ã«ãªããªãã§ãã ããã
- SHOW SLAVE STATUS \ Gã䜿çšããŠãã¹ã¬ãŒãã®ã¹ããŒã¿ã¹ã確èªããŸãã
- SHOW MASTER STATUSã䜿çšããŠãŠã£ã¶ãŒãã®ç¶æ ã確èªããŸãã
- åžžã«ãã°ãä¿æããŸãïŒ log-error = /var/log/mysqld.logïŒ-ããããã®æçšãªæ å ±ãå«ãŸããŠããŸãã ããšãã°ãã¹ã¬ãŒãããã¹ã¿ãŒbinlogãèªã¿åãäœçœ®ã«é¢ããããŒã¿ã äºæ ã®å Žåã«åœ¹ç«ã¡ãŸãã
- ãã¹ãŠãå®å šã«å£ããŠããå Žå-ããã¯ã¢ããããäžæããŸãã
8.ãµãŒããŒã®1ã€ãããã¯ã¢ããããã¬ããªã±ãŒã·ã§ã³ãã¹ã¿ãŒã«äžããæ¹æ³ã¯ïŒ
ããã§ã2ã€ã®ãã¹ã¿ãŒã¹ããŒã ã§äœããããŸããããªãã£ãå ŽåïŒããšãã°ã æ°æ¥åã«Amazonã§äºæ ãçºçã ãè€æ°ã®ãµãŒããŒäžã®ãã¡ã€ã«ã·ã¹ãã ãäžå¯éçã«ç Žæããå ŽåïŒã¯ã©ãããã°ããã§ããããïŒ
ãé¡ã«ããœãªã¥ãŒã·ã§ã³-ãããµãŒããŒããå¥ã®ãµãŒããŒã«ããŒã¿ã転éãããŒãããè€è£œãéå§ãã-é·ãããã
Amazonã§ã¯ã ãã·ã³å šäœã«ãã£ã¹ã¯ã¹ãããã·ã§ãããšã€ã¡ãŒãžã³ã°ïŒAMIïŒã¡ã«ããºã ã䜿çšããŠããŸãã ããã«ãããããšãã°æ°æéåãªã©ãç®çã®ãµãŒããŒã®å®å šãªã³ããŒããã°ããå±éã§ããŸãã
ããã¯ã¢ãããããã·ã³ãå±éããå Žåãèå³æ·±ãå¹æãåŸãããŸãããã©ã€ãããã¹ã¿ãŒbinlogããããŒã¿ã®èªã¿åããéå§ããŸãïŒããã¯ã¢ãããäœæãããç¬éããïŒããããã©ã«ãã§ã¯ã¬ã³ãŒãã¯åããµãŒããŒã®ãµãŒããŒããã§ããããããããã®ååã®ã¿ãèªã¿åããŸãã idïŒããã¯ã¢ããæéã«é¢ãããæªæ¥ãããïŒã¯è€è£œãããŸããã ããã¯ãããã¹ã¿ãŒãã¹ã¿ãŒãã®ãã«ãŒãããåé¿ããããã«è¡ãããŸãã
ãããè¡ããŸãïŒ
1.ãã¹ãŠã®ãã©ãã£ãã¯ã¯ãã©ã€ããDCã«éãããŸãã 埩å ãããµãŒããŒã«è² è·ã¯ãããŸããã
2.ããã¯ã¢ããããçæããããµãŒããŒã§ãmysqldãããã«åæ¢ããæ§æã«å ¥åããŸãã
skip-slave-start replicate-same-server-id #log-slave-updates = 1 ; !
3. mysqldãèµ·åããã¬ããªã±ãŒã·ã§ã³ãéå§ããŸãã
4.ããŒã¿ãåæãããåŸãèšå®ãå ã®ç¶æ ã«æ»ããŸãã
#skip-slave-start #replicate-same-server-id log-slave-updates = 1
5.ããã¹ã¿ãŒãã¹ã¿ãŒãããããããéæ¹åã«ã¬ããªã±ãŒã·ã§ã³ãéå§ããå¿ èŠããããŸãã 埩å ãããµãŒããŒã§ã¬ããªã±ãŒã·ã§ã³ãåæ¢ãã次ãå®è¡ããŸãã
SHOW MASTER STATUS;
ã¬ããªã±ãŒã·ã§ã³ãåæ¢ããªããšãããŒã¿ãå€æŽãããŸãã
6.ç®çã®äœçœ®ããæåã®ïŒã©ã€ãïŒãµãŒããŒã§ã¬ããªã±ãŒã·ã§ã³ãéå§ããŸãã
STOP SLAVE; CHANGE MASTER TO MASTER_LOG_FILE='...', MASTER_LOG_POS = ...; START SLAVE;
ãã©ã°ã©ã5ã§ååŸããããŒã¿ãå ¥åããŸãã
7. 2çªç®ã®ãµãŒããŒã§ã¬ããªã±ãŒã·ã§ã³ãéå§ããŸãã
9.ã¬ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãšä¿¡é Œæ§ã®ãã©ã³ã¹ã¯ã©ãã§ããïŒ
MySQL / Perconaã«ã¯ãããšãã°çªç¶ã®åèµ·åã®å Žåã«ããŒã¿ã®ä¿¡é Œæ§ãšå®å šæ§ãåçã«æ¹åã§ããå€ãã®ãªãã·ã§ã³ããããŸãã ãããã®ã»ãšãã©ãã¹ãŠããã·ã¹ãã ã®é床ãåçã«äœäžãããŸãã
ãã®ãªãã·ã§ã³ã®çµã¿åããã§ãç§ãã¡ã¯èªåèªèº«ã®ãã©ã³ã¹ãèŠã€ããŸããã
sync_binlog = 1 sync_master_info = 0 sync_relay_log = 0 sync_relay_log_info = 0 innodb-flush-log-at-trx-commit = 2
binlogã¯ç§ãã¡ã«ãšã£ãŠéèŠã§ããããã sync_binlog = 1ã§ãã ãã ããåæã«ãbinlogã¯ã·ã¹ãã å ã®å¥ã®ãã£ã¹ã¯ã«ä¿åãããããããã®ãã£ã¹ã¯ãžã®æžã蟌ã¿ã«ãã£ãŠã·ã¹ãã å šäœã®ããã©ãŒãã³ã¹ãäœäžããããšã¯ãããŸããã
10.ã·ã¹ãã ã®ããã©ãŒãã³ã¹ãè©äŸ¡ããã«ã¯ã©ãããã°ããã§ããïŒ
倧ããªãéãããªã¯ãšã¹ããããå Žåã¯ããã¡ããããããã®å®è¡ã®æéã«ã€ããŠã¯ããããªæ¹åã«åããŠããŸãã
å€ãã®å ŽåïŒãããŠç§ãã¡ã®å Žå-ãã®æ¹æ³ã§ãïŒãã·ã¹ãã ã¯å€ãã®å€ãã®å°ããªãªã¯ãšã¹ããåŠçããŸãã
ãã¡ãããããŸããŸãªæš¡æ¬ãã¹ãã䜿çšããŠãã·ã¹ãã ã®ããã©ãŒãã³ã¹ãè©äŸ¡ã§ããŸãã ãããŠã圌ãã¯ããããæè¬ããŸãã ãããããæŠéã§ã䜿çšã§ããå®éã®ã€ã³ãžã±ãŒã¿ãŒïŒã§ããã°æ°åã§è¡šç€ºããããšããå§ãããŸãïŒãå¿ èŠã§ãã
Percona Serverã«ã¯çŽ æŽãããããŒã«ããããŸãïŒ
SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+----------------+-------+----------------+ | time | count | total | +----------------+-------+----------------+ | 0.000001 | 0 | 0.000000 | | 0.000010 | 6555 | 0.024024 | | 0.000100 | 56132 | 2.326873 | | 0.001000 | 23165 | 6.686421 | | 0.010000 | 9755 | 39.737027 | | 0.100000 | 1437 | 40.831493 | | 1.000000 | 141 | 31.785571 | | 10.000000 | 9 | 17.891514 | | 100.000000 | 0 | 0.000000 | | 1000.000000 | 0 | 0.000000 | | 10000.000000 | 0 | 0.000000 | | 100000.000000 | 0 | 0.000000 | | 1000000.000000 | 0 | 0.000000 | | TOO LONG | 0 | TOO LONG | +----------------+-------+----------------+ 14 rows in set (0.00 sec)
ãã®ãããªã¯ãšãªå®è¡æéã®ååžã®ãã¹ãã°ã©ã ã¯ãã·ã¹ãã ã®äžè¬çãªç¶æ ãè©äŸ¡ããã®ã«éåžžã«åœ¹ç«ã¡ãŸãã
ããšãã°ãç¹å®ã®é倧ãªãããå€ã決å®ããŸãã-å®è¡æéã0.01ç§ãè¶ ããïŒå šäœã®ïŒèŠæ±ã®5ïŒ ä»¥äžã§ãã
ãã€ããã¯ã¹ã§ãã®ç¶æ ã远跡ããããã«ããã®æ¯çã®ã°ã©ããæç»ããã ãã®Muninã®ç°¡åãªãã©ã°ã€ã³ãäœæããŸããã ããã¯éåžžã«äŸ¿å©ã§ããããããŠæãéèŠãªããšã¯ãæ確ã§æ確ãªææšã§ãã
11.ã¡ã¢ãªãŒãã©ã³ã¹ã
MySQLã®èšå®ã¯ãã¡ã¢ãªæ¶è²»ã®ãã©ã³ã¹ãåããããã«ããå¿ èŠããããŸãïŒ
ããã¯åçŽã§ç解å¯èœãªã«ãŒã«ã®ããã§ããããã°ãã°å¿ããããŸãã æ°åïŒæåã¯ãããã¿ã€ãã§ïŒåçœããŸããããOOMïŒOut of memoryïŒãåãåãããã®çµæããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«ãã£ãŠmysqldããã»ã¹ãã匷å¶çµäºããããŸããã
çæ³çã«ã¯ãmysqldããã»ã¹ã¯å®å šã«RAMã«åãŸããã¹ã¯ããã§ã¯åäœããªããããªæ¹æ³ã§åäœããã¯ãã§ãã
å¿ é -ãã¹ãŠã®ã·ã¹ãã ããã»ã¹ãã¡ã¢ãª+ã¹ã¯ããã«é 眮ããå¿ èŠããããŸãã
å€ãã®å Žåãmysqldãæ¶è²»ã§ããã¡ã¢ãªéã®èšç®ã¯ãå€ãã®äººã«ã¯æããã§ã¯ãããŸããã
åŒã¯æ¬¡ã®ãããªãã®ã§ãã
- ã°ããŒãã«ãããã¡ãµã€ãºïŒkey_buffer_size + tmp_table_size + innodb_buffer_pool_size + innodb_additional_mem_pool_size + innodb_log_buffer_size + query_cache_size
- 1ã€ã®æ¥ç¶ã®ãããã¡ãŒãµã€ãºïŒread_buffer_size + read_rnd_buffer_size + sort_buffer_size + thread_stack + join_buffer_size
- æ倧ã¡ã¢ãªäœ¿çšéïŒã°ããŒãã«ãããã¡+æ¥ç¶ãããã¡*æ¥ç¶ã®æ倧æ°
æ¬åœã«èæ ®ããããªãå Žå:)ãmysqltuner.plã¹ã¯ãªããã䜿çšã§ããŸããããã¯ããã®æ å ±ã«å ããŠãã·ã¹ãã ãã»ãã¥ãªãã£ãããã©ãŒãã³ã¹ãªã©ã«é¢ããä»ã®å€ãã®ããŒã¿ã衚瀺ããŸãã
# wget mysqltuner.pl # perl mysqltuner.pl
* * *
ãã®å Žæãèªãã§ãããŠããããšãïŒ :)
Bitrix24ã®äœæ¥ã§äœ¿çšããå®çšçãªåé¡ãšææ³ã®äžéšã®ã¿ãæ€èšããŸãã ã 圌ããžã®æè¬ãå«ãããµãŒãã¹ã¯æé·ããçºå±ããŠããŸãã
ç§ãã¡ã®çµéšãããããžã§ã¯ãã®äœæãšéçºã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã
ãããŠä»ã1ã€ã®èšäºã®ããªã¥ãŒã ãå®å šã«äžååã§ããããšã¯æããã§ãã è¿ãå°æ¥ã倧èŠæš¡ãªãããžã§ã¯ãã§MySQLã䜿çšãããšãããããã¯ãç¶ç¶ããæ°ããã¬ã·ããå ±æããæãèå³æ·±ãé¢é£æ§ã®ãããããã¯ããã詳现ã«èª¬æããããšããŸãã