经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MongoDB » 查看文章
通过 bsondump 命令工具 解析备份产生的bson文件
来源:cnblogs  作者:东山絮柳仔  时间:2019/4/17 8:58:41  对本文有异议

bsondump命令是将BSON格式的文件转换为可读性更强的文件格式,例如转为为JSON 格式的文档,bsondump默认转换为json格式的文档。

当通过mongodump命令进行备份时,如果有参数 --oplog,会在备份路径下产生一个oplog.bson文件。

这个文件是bson格式,没有办法直接查看的,打开乱码,

例如,tail -3 oplog.bson,打开 如下:

所以,我们可以先通bsondump将bson转换为json格式。

bsondump添加参数--outFile还可以,将转换后的数据以文件的形式输出出来。

例如,在mongodb可执行文档bin下执行,将/QQ/back/20180416/oplog.bson转换为json格式,输出的文件为/QQ/back/20180416/oplogtest01.json

执行命令如下:

  1. ./bsondump --quiet /QQ/back/20180416/oplog.bson --outFile /QQ/back/20180416/oplogtest01.json

 转换后的oplogtest01.json可以直接查看。

如下:

 

现在回顾一下,我们之前实现的MongoDB增量备份,其导出数据是通过mongodump命令导出 -d local -c oplog.rs 的数据,产生的文件也包含oplog.rs.bson

导出的文件如下

这种bson文件的读取,也是需要bsondump转换的。

 

注意事项:

1:mongodump 备份时,如果有压缩参数 --gzip ,则备份生成的bson文件,通过bsondump不可以正常解析,报错:

0 objects found;unexpected EOF

错误截图如下:

 

2:转换后,增加可读性的好处是方便定位操作指令在什么时候产生的。例如,如果开发同学告诉我们在昨天的16点左右,有一个update误操作,具体的时间点很难定位。这时候,我们虽然有增量备份,如果你不知道具体的时间点,具体的 "ts" 数据,是不好恢复的。

而转换后,我们可以根据相关的命令,在转换后的文件中查找。

 

本文版权归作者所有,未经作者同意不得转载,谢谢配合!!!

 

原文链接:http://www.cnblogs.com/xuliuzai/p/10718258.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号