Docs Menu
Docs Home
/
MongoDB データベース ツール
/

mongodump の例

項目一覧

  • コレクションで mongodumpを使用する
  • mongodump をデータベースと併用し、特定コレクションを除外
  • mongodump をアクセス制御と併用
  • アーカイブ ファイルへの出力
  • 出力を圧縮
  • データベースのコピーと複製
  • AWS IAM 認証情報を使用して MongoDB Atlas クラスターに接続
  • 特定データベースによる認証
  • コンシステントバックアップ ファイルの作成と復元
  • 詳細

このページでは mongodumpの例を示します。

mongo shell ではなく、システム コマンドラインから mongodump を実行します。

次の操作では、 testという名前のデータベースにrecordsという名前のコレクションのみを含むダンプファイルが作成されます。 この例では、データベースはポート27017のローカル インターフェースで実行されています。

mongodump --db=test --collection=records

次の操作を実行すると、test データベースのすべてのコレクション(userssalaries: を除く)がダンプされます。

mongodump --db=test --excludeCollection=users --excludeCollection=salaries

次の例では、 mongodumpは、ホストmongodb1.example.net上のポート37017で実行中のデータベースから、 /opt/backup/mongodump-2011-10-24にあるデータベース ダンプを作成し、ユーザー名userを使用して次のように認証します。

mongodump --host=mongodb1.example.net --port=37017 --username=user --authenticationDatabase=admin --out=/opt/backup/mongodump-2011-10-24

--passwordを含めない場合、 mongodumpはユーザーにパスワードの入力を要求します。

アーカイブ ファイルにダンプを出力するには、 --archiveオプションとアーカイブ ファイル名を指定してmongodumpを実行します。 たとえば、次の操作では、 testデータベースのダンプを含むファイルtest.20150715.archiveが作成されます。

mongodump --archive=test.20150715.archive --db=test

出力ダンプ ディレクトリ内のファイルを圧縮するには、新しい--gzipオプションを指定してmongodumpを実行します。 たとえば、次の操作は圧縮ファイルをデフォルトのdumpディレクトリに出力します。

mongodump --gzip --db=test

mongodumpでアーカイブ ファイル出力を圧縮するには、 --gzipオプションと--archiveオプションを組み合わせて使用し、圧縮ファイルの名前を指定します。

mongodump --archive=test.20150715.gz --gzip --db=test

MongoDB バージョン 4.2 以降では、非推奨の copydb コマンドと clone コマンドが削除されます。

別の方法として、ユーザーはmongodumpmongorestoremongorestoreオプション--nsFrom--nsToとともに)を使用できます。

たとえば、test データベースをデフォルト ポート 27017 で実行中のローカル インスタンスから同じインスタンス上の examples データベースにコピーするには、次の操作を実行します。

  1. mongodump を使用して、test データベースをアーカイブ mongodump-test-db にダンプします。

    mongodump --archive="mongodump-test-db" --db=test
  2. アーカイブから(データベース名を変更したうえで)復元するには、mongorestore--nsFrom および --nsToとともに使用します。

    mongorestore --archive="mongodump-test-db" --nsFrom="test.*" --nsTo="examples.*"

Tip

必要に応じて、URI またはホスト、ユーザー名、パスワード、認証データベースの指定など、追加のオプションを含めます。

バージョン 100.1.0 の新機能

Amazon Web ServicesIAM MongoDB Atlas認証情報 による認証をサポートするように構成済みの connection stringクラスターに接続するには、mongodump は、次のように提供します

mongodump 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>

AtlasAmazon Web Servicesこの方法で IAM 認証情報を使用してMONGODB-AWSauthentication mechanism $externalauthSourceに接続するには、この例に示すように、 と が使用されます。

AWS セッショントークンを使用する場合 同様に、AWS_SESSION_TOKEN authMechanismProperties 値を次のとおり指定します。

mongodump 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<aws session token>' <other options>

注意

AWS アクセスキー ID、シークレット アクセス キー、またはセッション トークンに次の文字が含まれている場合。

: / ? # [ ] @

上記文字はパーセント エンコーディングを使用して変換される必要があります。

あるいは、次のように、 、 、 --usernameオプションを使用して、Amazon Web Services IDstring--passwordアクセスキー--awsSessionToken 、シークレットアクセスキー、およびオプションのセッショントークンをそれぞれ接続 の外部で提供することもできます。

mongodump 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' --username <aws access key id> --password <aws secret access key> --awsSessionToken <aws session token> <other options>

コマンドライン パラメーターとして指定する場合、前の 3 つのオプションはパーセント エンコーディングを必要としません。

標準のAmazon Web Services IAM 環境変数 を使用してプラットフォーム上でこれらの認証情報を設定することもできますmongodumpを使用すると、MONGODB-AWSauthentication mechanism は次の環境変数をチェックします。

  • AWS_ACCESS_KEY_ID

  • AWS_SECRET_ACCESS_KEY

  • AWS_SESSION_TOKEN

設定されている場合、これらの認証情報を接続文字列や明示的なオプションで指定する必要はありません。

注意

Amazon Web Services の環境変数を使用してこれらの値を指定する場合、これらの認証情報に対応する明示的オプションまたは接続文字列 オプションと混在させることはできません。アクセス キー ID シークレット アクセス キー(および使用する場合はセッション トークンも)の環境変数を使用、または代わりに明示的オプションもしくは接続文字列 オプションをそれぞれを指定します。

次の例では、bash shell で環境変数が設定されます。

export AWS_ACCESS_KEY_ID='<aws access key id>'
export AWS_SECRET_ACCESS_KEY='<aws secret access key>'
export AWS_SESSION_TOKEN='<aws session token>'

他の shell で環境変数を設定する場合の構文は異なります。詳細については、お使いの shell のドキュメントを参照してください。

環境変数が設定されていることを確認するには、次のコマンドを使用します。

env | grep AWS

環境変数の設定後に、次の例を実行して MongoDB Atlas クラスターに接続します。

mongodump 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>

ダンプ中のものとは別のデータベースで認証するには、MongoDB URI にauthSource を指定する必要があります。

この例では、次のことが行われます。

  • ユーザー名 myuser とパスワード mypasswordが使用されます。このユーザーには testdb への読み取りアクセス権があります。

  • admin データベースは、ユーザーの認証に使用されます。

  • testdb データベースをダンプ中です。

mongodump 'mongodb+srv://myuser:mypassword@cluster0.example.com/?authSource=admin' --db testdb

oplogエントリを使用して一貫性のあるmongodumpバックアップ ファイルを作成するには、 mongodump --oplogオプションを使用します。 バックアップ ファイルからデータを復元するには、 mongorestore --oplogReplayオプションを使用します。

oplogには、データベース書込み (write) 操作の履歴が含まれます。

mongodump 出力:

  • コレクション ドキュメント、メタデータ、オプション。

  • インデックスの定義。

  • --oplogが指定されている場合に、 mongodumpの実行中に発生する書き込み。

mongodump --oplog は、 mongodump出力ディレクトリの最上位にoplog.bsonという名前のファイルを作成します。 ファイルには、 mongodumpの実行中に発生する書込み操作が含まれています。 mongodumpが完了した後に発生する書込みは ファイルに記録されません。

mongodumpを使用してシャーディングされたクラスターをバックアップするには、「データベース ダンプを使用して自己管理型シャーディングされたクラスターをバックアップする 」を参照してください。

oplog.bsonファイルから oplog エントリを復元するには、 mongorestore --oplogReplayを使用します。 データベースが最新で、 mongodumpの実行中に発生したすべての書き込みが含まれていることを確認するには、 mongodump --oplogmongorestore --oplogReplayと併用します。

戻る

動作