UTALI

みんなの役に立つ情報をどんどん公開していきます

mongodump で MongoDB のバックアップを取る

起動中のMongoDBサーバーに対して以下のコマンドを入力するとdumpフォルダが作成され、MongoDBのダンプファイル(bson形式)が出力されます。

mongodump

ポートを指定する

特定の、デフォルトのポート以外で動いている場合は、以下で指定します。

mongodump  --port 50001

特定のDBのみを対象にする場合は--dbで指定します。

mongodump --db hoge

dumpデータ(bsonデータ)からテーブルを復元するには以下のコマンドを入力します。

mongorestore --collection hoge --db hoges dump/hoge/hoges.bson

構文を解説すると

mongorestore --collection {テーブル名} --db {データベース名} {bsonファイルのパス}

bsonファイルはパスを辿っていけばmongodumpで取得したのと同じ名前のものが見つかるはずです。

また上のコマンドを見ればわかるようにオリジナルのデータベース&テーブルとは別の名前をつけることができます。

うまくいくと以下のようになります。

mochizuki@instance:/opt$ mongorestore --collection tweets --db twitter dump/twitter/tweets.bson

2016-12-16T08:48:01.230+0000    checking for collection data in dump/twitter/tweets.bson

2016-12-16T08:48:01.249+0000    reading metadata for twitter.tweets from dump/twitter/tweets.metadata.json

2016-12-16T08:48:01.266+0000    restoring twitter.tweets from dump/twitter/tweets.bson

2016-12-16T08:48:04.236+0000    [........................]  twitter.tweets  348MB/46.0GB  (0.7%)



2016-12-16T09:11:05.832+0000    [########################]  twitter.tweets  46.0GB/46.0GB  (100.0%)
2016-12-16T09:11:05.832+0000    restoring indexes for collection twitter.tweets from metadata
2016-12-16T09:11:05.832+0000    finished restoring twitter.tweets (26401 documents)
2016-12-16T09:11:05.832+0000    done