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

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()

戻る

ファイルシステム スナップショットからのシャードクラスタの復元

項目一覧