MongoDB バックアップ(mongodump)と復元(mongorestore)
MongoDBデータバックアップ
MongoDBでは、mongodumpコマンドを使用してMongoDBデータをバックアップします。このコマンドは、すべてのデータを指定したディレクトリにエクスポートできます。
mongodumpコマンドは、パラメータによってエクスポートするデータ量と転送先サーバーを指定できます。
構文
mongodumpコマンドのスクリプト構文は次のとおりです:
>mongodump -h dbhost -d dbname -o dbdirectory
-
-h:
MongoDBサーバーのアドレス。例:127.0.0.1。もちろんポート番号も指定できます:127.0.0.1:27017
-
-d:
バックアップするデータベースインスタンス。例:test
-
-o:
バックアップデータの保存場所。例:c:\data\dump。このディレクトリは事前に作成しておく必要があります。バックアップ完了後、システムは自動的にdumpディレクトリ内にtestディレクトリを作成し、このディレクトリ内にそのデータベースインスタンスのバックアップデータを保存します。
例
ローカルで27017を使用してmongodサービスを起動します。コマンドプロンプトウィンドウを開き、MongoDBインストールディレクトリのbinディレクトリに移動して、mongodumpコマンドを入力します:
>mongodump
上記のコマンドを実行すると、クライアントはIP 127.0.0.1、ポート番号27017のMongoDBサービスに接続し、すべてのデータをbin/dump/ディレクトリにバックアップします。コマンドの出力結果は次のとおりです:
mongodumpコマンドのオプションパラメータリストは次のとおりです:
| 構文 | 説明 | 例 |
|---|---|---|
| mongodump --host HOST_NAME --port PORT_NUMBER | このコマンドはすべてのMongoDBデータをバックアップします | mongodump --host example.com --port 27017 |
| mongodump --dbpath DB_PATH --out BACKUP_DIRECTORY | mongodump --dbpath /data/db/ --out /data/backup/ | |
| mongodump --collection COLLECTION --db DB_NAME | このコマンドは、指定したデータベースのコレクションをバックアップします。 | mongodump --collection mycol --db test |
MongoDBデータ復元
MongoDBはmongorestoreコマンドを使用してバックアップデータを復元します。
構文
mongorestoreコマンドのスクリプト構文は次のとおりです:
>mongorestore -h <hostname><:port> -d dbname <path>
-
--host
<:port>, -h <:port>: MongoDBサーバーのアドレス。デフォルト:localhost:27017
-
--db
, -d : 復元するデータベースインスタンス。例:test。もちろん、この名前はバックアップ時と異なっていてもかまいません。例:test2
-
--drop:
復元するときは、最初に現在のデータを削除してから、バックアップデータを復元します。つまり、復元後は、バックアップ後に追加・変更されたデータはすべて削除されます。慎重に使用してください!
-
<path>:
mongorestoreの最後のパラメータは、バックアップデータの場所を設定します。例:c:\data\dump\test
<path> と --dir オプションを同時に指定することはできません。--dir でもバックアップディレクトリを設定できます。
-
--dir:
バックアップディレクトリを指定
<path> と --dir オプションを同時に指定することはできません。
次に、以下のコマンドを実行します:
>mongorestore
上記のコマンドを実行すると、出力結果は次のとおりです: