文章目录
- 故障现象
- 排查过程
- 1.查看Log
- 2.同步恢复数据
故障现象
周五突然收到Mongo实例莫名奇妙挂了告警,一般都是RS复制集架构模式(5节点),查看此实例角色为SECONDAR,挂了暂时不影响线上业务,但还是需要尽快修复一下!
排查过程
1.查看Log
只挑选出比较关键的log,,,
...
2023-02-17T19:11:53.595+0800 E STORAGE [conn6] WiredTiger (22) [1676632313:595172][22155:0x7fb4e28d0700], file:dnsline2new/index-232--3139202152534777108.wt, WT_SESSION.open_cursor: live.avail: merge range 159744-163840 overlaps with existing range 159744-163840: Invalid argument
2023-02-17T19:11:53.595+0800 E STORAGE [conn6] WiredTiger (-31804) [1676632313:595237][22155:0x7fb4e28d0700], file:dnsline2new/index-232--3139202152534777108.wt, WT_SESSION.open_cursor: the process must exit and restart: WT_PANIC: WiredTiger library panic
2023-02-17T19:11:53.595+0800 I - [conn6] Fatal Assertion 28558
2023-02-17T19:11:53.595+0800 I - [conn6]
***aborting after fassert() failure
2023-02-17T19:11:53.616+0800 F - [conn6] Got signal: 6 (Aborted).
...
Mongo WiredTiger存储引擎 库 panic了。。。尝试start启动还是无果,检查存储磁盘是否损坏,确认正常,同机器上还运行了其他mongo实例,无异常
google相关资料之后,发现是社区中也有类似bug,数据有损坏,目前有两种方案可进行恢复,一种是利用工具来对损坏数据修复,另外是从备份节点重新恢复数据,当然后者安全可靠些,但是要考虑到数据大小,及同步时长、机器资源消耗等因素。
资料参考:https://jira.mongodb.org/browse/SERVER-27942
https://discuss.cryosparc.com/t/mongod-spawn-error-wildtiger-library-panic/1603
https://jira.mongodb.org/browse/SERVER-16210
2.同步恢复数据
1、鉴于此副本集数据量不是很大,只有20GB,所以决定采用同步数据来进行恢复;
2、备份现有数据存储
3、新建Mongo数据存储目录,并赋予对应权限
4、启动Mongo进程服务,持续观察日志及同步进度
Mongodb副本集同步原理介绍:https://zhuanlan.zhihu.com/p/79786663