Docs Menu
Docs Home
/ /

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

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

mongorestore を使用して mongos に接続し、クラスターを復元します。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()

戻る

ファイルシステムスナップショットからシャーディングされたクラスターを復元する

項目一覧