カットオーバーとフォールバックのメカニズムを構成する

多くの場合、移行は複雑かつ時間がかかります。データの移行とカットオーバー後に、パフォーマンスの不整合や問題が発生することもあります。

移行中にエラーが発生した場合に影響が大きくならないよう、フォールバック メカニズムを組み込み、ダウンタイムを最小限に抑えてソース データベースに戻せるようにすることをおすすめします。

リバース レプリケーションを使用すると、Spanner に書き込まれたデータをソース データベースにレプリケートしてフォールバックできます。フォールバックが必要な場合は、リバース レプリケーションを使用して、アプリケーションをソース データベースにポイントし、大幅なダウンタイムなしでリクエストの処理を続行できます。

リバース レプリケーション プロセスでは、次の処理を行う必要があります。

  • データ型やコンテンツへの変更を処理する。
  • 移行中に行われた変換を元に戻す。
  • ソース データベースのシャーディング スキームを考慮して、データを適切な宛先に push する。

リバース レプリケーション フローを構築する際は、次の大まかなアプローチを検討してください。

  1. Spanner で発生した変更を読み取る。
  2. (省略可)リバース レプリケーションを有効にする前に、転送変更データ キャプチャ(CDC)移行を無効にする。
  3. Spanner は分散型データベースであるため、ソース データベースに書き込む前に、すべての変更をキャプチャして一時的に並べ替える。
  4. データをソース データベースに書き込む。