私はバックアップを作成しました
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
ドキュメントで、gzip圧縮されたtarballは--archive
で作成する必要があると読みました
このパラメーターは何をしますか? tar
とgz
でそれをエミュレートする方法は?
Mongorestoreは--gzip
でどの形式を想定していますか?
あなたが抱えている問題は、--archive
で作成されたアーカイブ形式がtarballではないということだと思います(そして、ドキュメントには、私が見つけたどこにでもあるとは書かれていません)。むしろそれは here の詳細を見ることができるカスタムパッケージ形式です。コードのクイックスキャンに基づいて、それは一連のヘッダー、生のBSONを記述するメタデータを含む軽量形式のように見えます。スタンドアロンのバイナリを作成して互換性のあるアーカイブファイルを作成する以外は、手動で行うことはできません。
アーカイブなしでmongodump
を実行するが、--gzip
を使用する場合、実際には 個々のファイルをgzip し、通常どおりにダンプを実行してから各ファイルをgzip圧縮することでエミュレートできます。フォルダを個別に。これらの圧縮ファイルは、理論的にはmongorestore --gzip
で復元できます。
全体的には、3.2ツールで--archive
を使用し、手動で再作成しないようにすることをお勧めしますが、--gzip
オプションは、大量の作業をせずに取得できる限り同じです。