mongodump の動作、アクセス、使用方法
警告
Windows や macOS など、大文字と小文字を区別しないファイル システムにダンプすると、名前が大文字と小文字のみが異なるコレクションは上書きされます。 大文字と小文字を区別しないファイル システムの場合は、常に --archiveオプションを使用します。
警告
データダンプと復元でのフィールドの $ プレフィックスとの競合
MongoDB 5.0以降、ドキュメントフィールド名の前にドル記号( $
)を付けることができます。 ただし、コレクションのオプションにおいてドル記号が先頭に付いているフィールド名では、 mongodump
とmongorestore
は機能しません。
MongoDB 拡張 JSON(v 2 )は、type wrapper と、type wrapper と同じ名前を持つフィールドを区別できません。 対応する BSON 表現に$
プレフィックス付きキーが含まれる可能性がある場合は、拡張 JSON 形式を使用しないでください。 DBRefsメカニズムは、この一般ルールの例外です。
動作
なしで を使用mongodump
authSource
MongoDB URI でauthSource
が指定されていない場合、 --db
で指定されたデータベース名は、 mongodump
セッションの認証とダンプされるデータベースを示す両方に使用されます。 mongodump
を使用する際に認証に別のデータベースを使用する例については、「特定のデータベースによる認証 」を参照してください。
一致するサーバー バージョンへの復元
mongorestore
を使用してmongodump
によって作成されたデータファイルを読み込む場合、ソース配置と宛先配置の MongoDB バージョンは次のいずれかである必要があります。
同一メジャー バージョン。
同一機能互換バージョン。
たとえば、ダンプの作成元が 4.4
を実行中のMongoDB 配置であった場合、復元先となる MongoDB 配置でも、バージョン 4.4
を実行しているか、FCV を 4.4
に設定している必要があります。
機能の互換性バージョンを変更するには、 setFeatureCompatibilityVersion
を参照してください。
注意
mongodump
から生成された BSON ファイルは、復元元と同じかそれ以降のバージョンを実行中の MongoDB 配置に復元できます。ただし、新しいバージョンの配置へのファイルの復元は、配置のアップグレード方法としては推奨されていません。配置のアップグレード方法については、アップグレードのドキュメントを参照してください。
この保証は、メタデータ、アーカイブ、または oplog リプレイ ファイルには適用されません。復元元と復元先の配置バージョンが異なる状態でこれらのファイルを復元しようとすると、mongorestore
プロセスに失敗したり、サイレント障害が発生したり、メタデータが破損したりする可能性があります。
さらに、データファイルをロードするには、 mongorestore
のバージョンが、データファイルの作成に使用したmongodump
のバージョンと同じであることを確認してください。 たとえば、 mongodump
バージョン100.10.0
を使用してダンプを作成した場合、それを復元するにはmongorestore
バージョン100.10.0
を使用します。
読み込み設定 (read preference)
デフォルトでは、 mongodump
は読み込み設定(read preference primary
を使用します。 デフォルトを上書きするには、 コマンドライン オプションまたは --readPreference
で読み込み設定( read preference--uri connection string
)を指定します。
URI string と--readPreference
オプションの両方で読み取り設定が指定されている場合、 --readPreference
の値が URI string で指定された読み取り設定よりも優先されます。
データの除外
--db
} オプションと--collection
オプションの両方を指定すると、 mongodump
は指定されたコレクションをダンプします。
--db
オプションのみを指定すると、 mongodump
はそのデータベースを次の除外でダンプします。
--db
の値がadmin
の場合:Atlas プロキシに接続していない場合、
mongodump
はデータベースをダンプしますが、system.keys
コレクションは除外されます。Atlas プロキシに接続している場合、
mongodump
はデータベースをダンプしようとしますが、エラーが発生します。
--db
の値がconfig
の場合、mongodump
はそのデータベース内のすべてのコレクションをダンプします。--db
の値がlocal
の場合、mongodump
はそのデータベース内のすべてのコレクションをダンプします。他のすべてのデータベースでは、
mongodump
はsystem.
で始まるすべてのコレクションを除外します(system.js
を除く)。
--db
オプションを省略すると、次の除外が適用されます。
mongodump
local
データベースを除外します。mongodump
では、config
データベースの出力に次のコレクションのみが含まれます。chunks
collections
databases
settings
shards
tags
version
Atlas プロキシに接続している場合、
mongodump
はadmin
データベースを除外します。
mongodump
output:
データベース内のドキュメントとインデックス定義が含まれます。
インデックス データは含まれません。
mongorestore
またはmongod
は、データ復元後にインデックスを再構築する必要があります。
デフォルトでは、
mongodump
はビューのメタデータのみをエクスポートします。mongodump
では、ビューに含まれるドキュメントのバイナリ エクスポートは作成されません。ビュー内のドキュメントをエクスポートするには、
--viewsAsCollections
を使用します。
Metadata Output
mongodump
の出力がディレクトリに出力される場合、出力には次のプロパティを含むコレクション メタデータが含まれます。
コレクション名
コレクションの種類
コレクション構成オプション
UUID
Indexes
mongodump
の出力が標準出力( stdout
)に出力される場合、出力にはメタデータは含まれません。 詳しくは、 --out
オプションを参照してください。
Metadata Format
mongodump
メタデータ ファイルにExtended JSON v 2.0 (標準)形式を使用します。 これらのファイルを解析して復元するには、mongorestore
拡張 JSON v をサポートする を使用します。2 0(標準モードまたは緩和モード) 形式。
ファイルの上書き
mongodump
はバックアップ データ フォルダーに出力ファイルがある場合は、そのファイルを上書きします。 mongodump
コマンドを複数回実行する前に、出力フォルダー(デフォルトはdump/
フォルダー)のファイルが不要であることを確認するか、フォルダーまたはファイルの名前を変更してください。
mongodump
リシャーディング中
mongodump
次の場合に失敗します。
mongodump
は、再シャーディング操作の進行中に開始されます。reshardCollection
コマンドはmongodump
操作中に実行されます。
データ圧縮処理
WiredTigerストレージ エンジンを使用するmongod
インスタンスで実行すると、 mongodump
は非圧縮データを出力します。
ワーキングセット
mongodump
は、 mongod
のパフォーマンスに悪影響を与える可能性があります。 データがシステムメモリより大きい場合、 mongodump
はワーキングセットをメモリからプッシュします。
FIPS
mongodump
は、 FIPS モードを使用するように構成されたmongod
またはmongos
への FIPS 準拠の接続を自動的に作成します。
Atlas の無料層クラスターと共有層クラスターでの の使用mongodump
無料(M0
)層および共有(M2
と M5
)層の Atlas クラスターでは、次の制限が適用されます。
admin
データベースではmongodump
を実行できません。 デフォルトでは、mongodump
はこのデータベースをスキップします。--db
オプションを使用して宛先データベースをadmin
に設定すると、プログラムはエラーを返します。mongodump
プログラムでは、次のオプションは使用できません。
注意
ターゲット クラスターのロールバック
復元プロセス中にクラスターがロールバックした場合は、復元されたデータまたはインポートされたデータをすべて削除し、プロセスを最初からやり直してください。 詳細については、 ロールバックに関するドキュメント を参照してください。
必要なアクセス権
アクセス制御が有効になっている MongoDB 配置に対してmongodump
を実行するには、バックアップするデータベースごとにfind
アクションを許可する特権が必要です。 組み込みのbackup
ロールは、任意のデータベースのバックアップを実行するために必要な特権を提供します。
バックアップ戦略での使用
スタンドアロン配置とレプリカセット
スタンドアロンまたはレプリカセットの場合、 mongodump
は、クエリに基づく部分的なバックアップ、本番環境からステージングまたは開発環境への同期、またはスタンドアロンのストレージ エンジンの変更に対してmongorestore
を使用したバックアップ戦略の一部になることができます。
バックアップおよび復旧戦略の一環としてmongorestore
とmongodump
を使用する方法の詳細については、以下をご覧ください。
シャーディングされたクラスター
mongodump
とmongorestore
をシャーディングされたクラスターのバックアップ戦略として使用するには、「データベース ダンプを使用した自己管理型シャーディングされたクラスターのバックアップ 」を参照してください。
シャーディングされたクラスターではバックアップと復元に次のいずれかの連携的なプロセスも利用できます。これにより、書込みを受け入れながらシャード間のアトミック性が保証されます。