多くの場合、移行は複雑かつ時間がかかります。データの移行とカットオーバー後に、パフォーマンスの不整合や Spanner データベースに関する問題が発生することもあります。
移行中にエラーが発生した場合に大きな影響を回避するために、カットオーバーを実行する前に Spanner データベースからのフォールバックを構成することをおすすめします。フォールバックを使用すると、ダウンタイムを最小限に抑えてソース データベースに戻すことができます。
リバース レプリケーションは、Spanner に書き込まれたデータをソース データベースにレプリケートすることで、フォールバックをサポートします。フォールバックが必要な場合は、アプリケーションをソース データベースにポイントし、ダウンタイムを最小限に抑えてリクエストの処理を続行できます。
Spanner には、このプロセスをすぐに処理できる事前構築済みのリバース レプリケーションパイプラインが用意されているため、カスタムのリバース レプリケーションツールを構築する必要はありません。パイプラインは自動的に次の処理を行います。
- Spanner とソース データベース間のデータ型とスキーマ マッピングの変更を処理します。
- 順方向の移行中に行われた変換を元に戻します。
- ソース データベースのシャーディング スキームを考慮して、データを適切な宛先にルーティングします。
- ソース データベースに書き込む前に Spanner 変更ストリームから変更をキャプチャし、最終的に整合性を確保します。
- デッドレター キューを使用してエラー処理と再試行を管理します。
移行元ごとの個別ガイド
フォールバックとカットオーバーの各フェーズで、次のガイドを使用します。