AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

データベース ダンプから自己管理型シャーディングされたクラスターを復元する

mongorestoreは、mongodump バイナリ エクスポートを読み取り、 MongoDBデプロイにデータを復元するツールです。mongorestore mongodumpを使用して、 バックアップからシャーディングされたクラスターを復元します。

mongodumpソースクラスターの バックアップがあることを確認してください。作成するには、「 データベース ダンプを使用して自己管理型シャードクラスタをバックアップする 」を参照してください。ファイルシステムのスナップショットがある場合は、「 スナップショットから自己管理シャードクラスタを復元する 」を参照してください。

1

チャンクの移行によって復元が中断されないようにするには、 mongos に接続してバランサーを停止します。

sh.stopBalancer()

バランサーが停止したことを確認するには、次のコマンドを実行します。

use config
while( sh.isBalancerRunning().mode != "off" ) {
print( "Waiting for Balancer to stop..." );
sleep( 1000 );
}
2

ソースクラスター内の各シャーディングされたコレクションについては、データを復元する前に対象クラスター上にコレクションを作成し、同じシャードキーを使用してシャードします。

各コレクションのシャードキーを見つけるには、ライブソースクラスターをクエリします。

use config
db.collections.find()

bsondumpまたは、config/collections.bson を使用して、ダンプディレクトリから ファイルを検査することもできます。

bsondump /path/to/dump/config/collections.bson
{
"_id": "<database>.<collection>",
...
"key": { "<shardKeyField>": "<key>" },
...
}

注意

有効なシャードキー値は 1 または "hashed" です。

シャーディングされたコレクションごとに、同じシャードキーを使用して対象クラスターでコレクションをシャードします。

sh.shardCollection(
"<database-name>.<collection-name>",
{ <shardKeyField>: <key> }
)
3

mongorestoremongosを使用して に接続し、クラスターを復元します。宛先クラスターの既存の構成を保持するには、 データベースを除外します。config

mongorestore \
--host <host> \
--port 27017 \
--username <username> \
--password "<password>" \
--authenticationDatabase admin \
--nsExclude='config.*' \
/path/to/backup

重要

--dropオプションは復元する前にコレクションを削除します。コレクションを事前シャーディングした後に--drop を使用すると、mongorestore によりシャーディング構成が削除されます。

4

復元が完了したら、バランサーを再起動します。

sh.startBalancer()

バランサーが実行中であることを確認するには、

sh.isBalancerRunning().mode
full
5

mongos に接続し、sh.status() を実行してクラスター全体のステータスを確認します。

sh.status()

すべてのシャードがアクセス可能であり、通信していることを確認するため、一時的なコレクションにテスト ドキュメントを挿入します。

db.testRestore.insertOne({ test: 1 })

次に、各シャード プライマリに接続し、db.collection.find() を実行してドキュメントが存在することを確認します。

db.testRestore.find()
このページを評価