mongodb数据丢失求助
- 内容介绍
- 文章标签
- 相关推荐
因为第三方误操作对服务器进行了降配重启,导致mongodb异常中断了,现在执行 mongod --dbpath /data/mongo --repair 命令会吐出来一个
image1920×621 924 KB
已放弃,问过gemini后,在本地部署一个Mongodb恢复,成功了但是一个表都看不到,问它告诉我元数据丢失了开始引导我用wt去修,我看了一下,wt修7个G的数据有点恐怖了,想来问问佬友们有没有什么其他解法,我本人不是很熟悉mongodb
--【壹】--:
日志里面是说你之前 –repair 但是取消了,导致现在 mongodb 认为你没有完全修复好,需要完成修复流程
不修复就启动不了数据库
可以看看 数据目录里面是不是有什么文件表明现在的数据库处于修复状态,比如 *.lock
--【贰】--:
好的,我试试对整个日志文件和系统排查下,如果已经执行了repair,是已经将元数据破坏无法修复了是吗
--【叁】--:
image1920×259 296 KB
整个数据库已经备份到另外的目录了,刚刚启动一次,提示有个lock文件,删除后再次尝试启动,提示这个,没看出什么有价值的信息
--【肆】--:
可以试着加上 –repair 修复一下,再启动,可能「修复状态」是存在别的文件中的,直接删除 *.lock 文件没有效果
--【伍】--:
image1920×233 109 KB
通过日志来看,版本应该是一致
--【陆】--:
image1920×264 297 KB
运行了rm *.lock之后再执行,还是卡在这里
--【柒】--:
忘记统一回复了,最终通过一台本地设备的当年导出的js脚本恢复了,40个G的js导了3天(为什么会那么慢),丢失了2个月到半年的不等数据,项目起码是能动了
--【捌】--: rem:
mongod.log
看你的日志截图猜测
本来是 5.0.6 然后升级成一个高/低版本的 mongodb 然后运行了一段时间,数据库里面某张表(可能是新表)的索引格式变了,然后你再变成 5.0.6 运行,它不能识别这个新的索引格式,然后启动不了
上面是猜测
--【玖】--:
可以通过日志获取到原版本吗,目录下面有个40G的mongod.log,已经执行了有救吗
--【拾】--: rem:
repair
尽量不要一键修复,已修复的也不要再修改,先分析为啥启动不起来。元数据破坏也是可以恢复数据的。
在做其他操作之前先将数据库的文件夹打包备份一下。备份时需要先停止数据库软件。
数据文件 collection-*.wt
索引文件 index-*.wt
索引有问题可以重新建立,数据文件丢了就真的恢复不了了
--【拾壹】--:
检查一下现在运行的 mongodb 和 原来的 mongodb 是不是版本不兼容 导致运行不起来
不要急着 repair
--【拾贰】--:
发给AI ,把日志, 一定要吧数据备份就行,再修复,难度不大,除非恶意损坏数据恩
因为第三方误操作对服务器进行了降配重启,导致mongodb异常中断了,现在执行 mongod --dbpath /data/mongo --repair 命令会吐出来一个
image1920×621 924 KB
已放弃,问过gemini后,在本地部署一个Mongodb恢复,成功了但是一个表都看不到,问它告诉我元数据丢失了开始引导我用wt去修,我看了一下,wt修7个G的数据有点恐怖了,想来问问佬友们有没有什么其他解法,我本人不是很熟悉mongodb
--【壹】--:
日志里面是说你之前 –repair 但是取消了,导致现在 mongodb 认为你没有完全修复好,需要完成修复流程
不修复就启动不了数据库
可以看看 数据目录里面是不是有什么文件表明现在的数据库处于修复状态,比如 *.lock
--【贰】--:
好的,我试试对整个日志文件和系统排查下,如果已经执行了repair,是已经将元数据破坏无法修复了是吗
--【叁】--:
image1920×259 296 KB
整个数据库已经备份到另外的目录了,刚刚启动一次,提示有个lock文件,删除后再次尝试启动,提示这个,没看出什么有价值的信息
--【肆】--:
可以试着加上 –repair 修复一下,再启动,可能「修复状态」是存在别的文件中的,直接删除 *.lock 文件没有效果
--【伍】--:
image1920×233 109 KB
通过日志来看,版本应该是一致
--【陆】--:
image1920×264 297 KB
运行了rm *.lock之后再执行,还是卡在这里
--【柒】--:
忘记统一回复了,最终通过一台本地设备的当年导出的js脚本恢复了,40个G的js导了3天(为什么会那么慢),丢失了2个月到半年的不等数据,项目起码是能动了
--【捌】--: rem:
mongod.log
看你的日志截图猜测
本来是 5.0.6 然后升级成一个高/低版本的 mongodb 然后运行了一段时间,数据库里面某张表(可能是新表)的索引格式变了,然后你再变成 5.0.6 运行,它不能识别这个新的索引格式,然后启动不了
上面是猜测
--【玖】--:
可以通过日志获取到原版本吗,目录下面有个40G的mongod.log,已经执行了有救吗
--【拾】--: rem:
repair
尽量不要一键修复,已修复的也不要再修改,先分析为啥启动不起来。元数据破坏也是可以恢复数据的。
在做其他操作之前先将数据库的文件夹打包备份一下。备份时需要先停止数据库软件。
数据文件 collection-*.wt
索引文件 index-*.wt
索引有问题可以重新建立,数据文件丢了就真的恢复不了了
--【拾壹】--:
检查一下现在运行的 mongodb 和 原来的 mongodb 是不是版本不兼容 导致运行不起来
不要急着 repair
--【拾贰】--:
发给AI ,把日志, 一定要吧数据备份就行,再修复,难度不大,除非恶意损坏数据恩

