mongosyncユーティリティは、MongoDB クラスター間の接続を作成します。 mongosyncは次の間で接続できます。
MongoDB Atlasのホストされたクラスター、または
自己管理型クラスターと Atlas ホスト型クラスター。
このページでは、 MongoDB Cluster-to-Cluster Sync を使用して Atlas クラスターを接続する手順を説明します。 Atlas クラスターへの接続の詳細については、「データベース配置への接続」を参照してください。
接続文字列
mongosync は、 MongoDB URI 接続文字列を使用してAtlasクラスターに接続します。
SRV 接続スキームの形式は次のとおりです。
mongodb+srv://[username:password@][host.domain.TLD][:port][/defaultauthdb][?options] Atlasで SRV 接続文字列を見つける方法について詳しくは、「クラスターへの接続」を参照してください。
標準の URI 接続スキームの形式は次のとおりです。
mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
レプリカセット構成にリストされているのと同じ方法でmongodインスタンスのホスト名を指定します。
シャーディングされたクラスター の場合は、 インスタンスではなく、mongos mongodインスタンスのホスト名を指定します。
注意
mongosync にはreplicaSetオプションは必要ありません。
mongosync では、ソースクラスターと宛先クラスターに接続するにはprimary読み込み設定(read preference)が必要です。 詳しくは、「読み込み設定(read preference)オプション 」を参照してください。
認証
MongoDB Atlasクラスターに接続するための有効な認証を提供します。 Atlas データベースユーザーがまだいない場合は、ユーザーを作成する必要があります。
ロール
mongosync 接続文字列で指定されたユーザーには、ソースクラスターと宛先クラスターで必要な権限が必要です。権限は、環境と、書込み同期を実行するか、逆同期を実行するかによって異なります。
Atlas の権限は次のとおりです。
同期タイプ | ターゲット | 必要な権限 |
|---|---|---|
default | ソースクラスター |
|
default | 宛先クラスター |
|
書込み (write) ブロックまたは元に戻す | ソースクラスター |
|
書込み (write) ブロックまたは元に戻す | 宛先クラスター |
|
Atlasロールの詳細については、「 Atlas userロール 」を参照してください。
Atlas user権限を更新するには、「プロジェクトへのアクセス権の管理 」を参照してください。
動作
ホスティング
mongosyncユーティリティは、ソースクラスターまたは宛先クラスターのいずれかに近いハードウェアでホストできます。 クラスター内のmongodまたはmongosインスタンスのいずれかと同じサーバーでホストされている必要はありません。 この柔軟性により、宛先クラスターにデータをプッシュまたはプルして、宛先クラスターで実行されているmongodまたはmongosインスタンスへの影響を最小限に抑えることができます。
初期状態
mongosyncが接続すると、 IDLE状態になります。 同期を開始するには、 startコマンドを発行する必要があります。
制限
M10+ Atlas クラスターでmongosyncを実行する前に、 Require Indexes for All Queriesオプションを無効にします。
例
接続情報の収集
ソースクラスターcluster0は、次のサーバーとポートでホストされています。
clusterOne-shard-00-00.abc12.mongodb.net:27017
clusterOne-shard-00-01.abc12.mongodb.net:27017
clusterOne-shard-00-02.abc12.mongodb.net:27017
宛先クラスターcluster1は、次のサーバーとポートでホストされています。
clusterTo-shard-00-00.abc12.mongodb.net:27017
clusterDouble-shard-00-01.abc12.mongodb.net:27017
clusterTo-shard-00-02.abc12.mongodb.net:27017
各クラスターには管理ユーザーclusterAdminが設定されており、パスワードsuperSecretが使用されます。
を使用したソースクラスターと宛先クラスターの接続 mongosync
収集した接続情報を使用して、 cluster0とcluster1の接続文字列を作成します。
cluster0: mongodb+srv://clusterAdmin:superSecret@clusterOne.abc12.mongodb.net cluster1: mongodb+srv://clusterAdmin:superSecret@clusterTwo.abc12.mongodb.net
注意
以下のmongosyncコマンドのレイアウトは表示用に変更されています。 mongosyncを使用してcluster0をcluster1に接続するには、次のコマンドを 1 行で入力します。
mongosync \ --cluster0 "mongodb+srv://clusterAdmin:superSecret@clusterOne.abc12.mongodb.net" \ --cluster1 "mongodb+srv://clusterAdmin:superSecret@clusterTwo.abc12.mongodb.net"