ãåç¥ã®ããã«ãæè¿ãªãªãŒã¹ãããPostgreSQL 9.2ã¯ãå€ãã®èå³æ·±ãæçšãªæ©èœãåããŠããŸãã èãçŽãããšãªããã¹ããªãŒãã³ã°ã¬ããªã±ãŒã·ã§ã³ã¯ã©ã¹ã¿ãŒã9.0ãã9.2ã«ã¢ããã°ã¬ãŒãããããšã«ããŸããã ããã€ãã®ç¶æ³ããªããã°ããã¹ãŠãããŸãããã§ãããïŒ
- ããã¯ã倧èŠæš¡ãªæ¯æ¥ã®åºåžã䌎ãçç£ã§ãã
- ããŠã³ã¿ã€ã ã¯é€å€ãããŸãã
ãŸããããã¯ããã«ããããã...ã©ããã£ãŠããããã£ãã®ãããããŠããããäœãèªãŸããã®ãã
ãªãã§ãããªããšïŒ
- PostgreSQL 9.2ã§ãã³ãå°å ¥ããã;
- ãã©ãã·ã¥ãŠã£ã¶ãŒãã䜿çšããPostgreSQLãŠã£ã¶ãŒãã®ãµãŒããŒãžã®è»¢éã
äžããããïŒ
- 3å°ã®ããŒããŠã§ã¢ãµãŒããŒããã®ãã¡2å°ã¯ãã¹ã¿ãŒ+ã¹ã¬ãŒã9.0ã®æããã¹ããããã1å°ã¯ãã©ãã·ã¥ãã£ãã·ã¥ãåãã空ããŠãããµãŒããŒããã¹ãããŸãã
- ãã³ãã«ã¯ããã€ãã£ãã¹ããªãŒãã³ã°ã¬ããªã±ãŒã·ã§ã³ã䜿çšããŠè€è£œãããŸãã
- ã¢ããªã±ãŒã·ã§ã³ãåãã4ã€ã®ããã¯ãšã³ããšsphinxãåãããã·ã³ã¯ãããŒã¿ããŒã¹ãµãŒããŒãåžžã«äœ¿çšããŠããŸãã
åé¡ç¹ïŒ
- ããã±ãŒãžã9.0ãã9.2ã«ã¢ããã°ã¬ãŒãããã ãã§ã¯ã¯ã©ã¹ã¿ãŒã¯æ©èœããŸããïŒã¯ã©ã¹ã¿ãŒãååæåãŸãã¯æŽæ°ããå¿ èŠããããŸãïŒã
- pg_upgradeã¯ãã¯ã©ã¹ã¿ãŒãåæ¢ããªããšäœ¿çšã§ããŸããã
- ããŠã³ã¿ã€ã ã®ãããååæåãšåŸç¶ã®pg_restoreãå®è¡ã§ããŸããã
- æåã«ãŠã£ã¶ãŒããæŽæ°ããŠãããã¹ã¬ãŒããæŽæ°ããããšã¯ã§ããŸããã ã¡ãžã£ãŒããŒãžã§ã³éã®ã¹ããªãŒã ã¬ããªã±ãŒã·ã§ã³ã¯æ©èœããŸããã
ã©ããã£ãŠéãèŠã€ããã®ã§ããïŒ
Skytools-3.0ããã±ãŒãžã®Londisteã䜿çšããŠçµäºããŸãããããã¯ã8.4ãã9.0ã«æ¢ã«ç§»è¡ãããããçµéšããããŸãã Londisteã䜿çšããè€è£œã¯ãã¯ã©ã¹ã¿ãŒå ã®åã ã®ããŒãã«ãšããŒã¿ããŒã¹ãè€è£œã§ãããã䟿å©ã§ãïŒããšãã°ãã¹ããªãŒãã³ã°è€è£œãã¯ã©ã¹ã¿ãŒå šäœã®è€è£œïŒã ããã«ãæåŸã®åãã«é¢ããŠãã¹ããªãŒãã³ã°ã¬ããªã±ãŒã·ã§ã³ãå¯èœã«ãªããŸããã ãããŠããããåé¡ã§ã¯ãããŸããã Londisteãä»ããŠè€è£œãããããŒã¿ã¯ãã¹ããªãŒãã³ã°è€è£œã䜿çšããŠãæ°ãã«çºçããã¹ã¬ãŒã9.2ã«çŽã¡ã«è€è£œãããŸãã åªããã¹ããŒã ãåºãŠããŸãã9.2ã«ã¬ããªã±ãŒãããããã¹ã¬ãŒã9.2ã§ããŒã¿ãééçã«åããŸãã ãããã£ãŠãåé¡ã®ã¹ããŒã ãšã¢ã«ãŽãªãºã ïŒ
![ç»å](https://habrastorage.org/storage2/a97/af7/f68/a97af7f68e48f8748189f109846e3641.png)
1.管çéšïŒ
- ãã¹ã¿ãŒãšã¹ã¬ãŒããäžãã9.2ã æšæºããŒãããã§ã«äœ¿çšãããŠãããããã¹ã¬ãŒã9.2ã¯ããŒã6543ã§èµ·åãããŸãïŒå³ãåç §ïŒã
- ãããã®éã®ã¹ããªãŒãã³ã°è€è£œãäžããŸãã
- æ°ããæ§æããããŠã£ã¶ãŒã9.2ã«Skytoolsãã€ã³ã¹ããŒã«ããŸãã
- Londisteãæ§æããŸãã ãã¹ã¿ãŒ9.0ãããããã€ããŒãäœæãããã¹ã¿ãŒ9.2ãããµãã¹ã¯ã©ã€ããŒãäœæããŸãã
- ãã¹ã¿ãŒ9.2 londisteãšpgqdã§éå§ããlondisteã«çµã¿èŸŒãŸããããŒã«ã䜿çšããŠãã³ãã«ã®æäœæ§ã確èªããŸãã
- ãããã€ããŒåŽââã§ã¯ããã¹ãŠã®ããŒãã«ãšã·ãŒã±ã³ã¹ãã¬ããªã±ãŒã·ã§ã³ã«è¿œå ããŸãïŒã¬ããªã±ãŒã·ã§ã³å¯èœãªããŒãã«ã¯äž»ããŒãæã€ããŒãã«ã®ã¿ã§ããããŒã®ãªãããŒãã«ãããå Žåã¯ãããã«ããŒãäœæããããæåã§è»¢éããå¿ èŠããããŸã...ããã«ããŒãäœæãããããææž¡ããå®äŸ¡ãªã¹ããŒã ïŒ;
- æåã§è»¢éããå¿ èŠãããã¹ããŒã ãšããŒãã«ã決å®ããŸãã
- ãµãã¹ã¯ã©ã€ããŒã§ããã¹ãããŒãã«ã®ã¬ããªã±ãŒã·ã§ã³ãéå§ãããã°ã«ãã£ãŠããããã€ããŒ9.0ããã®ããŒã¿ããµãã¹ã¯ã©ã€ããŒ9.2ã«ç§»åããã¹ããªãŒãã³ã°ã¬ããªã±ãŒã·ã§ã³ãä»ããŠã¹ã¬ãŒã9.2ã«å°éããããšã確èªããŸãã
ãããã£ãŠãæè¡çãªåŽé¢ããã¯ãã¹ãŠæºåãã§ããŠããŸãã çŸåšãã¬ããªã±ãŒã·ã§ã³ã®é²è¡ãšåãæ¿ãã®ç¬éãèšç»ããããšãæ®ã£ãŠããŸãã åææ¥ãåãæ¿ãæ¥ãšããŠéžæãããŸãã åé¡ãçºçããå Žåãæ¥ææ¥ãæ®ããŸãã ã€ãã³ããæºå段éãšåãæ¿ã段éã®2ã€ã®æ®µéã«åããŸããã åãæ¿ãã¯ã©ã®ããã«å®è¡ãããŸããïŒ ãããè¡ãããã«ãæ°ãã9.2ãã³ãã«ã«2ã€ã®æ°ããDNSådb-masterãšdb-slaveãå°å ¥ããŸããã é©åãªã¿ã€ãã³ã°ã§ããããã®ååãããã¯ãšã³ãæ§æã«æžã蟌ã¿ãã¢ããªã±ãŒã·ã§ã³ãåèµ·åããŸãã
æºåèšç»ã®æŽ»åã®ããã€ãã¯ãã§ã«äžèšã§èª¬æãããŠããŸãããå®å šãæãããã«ãããã§ãç°¡åã«æ®ããŠãããŸãã
éææ¥ãŸã§ïŒ
- æ°ããã¯ã©ã¹ã¿ãŒpg-9.2ãäœæããŸãã
- pg-9.0ãšpg-9.2ã®éã§londisteãèšå®ããŸãã
- é£æ¥ããŒãã§æ°ããslave.pg-9.2ãäžããmaster.pg-9.2ã§ã¹ããªãŒãã³ã°ã¬ããªã±ãŒã·ã§ã³ãæ§æããŸãã
- ãã¹ã¿ãŒ9.0ããã³ã¹ã¬ãŒã9.0ããã®å¹³æ¥ã®æ°ããpgfouineã¬ããŒããæºåããŸãã äžäœã®ã¯ãšãªãã©ã³ãæ¯èŒããã«ã¯ã¬ããŒããå¿ èŠã§ãã
- äž»ããŒã®äœæãå¿ èŠãšããªããã¹ãŠã®ã¹ããŒã ãlondisteãããã€ããŒã«è¿œå ããŸãã
- ãã¹ãŠã®ããã¯ãšã³ããããæ°ããPostgreSQLã€ã³ã¹ã¿ã³ã¹ã«æ¥ç¶ããæ©èœã確èªããŠãã ããã
- æ°ããããŒã¿ããŒã¹ãæ¥ç¶å¶éãèªåããã¥ãŒã èšå®ã®æ§æãå確èªããŠãã ããã
- æ°ããããŒã¿ããŒã¹ã®ç£èŠãèšå®ããŸãïŒpg_stat *ããŒãã«ããã«ããèªå·±èšè¿°bashã¹ã¯ãªãããšçµã¿åãããŠzabbixã䜿çšããŸãïŒã
- æ°ããããŒã¿ããŒã¹ã«æ°ããDNSådb-masterããã³db-slaveãäœæããŸãã
- åææ¥ã®äœæ¥ã«ã€ããŠç·šéè ã«èŠåããïŒããã¯åã«ããããžã®èŠåã§ãããããæºåãã§ããŠããŠãäœããèµ·ãã£ãŠã質åãããŸããã§ããïŒã
éææ¥ïŒ
- å€éã®ã€ã³ããŒããç¡å¹ã«ããŸãïŒããã¯å°çã®ãããªããŒã¿ã€ã³ããŒãã§ããã¡ã«ããºã ã¯londisteã¬ããªã±ãŒã·ã§ã³ã100ïŒ ç Žå£ãããããªãã®ã§ããããã¯ãããžã§ã¯ãã®å éšãããã³ã§ãããã©ã®ãããžã§ã¯ããåæ§ã®ã³ã³ããŒãã³ããæã€ããšãã§ãããããæäœã®ç®çã«åœ±é¿ãããã¹ãŠã®èŠçŽ ïŒããŒã¿ããŒã¹ïŒ ïŒ;
- londistãä»ããŠããŒã¿è»¢éãéå§ããŸãã ãµãã¹ã¯ã©ã€ããŒã«ããŒãã«ãè¿œå ããããšãã³ããŒã«ãã£ãŠã¬ããªã±ãŒã·ã§ã³ã¡ã«ããºã ãéå§ãããŸãããã®åŸãããŒãã«ã®äžè²«ããç¶æ ãä¿®æ£ãããã¬ããªã±ãŒãå¯èœãšèŠãªãããŸãïŒã
- æå転éã®ã¹ããŒã ã®ãªã¹ããæºåããŸãã
åææ¥ïŒããã¯åãæ¿ãã®æ¥ã§ãã
- ãã¹ã¿ãŒãšã¹ã¬ãŒããã9.2ãŸã§ã®äžäœ10件ã®ã¯ãšãªã確èªããŸãïŒã²ãŒã ã¯ããããã«å€ããªãã®ã§ããããïŒïŒã
- ã¹ããŒã ãæåã§è»¢éããããã®ã³ãã³ããæºåããŸãïŒã³ã³ãœãŒã«ã§æãã«ããããå©ããé©åãªã¿ã€ãã³ã°ã§EnterãæŒããŸãïŒã
11.00-12.00ç·šéã®äžæåæ¢ïŒ
- ã¯ã©ãŠã³ãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã®ããŒã¢ã³ãåæ¢ããã¢ã¯ãã£ããªã¿ã¹ã¯ã®å®äºãåŸ ã¡ãŸãã
- 綿å¯ãªç·šéïŒçŸæç¹ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ãã¢ããªã±ãŒã·ã§ã³åŽããããŒã¿ããŒã¹ã«æžã蟌ãããšã¯äžå¯èœã§ãããã®æ¹æ³ã«ããããµã€ãã®ã¯ã©ã€ã¢ã³ãããããŒã¿ããŒã¹ãç·šéããããããã¯ãšã³ãã§ã¢ããªã±ãŒã·ã§ã³ãåèµ·åãããšãã«ããŒã¿ãäžæŽåã«ãªããªã¹ã¯ãåé¿ã§ããŸãïŒ;
- æ®ãã®åç·ãæ°ããããŒã¿ããŒã¹ã«ãã³ãããŸãã
12.00-12.30ã®åãæ¿ãïŒ
- londisteã¬ããªã±ãŒã·ã§ã³ã®æãããã¿ïŒããŒãã«ãã·ãŒã±ã³ã¹ãããŒãã®è¡šç€ºãlondisteããã³pgqdã®åæ¢ïŒ;
- ããã¯ãšã³ãã®èšå®ãä¿®æ£ããŸãã
- ããã¯ãšã³ãïŒnginx +ããã»ã³ãžã£ãŒïŒã§ã¢ããªã±ãŒã·ã§ã³ãåèµ·åããŸãã
- sphinxã®æ§æãæŽæ°ããŠåèµ·åããŸãã
ããã ãã§ã ãã®åŸãå€éšã¬ã³ãŒãå šäœïŒã¬ã³ãŒããœãŒã¹ã¯ãµã€ãäžã®ã¯ã©ã€ã¢ã³ãïŒãã¯ã©ã¹ã¿ãŒ9.2ã«ç§»åãããããlondisteãä»ããã¬ããªã±ãŒã·ã§ã³ã¯äžè²«ããªããªããŸãã
- ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ããŒã¢ã³ã®æ§æãä¿®æ£ããŠå®è¡ããŸãã ã¯ã©ãŠã³ãå®è¡ããŸãã
- ç·šéãéã;
- ãã¹ãŠã®ã³ã³ãããŒã«ãéããå¯èœæ§ã®ãã劚害ãæ¢ããŸãã
åãæ¿ãåŸïŒ
- å€éã€ã³ããŒããæå¹ã«ããŸãã
- Cronãã°ãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã®ããŒã¢ã³ãã°ãã¬ããªã±ãŒã·ã§ã³ãã°ã確èªããŸãã
移ååŸ
- ãã®ããã«ãdb-slaveãæšæºããŒãã«è»¢éããŸãã
- ã¹ã¬ãŒããšé£æºããããã¯ãšã³ããåãæ¿ããŠããã¹ã¿ãŒãšé£æºããŸãã
- pg-9.0ããªãã«ããŸãã
- æ°ããpg-9.2ããã«ã¡ã¢ãªã§åäœããããã«èšå®ããŸãïŒãã¹ãäžã«2ã€ã®PostgreSQLã€ã³ã¹ã¿ã³ã¹ããã£ãããšã¯å¿ããããªããããã¡ã¢ãªããããã®éã§åå²ããå¿ èŠããããŸããïŒã
- ããŒã5432ã§db-slaveãå®è¡ããããã¯ãšã³ããšã¹ãã£ã³ã¯ã¹ããã®æ¥ç¶ã確èªããŸãã
- æŽåæ§ãšã¬ããªã±ãŒã·ã§ã³ã®é 延ã確èªããŸãã
- ããã¯ãšã³ãåŽã«ã¹ã¬ãŒããé 眮ããŸãã
ããŒã«ããã¯ã äœããããŸããããªãå Žåã®èšç»ïŒ
- ç·šéãéãã;
- ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ãšã¯ã©ãŠã³ã®ããŒã¢ã³ãåæ¢ããã¢ã¯ãã£ããªã¿ã¹ã¯ã®å®äºãåŸ ã¡ãŸãã
- æ§æå ã®ããŒã¿ããŒã¹ãµãŒããŒåãå ã®ååã«ä¿®æ£ããããã¯ãšã³ããåèµ·åããããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã®ããŒã¢ã³ãèµ·åããŸãã
- sphinxã®æ§æãããŒã«ããã¯ããŸãã
- ç·šéãéããŸãã
å®éã«ã¯ã¢ã«ãŽãªãºã å šäœã ãã¡ãããã€ãã³ãã®éçšã§ããã¹ãŠãäžè¬çãªèšç»ã©ããã«é²ãã ããã§ã¯ãããŸããã 幞ããªããšã«ãããŒã«ããã¯èšç»ã«é Œãå¿ èŠã¯ãããŸããã§ããã
äœãããŸããããªãã£ãã®ãã話ãã°ãã»ãã®æ°ç¹ãããããŸããã
æåã®æ®µèœã¯ãæè¿éå§ããããµãŒãã¹ãšãåç·ãæåã§è»¢éããããã®ã¡ã«ããºã ã«é¢ãããã®ã§ãïŒäžè¬çã«ã¯åé¿ããããšãæãŸããïŒã ãµãŒãã¹ã«é¢ããããã€ãã®èšèïŒpgqã®äœæ¥ã«åºã¥ããµãŒãã¹ã倱æããŸãããpgqã¹ããŒã ãè€è£œããæ¹æ³ã¯å®å šã«ã¯æ確ã§ã¯ãããŸããã§ããïŒpgqèªäœã¯è€è£œã¡ã«ããºã ã®äžéšã§ããïŒã æåã®ç§»è¡ã§ãç¶æ³ã¯ä¿®æ£ãããªãã£ããããã¹ããŒã ãååæåãããµãŒãã¹ãåèµ·åããå¿ èŠããããŸããïŒããã¯éèŠã§ã¯ãããŸããããäŸç¶ãšããŠåŠšå®³ã§ãïŒã
åè·¯ã®è»¢éã«ã€ããŠ...ç·Žç¿ã«ãããåè·¯ã®è»¢éãå¿ ãããåžæã©ããã«è¡ãããªãããšã瀺ãããŠããŸãã ã¬ããªã±ãŒã·ã§ã³ã»ããã¢ããã®åæ段éã§ããŒã¿ããŒã¹ã¹ããŒã å šäœãäœæãããããšãèæ ®ãããšãå°æ¥ãæ¢åã®ãªããžã§ã¯ããŸãã¯åå¥ã®ããŒã¿ã®äžã«ã¹ããŒã ã転éããå¿ èŠãããã転éäžã«æ¬¡ã®ãããªãšã©ãŒãçºçããå¯èœæ§ããããŸãã
ãšã©ãŒïŒããŒãã«ã§ã®æ¿å ¥ãŸãã¯æŽæ°ãå€éšããŒå¶çŽã«éåããŠããŸã
詳现ïŒããŒãã«ã«ããŒãååšããŸããã
ãããã£ãŠãåç·ã®è»¢éã¯æ¬¡ã®ããã«è¡ãã®ãæé©ã§ãããšããçµè«ãåŸãããŸãã
å®å ããŒã¿ããŒã¹ã®æ¢åã®ç©ºã®ã¹ããŒãã®ååãå€æŽãããœãŒã¹ããã¹ããŒã å šäœã転éããå®å ããŒã¿ããŒã¹ããå€ãååãå€æŽããã¹ããŒã ãåé€ããŸãã ã¹ããŒã ã®IDã®ç¢ºèªã¯ãbashã³ã³ã¹ãã©ã¯ããéããŠå®è¡ã§ããŸãã äž¡æ¹ã®ãã¹ãã§ã³ãã³ããèµ·åããã³ã³ãã©ã€ã¢ã³ã¹ã®åºåãæ¯èŒããŸãïŒdiffã䜿çšïŒ
# for i in schema_1 schema_2 schema_3; do psql -ltAF. -U postgres -c "\dt $i." db_name |cut -d. -f1,2 ; done |while read line ; do echo "$line" - $(psql -qAtX -U postgres -c "select count() from $line" db_name); done
æåŸã«ããã¡ãããããã€ãã®ãµãŒãã¹/ããã¯ãšã³ããæ¢ã«æ°ããããŒã¿ããŒã¹ã«åãæ¿ããããŠãããä»ã®éšåããŸã ã§ã¯ãªãå ŽåãããŒã¿ããŒã¹ã®ã¬ã³ãŒãã衚瀺ãããå¯èœæ§ã®ãããã¹ãŠã®å Žæãæ°åãã§ãã¯ããåãæ¿ãããšãã«èšé²ã®å¯èœæ§ãé€å€ããå¿ èŠãããããšã«æ³šæãããã§ãã ããã«è°è«ããã°ãçè«çã«ã¯ããªã¥ãŒã ãå®å šã«èªã¿åãå°çšã«å€æããåãæ¿ãïŒmount / dmsetup / blockdevïŒãå®è¡ã§ããŸãã
ããŠãå°ãã®ã°ã©ãã
1. NewRelicã ããã¯ãšã³ãã®åãæ¿ãããã»ã¹
![ç»å](https://habrastorage.org/storage2/ece/5d4/193/ece5d41932f29dceb79c859098f676e4.png)
2. Zabbixã PG 9.0ã§ã®æ¯æ¥ã®ãµãŒããŒæäœïŒ9æ10æ¥æææ¥ïŒ
![ç»å](https://habrastorage.org/storage2/718/e55/d54/718e55d5459cd621948663acb07b14f9.png)
3. Zabbixã PG 9.0ãå®è¡ãããµãŒããŒã®æŒéïŒ9æ10æ¥æææ¥ïŒ
![ç»å](https://habrastorage.org/storage2/5d2/25e/bc9/5d225ebc94cc6709090a5189a1b9e480.png)
4. Zabbixã PG 9.2 + FlashCacheã«ããæ¯æ¥ã®ãµãŒããŒæäœïŒ9æ17æ¥æææ¥ïŒ
![ç»å](https://habrastorage.org/storage2/778/7fc/454/7787fc454c5a29c3b9318d80be9ce708.png)
5. Zabbixã PG 9.2 + FlashCacheã䜿çšãããµãŒããŒã®æŒéïŒ9æ17æ¥æææ¥ïŒ
![ç»å](https://habrastorage.org/storage2/1ae/1f5/329/1ae1f5329e922d1f11b3176a40a55b4e.png)
Zabbixã®ã°ã©ãã£ãã¯ã¹ã®æ倧ã®æªã¯ãiowaitãåæ ããé»ãç·ã§ãã ã芧ã®ãšããããã©ãã·ã¥ãã£ãã·ã¥ã®äœ¿çšã«ãããããŒããã©ã€ãã®è² è·ãå€§å¹ ã«åæžãããŸããã
æè¡çãªè©³çŽ°ãæ°ã«ãã人ïŒ
PostgreSQLã§ã®ã¹ã¬ããã¬ããªã±ãŒã·ã§ã³ã®èšå®æ¹æ³ã«ã€ããŠã¯ã ãã¡ããã芧ãã ãã ã
Skytools-3ã䜿çšããŠPostgreSQLã¯ã©ã¹ã¿ãŒéã§ããŒãã«ã¬ããªã±ãŒã·ã§ã³ãã©ã®ããã«æ§æãããŠãããã確èªããã«ã¯ã ãã¡ããã芧ãã ãã ã
ããã¯ããããµãããããã¯ã®ç©èªã§ãã ãæž èŽããããšãããããŸããïŒ