はじめに
本連載ではこれまでMongoDBの機能面に着目してきましたが,
- コマンド表記について
- $ : コマンドラインで実行するコマンド
- > : Mongoシェルで実行するコマンド
MongoDBのバックアップの概要
MongoDBをバックアップするには,
コンフィグオプションは,
データのバックアップには一般的にフルバックアップと差分バックアップを組み合わせて使用しますが,
- [参考]
差分バックアップはヒューマンエラーによるデータ障害から復旧する目的でとられることがありますが,
その目的にはMongoDBの遅延レプリケーションという機能が該当します。遅延レプリケーションについては, 公式サイトを参照してください。
MongoDBでフルバックアップを行うには,
- データファイルをコピーする方法
- mongodumpを利用する方法
データファイルをコピーする方法
データファイルをコピーする方法は,
mongodumpを利用する方法
mongodumpを利用する方法では,
データファイルをコピーする方法を試してみよう
まずは,
バックアップ
mongodを停止し,
$ cp -rp /data/db /path/to/backup/mongobackup1-2013-4-24
これでフルバックアップが完了しました。何の問題も無くmongodを再開することができます。
$ mongod
それでは,
> use admin > db.fsyncLock()
これでデータベースをロックしました。次に,
$ cp -rp /data/db /path/to/backup/mongobackup2-2013-4-24
最後にロックを解除します。
> db.fsyncUnlock()
これでデータベースを停止せずにバックアップを取得することができました。
リストア
まず,
$ rm -rf /data/db
リストアするには,
$ cp -rp /path/to/backup/mongobackup1-2013-4-24 /data/db
これでリストアが完了しました。mongodを起動しましょう。以下のような表示が出て起動できない場合,
$ mongod old lock file: /data/db/mongod.lock. $ rm /data/db/mongod.lock $ mongod
これでリストアが完了しました。