mongosync バイナリは、Cluster-to-Cluster Syncで使用されるプライマリ プロセスです。mongosync はソースクラスターから宛先クラスターにデータを移行し、同期を完了するまでクラスターを継続的に同期させます。
mongosync を使用すると、本番環境をミラーリングした分析、開発、またはテスト専用のクラスターを作成できます。
mongosync は、状態を通じて現在のアクションを追跡します。 mongosyncは、受信したリクエストに応じて異なる状態になります。 現在のmongosync状態によって、実行できる API 操作が決まります。
注意
ほとんどの状態移行は、API 呼び出しの結果として発生します。 例外は次のとおりです。
COMMITTINGからCOMMITTEDへの移行。 詳しくは、「同期の終了 」を参照してください。REVERSINGからRUNNINGへの移行。 詳しくは、「 元の同期 」を参照してください。
mongosyncの現在の状態を表示するには/progressエンドポイントを使用します。
次の図は、 mongosyncの状態と API 操作の関係を示しています。
詳細
ソースクラスターと宛先クラスターの接続
mongosyncがデータの同期を開始する前に、ソースクラスターと宛先クラスターへの初期接続を作成する必要があります。 詳しくは、「 mongosyncの接続 」を参照してください。
mongosyncがソースクラスターと宛先クラスターに接続すると、同期プロセスはIDLE状態になります。
同期の開始
同期プロセスを開始するには、開始エンドポイントを呼び出します。
startエンドポイントはRUNNING状態を開始します。この状態は、 mongosyncがソースクラスターから宛先クラスターにデータを同期するときです。 ソースクラスターに後続の書き込みを行うと、 mongosyncは宛先クラスターに操作を適用します。
同期するソース コレクションごとに、 mongosyncは宛先に対応するコレクションを作成します。
mongosync は、宛先クラスター内の複製されたコレクションの特性の一部を一時的に変更します。 これらの宛先クラスターの特性は、 COMMIT状態中にソースクラスターの特性に戻ります。 詳細については、「コレクションの特性変更 」を参照してください。
RUNNING状態には次の 2 つのフェーズが含まれています。
コレクションのコピー
コレクションのコピー フェーズ中に、 mongosyncはソースクラスターから宛先クラスターへの初期データ転送を実行します。 mongosyncは、ソース コレクションをパーティションに分割し、パーティションを対応する宛先コレクションにコピーすることで、このデータ転送を実行します。
変更イベント アプリケーション
変更イベント アプリケーション(CEA)フェーズは、コレクションのコピー フェーズが終了した後に開始されます。
CEA フェーズ中、ソースクラスターに変更を加えると、 mongosyncは宛先クラスターを継続的に更新します。
宛先クラスターに継続的な更新を行うため、 mongosyncはソースクラスターで変更ストリームを開き、受信した変更イベントを宛先クラスターに適用します。
CEA フェーズが開始されると、 mongosyncはコレクション コピー フェーズ中に受信した変更イベントを適用してから、CEA フェーズ中に受信したイベントを処理します。
同期の一時停止
同期プロセスを一時停止してPAUSED状態になるには、一時停止エンドポイントを呼び出します。
一時停止した同期プロセスを再開して、 mongosyncをRUNNING状態に戻すには、再開エンドポイントを呼び出します。
同期を終了する
ソースクラスターと宛先クラスター間の同期を終了するには、コミットエンドポイントを呼び出します。
commitエンドポイントはCOMMITTING状態を開始します。この状態は、 mongosyncがソースクラスターと宛先クラスター間の継続的な同期を停止したときです。
COMMITTING状態が開始されると、 mongosyncはコミット タイムスタンプを検索します。これはソースクラスタでの最新の操作の時刻です。
エラーがない場合、 mongosyncは成功メッセージを送信し、コミット タイムスタンプまでイベントを処理して CEA を終了します。 mongosyncは、同期中にmongosyncが一時的に変更したコレクションの特性も復元します。
上記のプロセスが完了すると、mongosync は COMPED 状態になります。COMMITTED 状態は、同期プロセスのカットオーバーが完了したことを示します。
逆同期
コミットされた同期操作の方向を逆にするには、逆エンドポイントを呼び出します。
reverseエンドポイントによってRESTING状態が開始されます。 mongosyncはソースクラスターと宛先クラスターをスワップし、変更イベントの適用を再開します。
逆同期が成功すると、 mongosyncはRUNNING状態になります。 同期は、元の同期ジョブとは逆方向に続行されます。
詳細
mongosyncの詳細については、以下をご覧ください。