Backup
我希望恢復一個 gzip 壓縮的 tarball - mongodump –archive 做什麼?如何使用 –gzip 做一個 mongorestore?
我創建了一個備份
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
選項與無需大量工作即可獲得的結果一樣接近。