Docs Menu
Docs Home
/
MongoDB Cluster-to-Cluster Sync
/

シャーディングされたクラスターへのレプリカセットの同期

項目一覧

  • 始める前に
  • 手順
  • 次のステップ
  • 制限
  • 詳細

このページでは、 mongosyncを使用して、レプリカセットのデータをシャーディングされたクラスターに同期する手順について説明します。

注意

mongosync では、シャーディングされたクラスターからレプリカセットへの同期はサポートされていません。

  • ソース レプリカセットと宛先のシャーディングされたクラスターを定義します。

  • 両方のクラスターで権限を持つ管理ユーザーを定義します。

  • ダウンロードとインストール mongosync.

詳しくは、「 mongosync の設定手順 」を参照してください。

1

mongosync データの同期を開始する前に、ソース レプリカセットと宛先のシャーディングされたクラスターの間に初期接続を作成する必要があります。

mongosyncを使用してcluster0cluster1に接続するには、次のコマンドを入力します。

mongosync \
--cluster0 "<cluster0_connection_string>" \
--cluster1 "<cluster1_connection_string>"

クラスター アーキテクチャの接続手順に従って接続文字列をフォーマットし、クラスター内の mongosインスタンスに接続します。

2

データ同期を開始するには、 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以上の非アービタ ノードが必要で、非アービタ ノードから同期する必要があります。

詳細については、「制限 」を参照してください。

戻る

クラスター トポロジー