mongoexportまたはmongodumpでバックアップしますか?


9

本番環境のバックアップでは、MongoDB はデータの正確性のためにmongoexportではなくmongodumpを推奨します。ただし、バックアップする前に、MongoDBデータベースからデータを「スクラブ」する必要があります。mongoexport以外のサーバー側のデータ消去オプションは知りません。2つの質問:

  1. mongoexportのアクセスMongoDBのキャッシュはRAMに?mongodumpのように、RAMのワーキングセットを変更しますか?
  2. mongodumpコマンドには、この--queryオプションがあります。"mongodumpの出力に含まれるドキュメントをオプションで制限するクエリとしてJSONドキュメントを提供します。" ドキュメント内の特定のフィールドを除外するためにクエリは必要ですか?

1
バックアップではなくエクスポートを探しているようです。フィールドのサブセットのみをエクスポートする場合、おそらくそれを復元できず、完全に機能するデータベースを持つことはできません。考慮すべき他のオプションがいくつかあります。通常のmongodumpファイルスナップショットバックアップまたはファイルシステムスナップショットバックアップを実行できるように(アプリケーションコードを介して)機密データでフィールドを暗号化するか、mongoexport必要な処理を行わない場合はカスタムエクスポートを作成します。データを読み取るツールやプログラムmongodは、エクスポートするデータが使用可能なRAMよりも大きい場合、ワーキングセットを変更する可能性があります。ファイルシステムのスナップショットの混乱が少ない
Stennie、2015

説明をありがとう。フィールドでの暗号化は私が考えていないものです、良い提案です。
ハワードリー

回答:


6

最初の質問への回答として、両方のツール(デフォルト)は、_idインデックスをたどってデータをフェッチし、それをディスクに書き込みます。したがって、はい、どちらのツールも同様にワーキングセットに影響を与えるため、セカンダリ(できれば非表示のセカンダリ)に対して実行することをお勧めします。私はここのコメントでStennieをエコーし​​、大量のデータを扱う場合は他のバックアップ方法をお勧めします。

2番目の質問については、特定のフィールドのみをダンプするオプションfrom にmongodump相当するものを探していると仮定します。クエリオプションは、フィルタ結果を使用することができ、それは(返されるフィールドを選択する)投影で使用することができない-これはで追跡されている機能のリクエストであるTOOLS-28まだスケジュールされていません。Stennieも述べたように、ここでのもう1つのオプションは、ニーズに合ったカスタムエクスポーターを作成することです(ここでも、ワーキングセットを保護するためにセカンダリに対して実行することをお勧めします)。--fieldsmongoexport


6
  1. (ごめん、知らない)

  2. --queryは、フィールドではなく、ドキュメント全体を選択または除外します。

しかしそれは良い考えでしょう:

--query '{datetime:{$gt:ISODate("2014-01-01T00:00:00.000Z")}},{_id:0,name:1,address:1,interests:1}'* )
  1. Mongodumpはbsonファイル構造を使用し、データ型保持しますMongoexport値のデータ型失います。NumberLong( "1431677405876")などは1431677405876にのみ変換されます。MongoDBにインポートし直す必要がある場合は、mongodumpが推奨されます。

--queryの説明、およびmongoexport損失データ型の例に感謝します。
ハワードリー、

0

Mongoexportは実際には型を保持しますが、データを不整合にします。IntsとLongsを使用してフィールドをエクスポートする場合、フィールドはそれぞれNumbersオブジェクトとJSONオブジェクトとしてエクスポートされるため、将来はさらに難しくなる可能性があります。

「厳密モード。BSONタイプの厳密モード表現は、JSON RFCに準拠しています。JSONパーサーは、これらの厳密モード表現をキー/値のペアとして解析できます。ただし、MongoDBの内部JSONパーサーだけが、フォーマットによって伝えられるタイプ情報を認識します。」

https://docs.mongodb.com/manual/reference/mongodb-extended-json/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.