mongosync ユーティリティは、 MongoDBクラスター間の接続を作成します。 mongosync
は次のクラスターのいずれかに接続できます。
MongoDB Atlas のホストされたクラスター
自己管理型クラスターと Atlas ホスト型クラスター
このページでは、 MongoDB Mongosync を使用して Atlas クラスターを接続する手順を説明します。 Atlas クラスターへの接続の詳細については、「 データベース配置への接続 」を参照してください。
Considerations
ソースと宛先の両方の Atlas クラスターで MongoDB 6.0以降を使用する必要があります。
mongosync
は、レプリカセットとシャーディングされたクラスターをサポートします。mongosync
では、Atlas 共有クラスターまたはサーバーレスインスタンスはサポートされていません。mongosync
は M 10以上の Atlas クラスターでのみ使用できます。
接続文字列
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
接続文字列で指定されたユーザーには、ソースクラスターと宛先クラスターで必要な権限が必要です。 権限は、書込みブロック設定を変更するか、逆同期を使用するかによって、環境によって異なります。
Atlas の権限は次のとおりです。
同期タイプ | 必要なソース権限 | 必要な宛先権限 |
---|---|---|
default |
|
|
二重書込みブロック、元対応、または複数元の逆 |
|
|
Atlas のロールと特権の詳細については、組み込みのロールと特権 を参照してください。
Atlas user権限を更新するには、「プロジェクトへのアクセス権の管理 」を参照してください。
動作
ホスティング
mongosync
ユーティリティは、ソースクラスターまたは宛先クラスターのいずれかに近いハードウェアでホストできます。 クラスター内のmongod
またはmongos
インスタンスのいずれかと同じサーバーでホストされている必要はありません。 この柔軟性により、宛先クラスターにデータをプッシュまたはプルして、宛先クラスターで実行されているmongod
またはmongos
インスタンスへの影響を最小限に抑えることができます。
初期状態
mongosync
が接続すると、 IDLE
状態になります。 同期を開始するには、 startコマンドを発行する必要があります。
制限
M10+
Atlas クラスターでmongosync
を実行する前に、 Require Indexes for All Queriesオプションを無効にします。
例
接続情報の収集
一般的な接続文字列の形式は次のとおりです。
mongodb://<user>:<password>@<clusterName>.<hostname>.mongodb.net/
stringAtlasクラスターの接続 は、Atlas UI から取得できます。詳細については、「データベース配置への接続 」を参照してください。
cluster0
とcluster1
に対して収集した接続文字列は次のようになります。
cluster0: mongodb+srv://clusterAdmin:superSecret@cluster1Name.abc123.mongodb.net cluster1: mongodb+srv://clusterAdmin:superSecret@cluster2Name.abc123.mongodb.net
クラスターを含むプロジェクトには、パスワードsuperSecret
を持つデータベース管理ユーザーclusterAdmin
が存在します。
を使用したソースクラスターと宛先クラスターの接続 mongosync
以下のmongosync
コマンドのレイアウトは表示用に変更されています。 mongosync
を使用してcluster0
をcluster1
に接続するには、次のコマンドを 1 行で入力します。
mongosync \ --cluster0 "mongodb+srv://clusterAdmin:superSecret@cluster1Name.abc123.mongodb.net" \ --cluster1 "mongodb+srv://clusterAdmin:superSecret@cluster2Name.abc123.mongodb.net"
Atlas クラスターには TLS 接続が必要です。 Atlas クラスターでmongosync
を使用するには、 tls=true
オプションを追加します。 たとえば、 cluster0
とcluster1
上のadmin
データベースに接続するには、次の手順に従います。
mongosync \ --cluster0 "mongodb+srv://clusterAdmin:superSecret@cluster1Name.abc123.mongodb.net/admin?tls=true" \ --cluster1 "mongodb+srv://clusterAdmin:superSecret@cluster2Name.abc123.mongodb.net/admin?tls=true"
mongosync
ではmongodb+srv
接続文字列を使用することもできます。 tls=true
mongodb+srv
接続 にstring オプションを追加する必要はありません。例:
mongosync \ --cluster0 "mongodb+srv://clusterAdmin:superSecret@cluster1Name.abc123.mongodb.net/" \ --cluster1 "mongodb+srv://clusterAdmin:superSecret@cluster2Name.abc123.mongodb.net/"
mongodb+srv
接続文字列の詳細については、 SRV 接続形式 を参照してください。