Backup

我希望恢復一個 gzip 壓縮的 tarball - mongodump –archive 做什麼?如何使用 –gzip 做一個 mongorestore?

  • September 10, 2016

我創建了一個備份

mongodump -h $RANDOM_SECONDARY_SUP -u $BACKUP_USER -p $BACKUP_PASSWD --out /data/$BACKUP_USER/sup-repl/sup_$DUMPFILE
tar cvzf /data/$BACKUP_USER/dbt/st_$DUMPFILE.tar.gz /data/$BACKUP_USER/st-repl/st_$DUMPFILE

我試圖恢復它--gzip並收到錯誤

mv st_$DUMPFILE.tar.gz test_restore.bson.gz
mongorestore --gzip test_restore.bson.gz
2016-09-08T18:05:14.975+0200    checking for collection data in tgdmead2_test_restore.bson.gz
2016-09-08T18:05:15.090+0200    restoring test.test_restore from tgdmead2_test_restore.bson.gz
2016-09-08T18:05:15.156+0200    Failed: test.test_restore: error restoring from test_restore.bson.gz: reading bson input: invalid BSONSize: 1635017060 bytes

在文件中,我讀到 gzipped tarball 應該使用--archive

這個參數有什麼作用?tar如何用and模擬它gz

mongorestore 期望使用哪種格式--gzip

我認為您遇到的問題是使用創建的存檔格式--archive不是 tarball(文件並沒有說它是我能找到的任何地方)。相反,它是一種自定義包裝格式,您可以在此處查看詳細資訊。基於對程式碼的快速掃描,它看起來像是一種輕量級格式,包含一系列標頭,描述原始 BSON 的元數據。除了創建獨立的二進製文件來創建兼容的存檔文件之外,您無法手動執行此操作。

如果您不mongodump使用存檔,但使用--gzip,它實際上會gzip 單個文件,您可以通過正常轉儲然後分別 gzip 文件夾中的每個文件來模擬這一點。然後理論上可以使用mongorestore --gzip.

總的來說,我建議只--archive在 3.2 工具中使用,而不要嘗試手動重新創建它,但該--gzip選項與無需大量工作即可獲得的結果一樣接近。

引用自:https://dba.stackexchange.com/questions/149136