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

会社概要 mongosync

mongosync バイナリは、Cluster-to-Cluster Syncで使用されるプライマリ プロセスです。mongosync は、ソースクラスターから宛先クラスターにデータを移行します。

mongosync は、同期が 終了するまで、あるクラスターから別のクラスターにデータと書込みを複製します。このツールを使用すると、 MongoDBクラスター間で 1 回限りのデータ移行を最小限のダウンタイムで実行できます。

実行中の mongosync と宛先クラスターの動作の詳細については、中間同期に関する考慮事項 を参照してください。

重要

mongosynccommit を呼び出し、canWrite が正常に true を返すまで、デスティネーションクラスターはアプリケーションの読み取りまたは書き込みトラフィックを受け付けることができません。障害復旧クラスターの維持にはmongosyncを使用しないでください。

mongosync は、状態を通じて現在のアクションを追跡します。 mongosyncは、受信したリクエストに応じて異なる状態になります。 現在のmongosync状態によって、実行できる API 操作が決まります。

注意

ほとんどの状態移行は、API 呼び出しの結果として発生します。 例外は次のとおりです。

mongosyncの現在の状態を表示するには/progressエンドポイントを使用します。

次の図は、 mongosyncの状態と API 操作の関係を示しています。

``mongosync`` の状態と API 操作の関係の図
クリックして拡大します

よくある質問(FAQ)ページでは、mongosync に関してユーザーから寄せられた質問を取り上げています。

mongosyncがデータの同期を開始する前に、ソースクラスターと宛先クラスターへの初期接続を作成する必要があります。 詳しくは、「 mongosyncの接続 」を参照してください。

mongosyncがソースクラスターと宛先クラスターに接続すると、同期プロセスはIDLE状態になります。

同期プロセスを開始するには、開始エンドポイントを呼び出します。

startエンドポイントはRUNNING状態を開始します。この状態は、 mongosyncがソースクラスターから宛先クラスターにデータを同期するときです。 ソースクラスターに後続の書き込みを行うと、 mongosyncは宛先クラスターに操作を適用します。

同期するソース コレクションごとに、 mongosyncは宛先に対応するコレクションを作成します。

mongosync は、宛先クラスター内の複製されたコレクションの特性の一部を一時的に変更します。 これらの宛先クラスターの特性は、 COMMIT状態中にソースクラスターの特性に戻ります。 詳細については、「コレクションの特性変更 」を参照してください。

RUNNING状態には次の 2 つのフェーズが含まれています。

コレクションのコピー フェーズ中に、 mongosyncはソースクラスターから宛先クラスターへの初期データ転送を実行します。 mongosyncは、ソース コレクションをパーティションに分割し、パーティションを対応する宛先コレクションにコピーすることで、このデータ転送を実行します。

変更イベント アプリケーション(CEA)フェーズは、コレクションのコピー フェーズが終了した後に開始されます。

CEA フェーズ中、ソースクラスターに書き込むと、mongosync は宛先クラスターに継続的な変更を加えます。

宛先クラスターに継続的な更新を行うには、mongosync はソースクラスターで変更ストリームを開き、受信した変更イベントを宛先クラスターに適用します。

CEA フェーズが開始されると、 mongosyncはコレクション コピー フェーズ中に受信した変更イベントを適用してから、CEA フェーズ中に受信したイベントを処理します。

同期プロセスを一時停止してPAUSED状態になるには、一時停止エンドポイントを呼び出します。

一時停止した同期プロセスを再開して、 mongosyncRUNNING状態に戻すには、再開エンドポイントを呼び出します。

ソースクラスターと宛先クラスター間の同期を終了するには、コミットエンドポイントを呼び出します。

注意

コミット プロセスを開始する前に、ソースクラスターへの書込みをブロックする必要があります。

以前に開始エンドポイントを使用するときに enableUserWriteBlocking"sourceAndDestination" に設定した場合、mongosync エンドポイントを使用すると、commit はソースクラスターへの書込みを自動的にブロックします。

enableUserWriteBlocking"sourceAndDestination" setUserWriteBlockModeに設定しなかった場合は、ソースクラスターで を実行して書込みをブロックします。

commit エンドポイントは COMMITTING 状態を開始します。この状態は、mongosync がソースクラスターと宛先クラスター間でのデータの移行を停止したときです。

COMMITTING状態が開始されると、 mongosyncはコミット タイムスタンプを検索します。これはソースクラスタでの最新の操作の時刻です。

エラーがない場合、 mongosyncは成功メッセージを送信し、コミット タイムスタンプまでイベントを処理して CEA を終了します。 mongosyncは、同期中にmongosyncが一時的に変更したコレクションの特性も復元します。

上記のプロセスが完了すると、 mongosyncCOMPED状態になります。 COMMITTED状態は、カットオーバー プロセスが完了したことを示します。

コミットされた同期操作の方向を逆にするには、エンドポイントを呼び出します。

reverseエンドポイントによってRESTING状態が開始されます。 mongosyncはソースクラスターと宛先クラスターをスワップし、変更イベントの適用を再開します。

逆同期が成功すると、 mongosyncRUNNING状態になります。 同期は、元の同期ジョブとは逆方向に続行されます。

mongosyncの詳細については、以下をご覧ください。

戻る

クイックスタート

項目一覧