よろづやアンテナ

ITから生活の参考になる情報を備忘録代わりに残していきます

MongoDB 3のバックアップ、リストア手順

先日、自宅で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 <コレクション名> <入れるコレクションのパス>


ちなみに、データベースを指定しない場合はすべてのデータベースがバックアップ対象になります。コマンド自体はとても簡単なので、後は、正しくリストアされたことを確認します。