MongoDBのインストールからバックアップ&リストアまで | 世界的日曜WEBプログラマー日記

世界的日曜WEBプログラマー日記

一年後に世界的なWEBサービスを運営するにはどうすればいいのか書いていく(予定)

Mongodb インストールからリストアまで


お弁当の宅配サイトでは一部をMongodbを使って実装している。その際に行った作業をココにまとめ。はてぶで8個もリンクを貰ったのでやっぱり需要あるのかねー。

まずはインストール.いろいろな方法があるが、apt-getがやっぱり一番楽

$ emacs /etc/sources.list
$ deb http://downloads.mongodb.org/distros/ubuntu 10.10 10gen
$ sudo apt-get updtate
$ sudo apt-get install mongodb-stable


mongodbを起動する。その際に好きなフォルダを指定する。

$ mongod --dbpath=/home/ytodoroki/somewhere/youwant


別にフォルダを作ってなくても自動的に作成される。さて続いてMongodbを起動する。

$ mongo
MongoDB shell version: 1.8.0-rc0-pre-
connecting to: test
>

これでOK。エラーで以下のようなエラーが出る場合は
mongodというコマンドを使ってデータベースを立ちあげていない。
Error: couldn't connect to server 127.0.0.1 shell/mongo.js:79

続いてバックアップを紹介する.mongodbをバックアップする方法について、
例えばbackupdirというフォルダにバックアップを入れる際は、

 $ mongodump --out ./backupdir

とする。これでbackupdirに実際にバックアップファイル(.bsonファイル)が保存される。
さて、リストアする方法だがデータベース名(例えばfoo-development)を指定する。
以下のようにする。

 $ mongorestore --db foo-development --drop ./backupdir

--dropはもともとあるfoo-developmentをドロップするという命令。
--dbはデータベス名を指定の引数
データベース名は、show dbsで列挙されるデータベースである。(下参照 )

MongoDBについて

$ mongo # mongoの起動。予めmongodでデーモンを立ちあげておくことを忘れずに。
> show dbs # database名のの表示コマンド
admin (empty)
foo-development 0.0625GB
local (empty)
> db.testdb.save({}) # 例)データベースの作成( testdbというデータベースが作られる )
> db.testdb.drop() # 例)データベースの削除
true


show dbsででてくる名前のデータベースをリストアする。
mongodumpは特に指定をしなければすべてのデータベースがダンプされる。
もちろん、特定のDBだけのdumpも可能。リモート先のDBなどやもできるか

そうしたことは後述の本家のサイトに書いてある
参考:
簡易版(オーバービュー:英語版)
http://www.mongodb.org/display/DOCS/Overview+-+The+MongoDB+Interactive+Shell
本格的(英語版)
http://www.mongodb.org/display/DOCS/dbshell+Reference


株式会社OctOpt
コンピューターサイエンス会社OctOptの技術公式ブログ
等々力 康弘
@rocky_house