mongodump と mongorestore による MongoDB のバックアップとリストア

ここでは MongoDB のユーティリティである mongodumpmongorestore を用いて、 MongoDB データベースのバックアップとリストアを行う方法を紹介します。

アクセス制御を行なっている場合は、バックアップを実行できる権限があることを確認してください。ここではアクセス制御を設定していないことを前提としています。

バイナリ BSON のダンプによる MongoDB のバックアップとリストア

mongodump コマンドは MongoDB データベース (あるいはコレクション単体) の内容を BSON ファイルに出力するコマンドです。

mongodump によるバックアップと mongorestore によるリストア

mongorestore コマンドは mongodump を使って作成した BSON ファイルを、MongoDB に再構築するためのコマンドです。

比較的小規模のデータベースのバックアップに適しています。

mongodump はドキュメントの内容のみをキャプチャします。このためバックアップサイズは小さくなりますが、リストアした後にインデックスの再作成をする必要があります。

mongodump を用いた MongoDB バックアップの作成

mongodump は MongoDB インストール時にインストールされるので直ちに利用できます。

mongodump は実行中の MongoDB に対して直接実行します。

mongodump コマンドの主なオプションは次の通りです。

  • --host MongoDB のホスト名を指定 (既定値: localhost)
  • --port MongoDB のポート番号を指定 (既定値: 27017)
  • --db BSON ダンプを作成するデータベース名を指定 (既定値: configlocal 以外全て)
  • --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 コマンドを使った、基本的なバックアップとリストアの方法について説明しました。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Node.js 入門