【MongoDB】バックアップのmongodumpとリストアのmongorestoreコマンド | 渋谷ではたらくマー君の技術とかブログ。

渋谷ではたらくマー君の技術とかブログ。

趣味とか技術とかの話を書いていきます。

http://www.mongodb.org/
MongoDBは、高パフォーマン ス、スキーマレス、オープンソースのドキュメント指向データベースである。C++言語で記述されている。MongoDBは、BSONというJSONのバイ ナリ版のような形式でドキュメントを表現し、コレクションとして管理する。この形式は複雑な階層を持たせることができ、かつクエリやインデックスが容易で ある。これにより多くのアプリケーションは自身のネイティブなデータ型や構造に合った自然な方法でデータを格納できる。


最 近、業務で使うことが多くなってきたMongoDB。OracleやMySQLといったRDBと違って、複雑なデータを階層で表すことができるのが特徴。 またRDBには基本的に備わっているトランザクションは省かれているためデータの信頼性は低くなるが、パフォーマンスは非常に高いとされ る。
データベースの操作において基本中の基本であるバックアップとリストア。余裕を持って出来るバックアップに対して焦っているケースが少なくないリストア。
今回はド忘れしても大丈夫なように備忘録として簡単にまとめようと思います。



localhostのtest_dbをバックアップする
$ > mongodump --host localhost --db test_db

localhostのtest_dbにあるtest_collectionをバックアップする
$ > mongodump --host localhost --db test_db --collection test_collection

localhostのtest_dbにあるtest_collectionのユーザ"hiroki"をクエリ指定してバックアップする
$ > mongodump --host localhost --db test_db --collection test_collection -q {userName : 'hiroki'}


バックアップしたtest_dbを全てリストアする
$ > mongorestore --host localhost --db test_db ./dump/test_db

バックアップしたtest_dbのtest_collectionをリストアする
$ >  mongorestore --host localhost --db test_db --collection test_collection  ./dump/test_db/test_collection.bson



上記のlocalhost部分はIPやURLを指定すればリモートホストでも操作可能。
DBの操作はヘタると大変なのでくれぐれも慎重に。自分はいつもビビりながらやってます。