シャーディングされたクラスターへのレプリカセットの同期
このページでは、 mongosync
を使用して、レプリカセットのデータをシャーディングされたクラスターに同期する手順について説明します。
注意
mongosync
では、シャーディングされたクラスターからレプリカセットへの同期はサポートされていません。
始める前に
ソース レプリカセットと宛先のシャーディングされたクラスターを定義します。
両方のクラスターで権限を持つ管理ユーザーを定義します。
ダウンロードとインストール
mongosync
.
詳しくは、「 mongosync の設定手順 」を参照してください。
手順
レプリカセットとシャーディングされたクラスターを接続する
mongosync
データの同期を開始する前に、ソース レプリカセットと宛先のシャーディングされたクラスターの間に初期接続を作成する必要があります。
mongosync
を使用してcluster0
をcluster1
に接続するには、次のコマンドを入力します。
mongosync \ --cluster0 "<cluster0_connection_string>" \ --cluster1 "<cluster1_connection_string>"
クラスター アーキテクチャの接続手順に従って接続文字列をフォーマットし、クラスター内の mongos
インスタンスに接続します。
同期の開始
データ同期を開始するには、 startエンドポイントを呼び出します。
レプリカセットからシャーディングされたクラスターに同期するには、 start
コマンドのsharding
オプションを設定して、宛先クラスターのコレクションをシャードします。 詳細については、「シャーディング パラメータ 」を参照してください。
シャーディングするコレクションを指定するには、 sharding.shardingEntries
パラメーターを使用します。 この配列に一覧表示しないコレクションは、シャーディングされていないコレクションとして複製されます。 詳しくは、「レプリカセットのシャーディング 」および「 シャードキーの選択 」を参照してください。
次の例では、レプリカセットからシャーディングされたクラスターへの同期を開始します。
リクエスト
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以上の非アービタ ノードが必要で、非アービタ ノードから同期する必要があります。
詳細については、「制限 」を参照してください。