会社概要 mongosync
mongosync
バイナリは、非正規のMongoDB配置ではサポートまたはテストされていません。これらのツールはこれらの配置で動作する可能性がありますが、互換性は保証されません。mongosync バイナリは、Cluster-to-Cluster Syncで使用されるプライマリmongosync
プロセスです。 はソースクラスターから宛先クラスターにデータを移行し、 が同期を完了するまでクラスターを継続的に同期させます。データの継続的な同期に加えて、mongosync
はクラスター間の 1 回限りのデータ移行も実行できます。
mongosync
は、状態を通じて現在のアクションを追跡します。 mongosync
は、受信したリクエストに応じて異なる状態になります。 現在のmongosync
状態によって、実行できる API 操作が決まります。
注意
ほとんどの状態移行は、API 呼び出しの結果として発生します。 例外は次のとおりです。
COMMITTING
からCOMMITTED
への移行。 詳しくは、「同期の終了 」を参照してください。REVERSING
からRUNNING
への移行。 詳しくは、「 元の同期 」を参照してください。
mongosync
の現在の状態を表示するには/progressエンドポイントを使用します。
次の図は、 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状態になるには、一時停止エンドポイントを呼び出します。
一時停止した同期プロセスを再開して、 mongosync
をRUNNING
状態に戻すには、再開エンドポイントを呼び出します。
同期を終了する
ソースクラスターと宛先クラスター間の同期を終了するには、コミットエンドポイントを呼び出します。
注意
コミット プロセスを開始する前に、ソースクラスターへの書込みをブロックする必要があります。
以前に開始エンドポイントを使用するときに enableUserWriteBlocking
をtrue
に設定した場合、mongosync
エンドポイントを使用すると、commit
はソースクラスターへの書込みを自動的にブロックします。
enableUserWriteBlocking
をtrue
setUserWriteBlockMode
に設定しなかった場合は、ソースクラスターで を実行して書込みをブロックします。
commit
エンドポイントはCOMMITTING状態を開始します。この状態は、 mongosync
がソースクラスターと宛先クラスター間の継続的な同期を停止したときです。
COMMITTING
状態が開始されると、 mongosync
はコミット タイムスタンプを検索します。これはソースクラスタでの最新の操作の時刻です。
エラーがない場合、 mongosync
は成功メッセージを送信し、コミット タイムスタンプまでイベントを処理して CEA を終了します。 mongosync
は、同期中にmongosync
が一時的に変更したコレクションの特性も復元します。
上記のプロセスが完了すると、 mongosync
はCOMPED状態になります。 COMMITTED
状態は、カットオーバー プロセスが完了したことを示します。
逆同期
コミットされた同期操作の方向を逆にするには、逆エンドポイントを呼び出します。
reverse
エンドポイントによってRESTING状態が開始されます。 mongosync
はソースクラスターと宛先クラスターをスワップし、変更イベントの適用を再開します。
逆同期が成功すると、 mongosync
はRUNNING
状態になります。 同期は、元の同期ジョブとは逆方向に続行されます。
詳細
mongosync
の詳細については、以下をご覧ください。