DEV Community

TianZhen
TianZhen

Posted on • Originally published at youth2009.org on

worst day

21:40 - 服务不可用

监控宝提示Homepageæ— æ³•è®¿é—®ï¼Œä»¥ä¸ºæœ‰äººåœ¨éƒ¨ç½²ï¼ŒåŽæ¥å…¶ä»–æœåŠ¡ä¹Ÿä¸å¯ç”¨ï¼Œç™»å½•åˆ°æœåŠ¡å™¨ä¸Šçœ‹å‘çŽ°top都不能执行了,报过Bus errorå’ŒSegment fault等,看/var/log/syslog发现是RAID卡出错,从iDRAC上看没有错误,RAIDå¡å’Œç”µæ± çŠ¶æ€æ­£å¸¸ã€‚

ç›®å‰å·²ç»æ— æ³•æä¾›æœåŠ¡äº†ï¼Œé‡å¯è¯•ä¸€ä¸‹ã€‚

RAIDå¡æ— æ³•è¢«è¯†åˆ«åˆ°ï¼Œç³»ç»Ÿè¿›ä¸åŽ»ã€‚

强制刷一下RAIDå¡å›ºä»¶ï¼Œå¤±è´¥ï¼Œéƒ½æ— æ³•è¯†åˆ«ï¼Œä¹Ÿæ²¡æ³•åˆ·å›ºä»¶äº†ã€‚

å…³æœºï¼Œç­‰ç¬¬äºŒå¤©åŽ»æœºæˆ¿æŠŠç£ç›˜æ¢åˆ°å¦ä¸€å°æœºå™¨ä¸Šï¼Œå¦ä¸€å°æœºå™¨æœ‰åž‹å·ä¸€æ ·çš„RAID卡。

7:00 - 能进系统了

ç¬¬äºŒå¤©æ—©æ™¨å¼€æœºåŽå‘çŽ°å¯ä»¥è¿›ç³»ç»Ÿï¼Œä½†æ•°æ®åº“å¯åŠ¨ä¸äº†ï¼Œå¯èƒ½æ•°æ®åº“çš„æŸäº›æ–‡ä»¶è¢«ç ´åã€‚

å†æ¬¡é‡å¯æœºå™¨ï¼Œç³»ç»Ÿæ— æ³•å¯åŠ¨ï¼Œéœ€è¦fsck

8:10 - 进入机房

去机房把服务器电源拔掉,长按开机键让电量耗光,如果这种reset还是没能解决问题,就只能更换到另一台服务器了。

hardware reset不管用,把磁盘放入另一台服务器。

启动时提醒需要import raid配置,import进入系统提示需要fsck

手工执行fsck,出现很多错误,一一确认后让fsck修复,可以进入系统。

备份系统到别的服务器

14:30 - 修复数据库

数据库(PostgreSQL 9.6)和一些静态文件有损坏

备份了数据库的data目录后,开始试着恢复数据库

reset了xlog,用dd创建了一个全0çš„clog,数据库可以启动,但有些奇怪的数据,dump出所有数据重建database再restoreï¼Œå› ä¸ºæˆ‘ä»¬æ¯”è¾ƒåœ¨æ„database的建模,很多有关系的表之间都有外键约束,restore的时候能帮我们发现很多不一致的数据,只好fix-dump-restore测试,一直到所有数据都正常后,vacuum, rebuild index

21:00 - 结束

真是worst dayï¼ŒçŽ°åœ¨çœ‹æ¥æ•°æ®åº“æ–¹é¢æœ‰æ›´å¥½çš„ä¿®å¤æ–¹æ³•ï¼Œèµ·ç å¯ä»¥åšåˆ°åªä¸¢å¤±æœ€è¿‘çš„ä¸€éƒ¨åˆ†æ•°æ®ï¼Œç„¶è€Œæˆ‘ä»¬æ²¡æœ‰realtime的数据库备份也是个大问题,准备使用Barman来解决这些问题,另外服务器硬件也有一些东西需要重新考虑

Top comments (0)