先日、自宅でwikiサーバーを構築したんですが、そのサーバーが使っているデータベースがmongoDBになります。実際にサーバーを運用する場合に、データベースのバックアップ、リストアを検討することが多いと思いますので、MongoDBに保存されているデータをバックアップ、リストアする手順を紹介します。
手順としては、データをバックアップする方法と、ダンプする方法がありますが、今回はダンプする手順になります。
まずはデータのダンプです。
# mongodump --db <DB名> --out <データをバックアップするパス>
指定したパスに、json、bsonファイルが出力されればOKです。
例:
# mongodump --db wiki --out /tmp
続いて、データを削除して削除してリストアします。
# mongorestore --db <DB名> --drop <バックアップデータのパス>
--db は -d でもOKで、--dropオプションをつけるとデータをリストアする前にデータの削除を行います。私の環境では「--drop」をしない場合、エラーが出てリストアに成功しませんでした。
例:
# mongorestore --db wiki --drop /tmp/wiki
また、特定のコレクションだけの時は -c オプションでコレクション名を指定してリストアするコレクションを選ぶことも可能です。
# mongorestore -d <DB名> -c <コレクション名> <入れるコレクションのパス>
ちなみに、データベースを指定しない場合はすべてのデータベースがバックアップ対象になります。コマンド自体はとても簡単なので、後は、正しくリストアされたことを確認します。