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

oplog のサイジング

項目一覧

  • Considerations
  • 最初の同期に必要な oplog サイズを監視する
  • oplog window の決定
  • mongosync レプリケーションラグの決定
  • oplog サイズの検証

mongosyncプログラムは変更ストリームを使用して、ソースクラスターと宛先クラスター間でデータを同期します。 mongosyncoplogに直接アクセスしませんが、変更ストリームが過去のイベントを返す場合、そのイベントはoplogの時間範囲内である必要があります。

mongosync は、ソースクラスターのoplogの操作を宛先クラスターのデータに適用します。 mongosyncが適用していなかった操作がソースクラスターのoplogをロールオフすると、同期は失敗し、 mongosyncは終了します。

注意

mongosync は、宛先クラスターへの同期中にソースクラスターで行われたapplyOps操作を複製しません。

最初の同期中に、ドキュメントが同時にコピーされるため、 mongosyncは操作を遅くする可能性があります。 最初の同期後、 mongosyncは変更をより速く適用し、ソースクラスターで発生しているリアルタイム書込みに近いoplog内の位置を維持する可能性が高くなります。

大規模なデータセットの同期が予想される場合、または同期を長期間にわたって一時停止する予定の場合、 oplog windowを超える可能性があります。 ソースクラスター上のoplogのサイズを増やすには、 oplogSizeMB設定を使用します。

宛先クラスターには、移行される論理データ サイズと最初の同期の宛先oplogエントリーに十分対応できるディスクストレージが必要です。例、10 GBのデータを移行するには、宛先クラスターでデータには少なくとも 10 GBが使用可能であり、最初の同期からの挿入oplogエントリ用にはさらに 10 GBが必要です。

宛先oplogエントリのオーバーヘッドを軽減するには、次の操作を実行します。

  • oplogSizeMB宛先クラスターのoplogサイズを小さくするには、 設定を使用します。

  • oplogMinRetentionHoursを使用して 設定を解除し、宛先クラスターの最小oplog保持期間を短縮または削除します。

1

oplogの最初と最後のエントリの差を秒単位で取得するには、 db.getReplicationInfo()を実行します。 シャーディングされたクラスターをレプリケートする場合は、各シャードで コマンドを実行します。

db.getReplicationInfo().timeDiff

返される値は、クラスターの最小oplogウィンドウです。 シャードが複数ある場合、最小の数は最小のoplogウィンドウです。

2

lagTimeSeconds値を取得するには、 /progressコマンドを実行します。 ラグタイムは、 mongosyncによって適用された最後のイベントとソースクラスター上の現在の最新イベントの時間までの時間(秒単位)です。

これは、ソースクラスターmongosyncがどれだけ遅れているかを測定します。

3

ラグ時間が最小oplogウィンドウに近づく場合は、次のいずれかを変更します。

  • oplogウィンドウを増やします。 replSetResizeOplogを使用して、 minRetentionHoursを現在のoplogウィンドウよりも大きく設定します。

  • mongosyncインスタンスをスケールアップします。 CPU またはメモリを追加してmongosyncノードをスケールアップし、コピー率を高めます。

注意

レプリケーションラグのoplog window と変化率は、同期中に変化する可能性があります。 移行中にこれらの手順を繰り返し、進行状況を監視します。

戻る

ワークロード ID フェデレーションを使用した認証