1 つのデータベースまたはコレクションの復元
- Cloud Managerへのプログラムによるアクセスのための OAuth 2.0認証はプレビュー機能として利用できます。
- 機能および関連するドキュメントは、プレビュー期間中にいつでも変更される可能性があります。 OAuth2.0 認証を使用するには、 Cloud Manager Public APIへのリクエストで使用する サービス アカウント を作成します。
スナップショットから単一のデータベースまたはコレクション(または特定のドキュメント)を復元するには、クエリ可能なバックアップを使用して単一のデータベースまたはコレクションをエクスポートし、ターゲットの配置に復元します。
Considerations
復元を試みる前に、ターゲット配置のホストに復元ファイルと復元データベース用の十分なストレージ領域があること、およびデータセットの増加に対応する追加領域があることを確認してください。 現在のデータベース サイズを検索するには、 db.stats()を使用します。
重要
MongoDB Database Toolsの最新バージョン( mongodump
およびmongorestore
を含む)を使用します。 mongosh
の最新バージョンを使用します。
mongodump
の古いバージョンには、コレクション オプション内のキーが間違った順序でダンプされる可能性がある問題が含まれています。 詳しくは、 TOOLS-3411 を参照してください。
クエリ可能なバックアップからのデータベースまたはコレクションの復元
クエリ可能なバックアップのスナップショットを使用して、データベースまたはコレクションのデータをエクスポートし、ターゲットの配置に復元できます。次の手順では、Cloud Managerによって提供されるトンネル[1]を介して、クエリ可能なバックアップのインスタンスに接続します。
クエリ可能なスナップショットへのバックアップ トンネルを開きます。
クエリするスナップショットを選択し、[Next] をクリックします。
Start スナップショットをクエリするプロセス。2 要素認証を求められます。
クエリ可能なスナップショットへの接続方法としてBackup Tunnelを選択します。[1]
プラットフォームを選択してダウンロードします。
ダウンロードしたファイルを解凍します。
注意
クエリ可能なスナップショットがマウントされるまで待ってから続行します。 スナップショットのマウント時間は、スナップショットのサイズによって異なります。 スナップショットがマウントされていることを確認するには、以下を行います。
MongoDB Cloud Managerで、プロジェクトの Continuous Backup ページにGoします。
まだ表示されていない場合は、目的のプロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
サイドバーの Continuous Backup をクリックします。
[継続的なバックアップ ]ページが表示されます。
Restore History タブを選択します。
スナップショットがマウントされると、 Status列はマウント操作の日時を報告します。
ターミナルまたはコマンド プロンプトを開き、解凍された <tunnel> ディレクトリに移動します。実行可能ファイルを実行してトンネルを開始します。
トンネルのデフォルト ポートは
27017
です。 ポートを変更するには、次の例のように--local
フラグを使用します。./<tunnel executable> --local localhost:27020 注意
ポートを変更する場合は、接続時にポート情報を含める必要があります。
mongodump
クエリ可能なバックアップから単一のデータベースまたはコレクションをエクスポートするには、 を使用します。
- データベースのデータをエクスポートするには、
トンネルに接続するには次の
mongodump
オプションを含めます[ 1 ] 。--port
トンネルのポートに設定--db
エクスポートするデータベースの名前に設定--out
空のディレクトリに設定して、データ ダンプを出力します。重要
mongodump
を実行しているユーザーが指定されたディレクトリに書込みできるようにします。
mongodump --port <port for tunnel> --db <single-database> --out <data-dump-path> - コレクションのデータをエクスポートするには、
トンネルに接続するには以下のオプションがあります[1] 。
--port
トンネルのポートに設定します。--db
エクスポートするデータベースの名前に設定します。--collection
単一のコレクション用。--out
空のディレクトリに設定して、データ ダンプを出力します。重要
mongodump
を実行しているユーザーが指定されたディレクトリに書込みできるようにします。
mongodump --port <port for tunnel> \ --db <single-database> \ --collection <collection-name> \ --out <data-dump-path> 例
ポート
27020
で動作しているトンネルに接続してrestaurants
コレクションのデータをtest
データベースから/mydata/restoredata/
ディレクトリにダンプするには、mongodump --port 27020 \ --db test \ --collection restaurants \ --out /mydata/restoredata/ mongodump
はrestaurants
コレクション データを/mydata/restoredata/test/restaurants.bson
ファイルに出力します。
mongorestore
単一のデータベースまたはコレクションを復元するには、 を使用します。
- 単独のデータベースを復元するには、
次の
mongorestore
オプションを含めます。オプションとして、データベースがすでに存在する場合は、宛先クラスター内のデータベースを削除するために
--drop
を含めることができます。
mongorestore --port <port> --db <destination database> <data-dump-path/database> --drop
たとえば、/mydata/restoredata/test
ディレクトリから新しいデータベース restoredTest
に復元するには、次のように行います。
mongorestore --port 27017 --db restoredTest /mydata/restoredata/test --drop
この例では、宛先レプリカセットのプライマリまたは宛先シャーディングされたクラスターのmongos
がポート27017
でリッスンしている ことを前提としています。
- 単独のコレクションを復元するには、
次の
mongorestore
オプションを含めます。オプションとして、コレクションがすでに存在する場合は、宛先クラスター内のコレクションを削除するために
--drop
を含めることができます。
mongorestore --port <port> --db <destination database> --collection <collection-name> <data-dump-path/dbname/collection.bson> --drop
たとえば、/mydata/restoredata/test/restaurants.bson
データ ファイルから test2
データベース内の新しいコレクション rest2
に復元するには、次のように行います。
mongorestore --port 27017 --db test2 --collection rest2 /mydata/restoredata/test/restaurants.bson --drop
この例では、宛先レプリカセットのプライマリまたは宛先シャーディングされたクラスターのmongos
がポート27017
でリッスンしている ことを前提としています。
[1] | ( 1 、 2 、 3 、 4 )あるいは、トンネル経由で接続する代わりに、提供されている X.509 PEM ファイルを使用して、クエリ可能なバックアップに直接接続することもできます。クエリ可能なバックアップに直接接続する場合は、ホスト名とポート、TLS/SSL オプション、および X.509 証明書を指定する必要があります。 |
重要
AES256-GCM で暗号化されたスナップショット復元後のマスター キー ローテーション
Cloud Manager が AES256-GCM を使用して暗号化したスナップショットを復元する場合は、復元の完了後にマスターキーをローテーションします。