1

私は自分のデータベースをmongodumpしようとしました:

sudo mongodump -v --dbpath /var/lib/mongodb --out ~/backups/mongodb_dump/

しかし、各コレクションには興味深い出力がありました (冗長でした)。興味深い行がいくつかあります。

Tue Dec  3 06:32:32 [tools] query my_db.my_collection nreturned:101 reslen:43408 0ms
Tue Dec  3 06:32:32 [tools] getmore my_db.my_collection cursorid:7364310293552401077 nreturned:8565 reslen:4194597 77ms
Tue Dec  3 06:32:32 [tools] getmore my_db.my_collection cursorid:7364310293552401077 nreturned:8053 reslen:4194704 75ms
Tue Dec  3 06:32:32 [tools] getmore my_db.my_collection cursorid:7364310293552401077 nreturned:7936 reslen:4194704 82ms
Tue Dec  3 06:32:32 [tools] getmore my_db.my_collection cursorid:7364310293552401077 nreturned:7932 reslen:4194524 83ms
Tue Dec  3 06:32:32 [tools] getmore my_db.my_collection cursorid:7364310293552401077 nreturned:9201 reslen:4194491 201ms
Tue Dec  3 06:32:33 [tools] getmore my_db.my_collection cursorid:7364310293552401077 nreturned:7253 reslen:3078796 544ms
         49041 objects
Tue Dec  3 06:32:33 [tools]     skipping collection: my_db.my_collection.$_id_
    flickr-app-development-production.download_stats to /home/user/backups/mongodb_dump/my_db/my_collection.bson

どういう意味ですか: skipping collection: my_db.my_collection.$_id_、なぜidフィールドなのですか? 一部のデータがダンプされていないということですか、それともバックアップに ID がないということですか (そのため、データベースの復元中に新しい ID が割り当てられますか? )

奇妙なことmongo show dbsに、サイズmy_dbは約 1Gb ですが、ファイル全体のサイズ.bsonはわずか 150Mb です。

4

1 に答える 1

1

どういう意味ですか: コレクションをスキップ: my_db.my_collection.$ id、なぜ id フィールド? 一部のデータがダンプされていないということですか、それともバックアップに ID がないということですか (そのため、データベースの復元中に新しい ID が割り当てられますか?)

を持つコレクションは、$システム名前空間 (この場合はid_コレクションのインデックス) によって使用され、安全にスキップできます。-v(verbose) オプションが含まれているため、この情報メッセージのみが表示されます。

mongodump(2.2+) は、ダンプを復元するときにインデックスを再作成するため<dbname>.metadata.jsonに使用されるファイルにインデックス定義をエクスポートします。mongorestore

奇妙なのは、mongo show dbs が返す my_db のサイズが約 1Gb であることですが、.bson ファイルの全体のサイズはわずか 150Mb ですか?

デフォルトでは、MongoDB はストレージを事前に割り当てて、ファイル システムの断片化を防ぎ、新しいデータ ファイルを作成する必要がある場合の遅延を減らします。割り当てられるファイル サイズは、データのサイズよりも大きくなります。さらに、MongoDBはドキュメントにレコード パディングを割り当てて、ドキュメントが所定の位置に大きくなる余裕を持たせます。詳細については、MongoDB マニュアルのStorage FAQを参照してください。

db.stats()データベースに対して実行すると、比較のために と の両方fileSizeの値が表示されます。dataSizeBSON ファイルの 150Mb は値に近いはずですがdataSize、1Gbshow dbsfileSize.

于 2013-12-31T22:45:00.513 に答える