mongodump の例
項目一覧
このページでは mongodump
の例を示します。
mongo
shell ではなく、システム コマンドラインから mongodump
を実行します。
コレクションで を使用するmongodump
次の操作では、 test
という名前のデータベースにrecords
という名前のコレクションのみを含むダンプファイルが作成されます。 この例では、データベースはポート27017
のローカル インターフェースで実行されています。
mongodump --db=test --collection=records
mongodump
データベースで を使用し、指定されたコレクションを除外する
次の操作を実行すると、test
データベースのすべてのコレクション(users
と salaries
: を除く)がダンプされます。
mongodump --db=test --excludeCollection=users --excludeCollection=salaries
アクセス制御で を使用するmongodump
次の例では、 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
コマンドが削除されます。
別の方法として、ユーザーはmongodump
とmongorestore
( mongorestore
オプション--nsFrom
と--nsTo
とともに)を使用できます。
たとえば、test
データベースをデフォルト ポート 27017 で実行中のローカル インスタンスから同じインスタンス上の examples
データベースにコピーするには、次の操作を実行します。
mongodump
を使用して、test
データベースをアーカイブmongodump-test-db
にダンプします。mongodump --archive="mongodump-test-db" --db=test アーカイブから(データベース名を変更したうえで)復元するには、
mongorestore
を--nsFrom
および--nsTo
とともに使用します。mongorestore --archive="mongodump-test-db" --nsFrom="test.*" --nsTo="examples.*"
Tip
必要に応じて、URI またはホスト、ユーザー名、パスワード、認証データベースの指定など、追加のオプションを含めます。
AWS IAM 認証情報を使用して MongoDB Atlas クラスターに接続
バージョン 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-AWS
authentication mechanism
$external
authSource
に接続するには、この例に示すように、 と が使用されます。
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-AWS
authentication 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
の実行中に発生する書き込み。
oplog オプションで mongodump を使用する
mongodump --oplog
は、 mongodump
出力ディレクトリの最上位にoplog.bson
という名前のファイルを作成します。 ファイルには、 mongodump
の実行中に発生する書込み操作が含まれています。 mongodump
が完了した後に発生する書込みは ファイルに記録されません。
mongodump
を使用してシャーディングされたクラスターをバックアップするには、「データベース ダンプを使用して自己管理型シャーディングされたクラスターをバックアップする 」を参照してください。
oplogRePlay オプションで mongorestore を使用する
oplog.bson
ファイルから oplog エントリを復元するには、 mongorestore --oplogReplay
を使用します。 データベースが最新で、 mongodump
の実行中に発生したすべての書き込みが含まれていることを確認するには、 mongodump --oplog
をmongorestore --oplogReplay
と併用します。
詳細
クラスター間の移行のためのmongosync ユーティリティ
Atlas でのデータの移行またはインポート
Atlas でのデータのバックアップ、復元、アーカイブ