Atlas への自己管理型クラスターの接続
mongosync ユーティリティは、 MongoDBクラスター間の接続を作成します。 mongosync
は次のクラスターのいずれかに接続できます。
MongoDB Atlas のホストされたクラスター
自己管理型クラスターと Atlas ホスト型クラスター
このページでは、 MongoDB Cluster-to-Cluster Sync を使用して、自己管理型クラスターを Atlas クラスターに接続する手順を説明します。
Atlas クラスターへの接続の詳細については、「データベース配置への接続」を参照してください。
注意
最高のパフォーマンスを得るには、移行の前に、 自己管理型クラスター上の を最新の MongoDB Server パッチ リリースにアップグレードしてください。 詳細については、「 MongoDB の最新の自己管理型パッチ リリースへのアップグレード 」を参照してください。
接続文字列
mongosync
は、 MongoDB URI 接続文字列を使用して、自己管理型クラスターに接続します。
SRV 接続スキームの形式は次のとおりです。
mongodb+srv://[username:password@][host.domain.TLD][/defaultauthdb][?options] 標準の URI 接続スキームの形式は次のとおりです。
mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
レプリカセット構成にリストされているのと同じ方法でmongod
インスタンスのホスト名を指定します。
シャーディングされたクラスター の場合は、 インスタンスではなく、mongos
mongod
インスタンスのホスト名を指定します。
注意
mongosync
にはreplicaSet
オプションは必要ありません。
mongosync
では、ソースクラスターと宛先クラスターに接続するにはprimary
読み込み設定(read preference)が必要です。 詳しくは、「読み込み設定(read preference)オプション 」を参照してください。
mongosync
は、 MongoDB URI 接続文字列を使用してAtlasクラスターに接続します。
SRV 接続スキームの形式は次のとおりです。
mongodb+srv://[username:password]@[clusterName].[host].mongodb.net/ Atlasで SRV 接続文字列を見つける方法について詳しくは、「クラスターへの接続」を参照してください。
標準の URI 接続スキームの形式は次のとおりです。
mongodb://[username:password]@[clusterName].[host].mongodb.net/
mongosync
では、ソースクラスターと宛先クラスターに接続するにはprimary
読み込み設定(read preference)が必要です。 詳しくは、「読み込み設定(read preference)オプション 」を参照してください。
認証
MongoDB Atlasクラスターに接続するための有効な認証を提供します。 Atlas データベースユーザーがまだいない場合は、ユーザーを作成する必要があります。
ソースクラスターまたは宛先クラスターのいずれかに認証が必要な場合は、 mongosync
を呼び出すときに正しい認証情報を指定する必要があります。
ロール
mongosync
接続文字列で指定されたユーザーには、ソースクラスターと宛先クラスターで必要な権限が必要です。権限は、環境と、書込み同期を実行するか、逆同期を実行するかによって異なります。
自己管理型権限は次のとおりです。
同期タイプ | 必要なソース権限 | 必要な宛先権限 |
---|---|---|
default | ||
書込み (write) ブロック | ||
元に戻す |
サーバー ロールの詳細については、「自己管理型配置でのロールベースのアクセス制御 」を参照してください。
ユーザー権限を更新するには、 grantRolesToUser
を参照してください。
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
は、次のサーバーとポートでホストされています。
clusterOne01.fancyCorp.com:20020
clusterOne02.fancyCorp.com:20020
clusterOne03.fancyCorp.com:20020
宛先 Atlas クラスターであるcluster1
は、次のサーバーとポートでホストされています。
cluster2Name-01.abc123.com:27017
cluster2Name-02.abc123.com:27017
cluster2Name-03.abc123.com:27017
各クラスターには管理ユーザーclusterAdmin
が設定されており、パスワードsuperSecret
が使用されます。
を使用したソースクラスターと宛先クラスターの接続 mongosync
自己管理型クラスターの一般的な接続文字列形式は次のとおりです。
mongodb://<user>:<password>@<ip-address>:<port>,<ip-address>:<port>,<ip-address>:<port>
クラスターの一般的な接続文字列 Atlas 形式は次のとおりです。
mongodb://<user>:<password>@<clusterName>.<hostname>.mongodb.net/
自己管理型クラスター用に収集した接続情報を使用して、 cluster0
の接続文字列を作成します。
cluster0: mongodb://clusterAdmin:superSecret@clusterOne01.fancyCorp.com:20020,clusterOne02.fancyCorp.com:20020,clusterOne03.fancyCorp.com:20020
stringAtlasクラスターの接続 は、Atlas UI から取得できます。詳細については、「データベース配置への接続 」を参照してください。
以下のmongosync
コマンドのレイアウトは表示用に変更されています。 mongosync
を使用してcluster0
をcluster1
に接続するには、次のコマンドを 1 行で入力します。
mongosync \ --cluster0 "mongodb://clusterAdmin:superSecret@clusterOne01.fancyCorp.com:20020,clusterOne02.fancyCorp.com:20020,clusterOne03.fancyCorp.com:20020" \ --cluster1 "mongodb://clusterAdmin:superSecret@cluster2Name.abc123.mongodb.net"
Atlas クラスターには TLS 接続が必要です。 Atlas クラスターでmongosync
を使用するには、 tls=true
オプションを追加します。 たとえば、 cluster0
とcluster1
上のadmin
データベースに接続するには、次の手順に従います。
mongosync \ --cluster0 "mongodb://clusterAdmin:superSecret@clusterOne01.fancyCorp.com:20020,clusterOne02.fancyCorp.com:20020,clusterOne03.fancyCorp.com:20020/admin?tls=true" \ --cluster1 "mongodb://clusterAdmin:superSecret@cluster2Name.abc123.mongodb.net/admin?tls=true"
mongosync
ではmongodb+srv
接続文字列を使用することもできます。 tls=true
mongodb+srv
接続 にstring オプションを追加する必要はありません。例:
mongosync \ --cluster0 "mongodb+srv://clusterAdmin:superSecret@clusterOne01.fancyCorp.com/" \ --cluster1 "mongodb+srv://clusterAdmin:superSecret@cluster2Name.abc123.mongodb.net/"
mongodb+srv
接続文字列の詳細については、 SRV 接続形式 を参照してください。