このページでは、mongosync を使用してレプリカセットからシャーディングされたクラスターへデータを同期する手順を説明します。
注意
mongosync では、シャーディングされたクラスターからレプリカセットへの同期はサポートされていません。
始める前に
ソース レプリカセットと宛先のシャーディングされたクラスターを定義します。
両方のクラスターで権限を持つ管理ユーザーを定義します。
ダウンロードとインストール
mongosync.
詳しくは、「 mongosync の設定手順 」を参照してください。
手順
レプリカセットとシャーディングされたクラスターを接続する
mongosync データの同期を開始する前に、ソース レプリカセットと宛先のシャーディングされたクラスターの間に初期接続を作成する必要があります。
mongosyncを使用してcluster0をcluster1に接続するには、次のコマンドを入力します。
mongosync \ --cluster0 "<cluster0_connection_string>" \ --cluster1 "<cluster1_connection_string>"
Follow the connection instructions for your cluster architecture to format your connection strings and connect to the mongos instance in your cluster.
同期の開始
データ同期を開始するには、 startエンドポイントを呼び出します。
レプリカセットからシャーディングされたクラスターに同期するには、 startコマンドのshardingオプションを設定して、宛先クラスターのコレクションをシャードします。 詳細については、「シャーディング パラメータ 」を参照してください。
Use the sharding.shardingEntries parameter to specify the collections to shard. Collections that you do not list in this array replicate as unsharded. For more information, see Shard Replica Sets and Choose a Shard Key.
次の例では、レプリカセットからシャーディングされたクラスターへの同期を開始します。
リクエスト
curl localhost:27182/api/v1/start -XPOST \ --data ' { "source": "cluster0", "destination": "cluster1", "sharding": { "createSupportingIndexes": true, "shardingEntries": [ { "database": "accounts", "collection": "us_east", "shardCollection": { "key": [ { "location": 1 }, { "region": 1 } ] } } ] } } '
応答
{"success":true}
次のステップ
mongosyncカットオーバー プロセスを使用して移行を完了し、アプリケーション ワークロードをソース クラスターから宛先クラスターに転送できます。
制限
- レプリカセットとシャーディングされたクラスターの間で、逆エンドポイントを使用することはできません。
mongosyncを使用すると、同期中にsharding.shardingEntriesオプションに含まれるコレクションの名前を変更できます。 詳細については、「同期中の名前の変更 」を参照してください。sharding.createSupportingIndexesオプションを使用すると、同期中に宛先クラスターにインデックスが自動的に作成されます。 ソースクラスターでは、その後にこれらのインデックスを作成することはできません。シャードキーをサポートするインデックスを手動で作成する場合は、
mongosyncが開始する前、または移行が完了してmongosyncが停止した後にインデックスを作成する必要があります。
- ソース レプリカセットにアービタがある場合、ソース レプリカセットには2以上の非アービタ ノードが必要で、非アービタ ノードから同期する必要があります。
詳細については、mongosync 移行の制限を参照してください。