事故情况:
由于服务器异常断电,需要重启mongodb,使用mongod命令无法启动
事故处理:
使用--repair 命令修复启动,启动失败,查看报错日志显示
{ "t": { "$date": "2024-06-17T14:22:05.793+08:00" }, "s": "E", "c": "STORAGE", "id": 22435, "ctx": "thread1", "msg": "WiredTiger error", "attr": { "error": 95, "message": "[1718605325:793916][11492:0x7f5d88ea5700], log-server: __posix_sys_fallocate, 75: journal/WiredTigerTmplog.0000000001: fallocate:: Operation not supported" } }
经过查询资料得出硬盘不支持这个命令,属于系统级别的命令,不是mongodb的原因,备份文件拷贝到其他硬盘目录。
再次使用--repair 修复启动,还是失败,查询日志显示复制集原因无法启动。
关闭复制集的配置,启动成功。
重新搭建复制集及恢复数据
由于异常断电,部分同步文件丢失,原来的复制集无法启动,搭建新的复制集,我这里采用mongodump 导出数据,mongorestore恢复数据
也可以使用官方文档的重建复制集的方案,我脚本都是现成的且数据不多