mongodump と mongorestore による MongoDB のバックアップとリストア
ここでは MongoDB のユーティリティである mongodump と mongorestore を用いて、 MongoDB データベースのバックアップとリストアを行う方法を紹介します。
アクセス制御を行なっている場合は、バックアップを実行できる権限があることを確認してください。ここではアクセス制御を設定していないことを前提としています。
バイナリ BSON のダンプによる MongoDB のバックアップとリストア
mongodump コマンドは MongoDB データベース (あるいはコレクション単体) の内容を BSON ファイルに出力するコマンドです。
mongorestore コマンドは mongodump を使って作成した BSON ファイルを、MongoDB に再構築するためのコマンドです。
比較的小規模のデータベースのバックアップに適しています。
mongodump はドキュメントの内容のみをキャプチャします。このためバックアップサイズは小さくなりますが、リストアした後にインデックスの再作成をする必要があります。
mongodump を用いた MongoDB バックアップの作成
mongodump は MongoDB インストール時にインストールされるので直ちに利用できます。
mongodump は実行中の MongoDB に対して直接実行します。
mongodump コマンドの主なオプションは次の通りです。
- --host MongoDB のホスト名を指定 (既定値: localhost)
- --port MongoDB のポート番号を指定 (既定値: 27017)
- --db BSON ダンプを作成するデータベース名を指定 (既定値: config と local 以外全て)
- --out BSON ダンプの出力ディレクトリを指定 (既定値: dump サブディレクトリ)
- --username MongoDB 接続認証用のユーザー名
- --password MongoDB 接続認証用のパスワード
例えば、ローカルで実行されている MongoDB 内の mytestdb というデータベースを、 /Users/user1/mongoDb/mongodump-2021-02-20 ディレクトリにダンプする場合は、次のコマンドになります。
mongodump --host=localhost --port=27017 --db=mytestdb --out=/Users/user1/mongoDb/mongodump-2021-02-20
既定値は省略できますので、 mytestdb のみをデフォルトのディレクトリにダンプする場合は次のようにも書けます。
mongodump --db=mytestdb
mongorestore を用いた MongoDB のリストア
mongodump で作成したバックアップは、 mongorestore コマンドでリストアすることができます。
mongorestore コマンドは次の形式で実行します。
mongorestore [オプション] 「ダンプディレクトリ」または「BSON ファイル」
mongorestore コマンドの主なオプションは次の通りです。
- --host MongoDB のホスト名を指定 (既定値: localhost)
- --port MongoDB のポート番号を指定 (既定値: 27017)
- --db リストアするデータベース名を指定。バックアップディレクトリではなく、BSON ファイルを指定してリストアする場合に使います。
- --username MongoDB 接続認証用のユーザー名
- --password MongoDB 接続認証用のパスワード
- --dryRun リストアを実行しないでサマリ情報を表示 (--verbose と併用すると便利)
- --verbose 詳細情報の表示
例えば、ローカルディレクトリ /Users/user1/mongoDb/mongodump-2021-02-20/ にあるバックアップを、localhost の 27017 ポートで実行されている MongoDB にリストアするなら次のコマンドになります。
mongorestore /Users/user1/mongoDb/mongodump-2021-02-20/
特定のコレクションだけをリストアする場合は、BSON ファイルを直接指定します。
mongorestore /Users/user1/mongoDb/backup/mytestdb/products.bson
以上で、MongoDB の標準のデータベースツールパッケージに含まれる mongodump コマンドと mongorestore コマンドを使った、基本的なバックアップとリストアの方法について説明しました。