bsondump命令是將BSON格式的文件轉換為可讀性更強的文件格式,例如轉為為JSON 格式的文檔,bsondump預設轉換為json格式的文檔。 當通過mongodump命令進行備份時,如果有參數 --oplog,會在備份路徑下產生一個oplog.bson文件。 這個文件是bson格式,沒有辦法 ...
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
執行命令如下:
./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" 數據,是不好恢復的。
而轉換後,我們可以根據相關的命令,在轉換後的文件中查找。
本文版權歸作者所有,未經作者同意不得轉載,謝謝配合!!!