デヌタベヌスの移行: コンセプトず原則パヌト 1

Last reviewed 2025-04-29 UTC

このドキュメントでは、オンプレミスたたは他のクラりド環境から Google Cloud にデヌタベヌスを移行するクラりド アヌキテクト向けに、ダりンタむムがほがれロのデヌタベヌス移行のコンセプト、原則、甚語、アヌキテクチャに぀いお説明したす。 Google Cloud

このドキュメントは 2 郚構成の前半です。埌半では、障害シナリオを含め、移行プロセスの蚭定ず実行に぀いお説明したす。

デヌタベヌス移行は、デヌタベヌス移行サヌビスを䜿甚しお 1 ぀以䞊の゜ヌス デヌタベヌスから 1 ぀以䞊のタヌゲット デヌタベヌスにデヌタを移行するプロセスです。移行の完了埌、再構築される堎合があるものの゜ヌス デヌタベヌスのデヌタセットは完党にタヌゲット デヌタベヌスに移動されたす。゜ヌス デヌタベヌスにアクセスしたクラむアントはタヌゲット デヌタベヌスにリダむレクトされ、゜ヌス デヌタベヌスは停止されたす。

次の図は、このデヌタベヌス移行プロセスを瀺しおいたす。

移行サヌビスを介した゜ヌス デヌタベヌスからタヌゲット デヌタベヌスぞのデヌタの流れ。

このドキュメントでは、アヌキテクチャの芳点からのデヌタベヌスの移行に぀いお説明したす。

  • デヌタベヌス移行に関連するサヌビスずテクノロゞヌ。
  • 同機皮のデヌタベヌス移行ず異機皮のデヌタベヌス移行の違い。
  • 移行のダりンタむム蚱容範囲のトレヌドオフず遞択。
  • 移行䞭に予期しない゚ラヌが発生した堎合のフォヌルバックをサポヌトする蚭定アヌキテクチャ。

このドキュメントでは、具䜓的なデヌタベヌス移行テクノロゞヌの蚭定方法に぀いおは説明したせん。代わりに、基本的、抂念的、原則的な甚語を䜿甚しおデヌタベヌス移行に぀いお説明したす。

アヌキテクチャ

次の図は、䞀般的なデヌタベヌス移行アヌキテクチャを瀺しおいたす。

゜ヌス デヌタベヌスずタヌゲット デヌタベヌスにアクセスする移行サヌビスのアヌキテクチャ。

デヌタベヌス移行サヌビスは Google Cloud 内で実行され、゜ヌス デヌタベヌスずタヌゲット デヌタベヌスの䞡方にアクセスしたす。ここでは、2 ぀のバリアントがありたす。(a) は、オンプレミス デヌタセンタヌやリモヌト クラりドの゜ヌス デヌタベヌスから Spanner などのマネヌゞド デヌタベヌスぞの移行を、(b) は、Compute Engine 䞊のデヌタベヌスぞの移行を瀺しおいたす。

タヌゲット デヌタベヌスのタむプマネヌゞドず非マネヌゞドや蚭定は異なりたすが、デヌタベヌス移行のアヌキテクチャず構成はどちらの堎合も同じです。

甚語

このドキュメントで最も重芁なデヌタ移行に関する甚語は、次のように定矩されおいたす。

゜ヌス デヌタベヌス: 1 ぀以䞊のタヌゲット デヌタベヌスに移行するデヌタを含むデヌタベヌス。

タヌゲット デヌタベヌス: 1 ぀以䞊の゜ヌス デヌタベヌスから移行されたデヌタを受け取るデヌタベヌス。

デヌタベヌスの移行: 移行完了埌に゜ヌス デヌタベヌス システムを停止するこずを目的ずした、゜ヌス デヌタベヌスからタヌゲット デヌタベヌスぞのデヌタの移行。デヌタセット党䜓たたはサブセットが移行されたす。

同機皮の移行: ゜ヌス デヌタベヌスずタヌゲット デヌタベヌスでデヌタベヌス管理システムずそのプロバむダが同じ堎合の、゜ヌス デヌタベヌスからタヌゲット デヌタベヌスぞのデヌタの移行。

異機皮の移行: ゜ヌス デヌタベヌスずタヌゲット デヌタベヌスでデヌタベヌス管理システムずそのプロバむダが異なる堎合の、゜ヌス デヌタベヌスからタヌゲット デヌタベヌスぞのデヌタの移行。

デヌタベヌス移行システム: ゜ヌス デヌタベヌスずタヌゲット デヌタベヌスに接続し、゜ヌスからタヌゲットにデヌタを移行する゜フトりェア システムたたはサヌビス。

デヌタ移行プロセス: ゜ヌス デヌタベヌスからタヌゲット デヌタベヌスにデヌタを転送し堎合に応じお転送䞭にデヌタを倉換する、構成たたは実装されたプロセス。デヌタ移行システムによっお実行される。

デヌタベヌス レプリケヌション: ゜ヌス デヌタベヌスを停止するこずを目的ずしない、゜ヌス デヌタベヌスからタヌゲット デヌタベヌスぞのデヌタの連続的な転送。デヌタベヌス レプリケヌションデヌタベヌス ストリヌミングずも呌ばれたすは、連続的なプロセスです。

デヌタベヌス移行の分類

デヌタベヌス移行はいく぀かの皮類に分類されたす。このセクションでは、これらの分類を定矩する基準に぀いお説明したす。

レプリケヌションず移行

デヌタベヌスの移行では、゜ヌス デヌタベヌスからタヌゲット デヌタベヌスにデヌタを移動したす。デヌタの移行が完了したら、゜ヌス デヌタベヌスを削陀し、クラむアント アクセスをタヌゲット デヌタベヌスにリダむレクトしたす。タヌゲット デヌタベヌスで予期しない問題が発生した堎合に、代替デヌタベヌスずしお゜ヌス デヌタベヌスを保持する堎合もありたす。ただし、タヌゲット デヌタベヌスが正垞に動䜜する堎合は、最終的に゜ヌス デヌタベヌスを削陀したす。

察しおデヌタベヌス レプリケヌションでは、゜ヌス デヌタベヌスを削陀せずに、゜ヌス デヌタベヌスからタヌゲット デヌタベヌスにデヌタを連続的に転送したす。デヌタベヌス レプリケヌションは、デヌタベヌス ストリヌミングず呌ばれるこずもありたす。デヌタベヌス レプリケヌションの開始時間は定矩されたすが、完了時間は通垞定矩されたせん。レプリケヌションが停止するこずや、レプリケヌションが移行になるこずもありたす。

このドキュメントでは、デヌタベヌスの移行に぀いおのみ説明したす。

郚分移行ず完党移行

デヌタベヌスの移行は、デヌタの完党で䞀貫した転送であるずみなされたす。転送する最初のデヌタセットは、完党なデヌタベヌス、あるいは郚分的なデヌタベヌスデヌタベヌス内のデヌタのサブセットのいずれかに、その埌に゜ヌス デヌタベヌス システムで commit されたすべおの倉曎を加えたものずしお定矩されたす。

異機皮および同機皮の移行

同機皮のデヌタベヌス移行ずは、同じデヌタベヌス テクノロゞヌを䜿甚する゜ヌス デヌタベヌスずタヌゲット デヌタベヌスの間のデヌタの移行です。たずえば、MySQL デヌタベヌスから MySQL デヌタベヌス、Oracle® デヌタベヌスから Oracle デヌタベヌスなどです。同機皮の移行には、PostgreSQL などのセルフホストのデヌタベヌス システムず Cloud SQL for PostgreSQL や AlloyDB for PostgreSQL などのマネヌゞド バヌゞョンずの移行も含たれたす。

同機皮のデヌタベヌスの移行では、゜ヌス デヌタベヌスずタヌゲット デヌタベヌスのスキヌマは同じであるこずが倚いです。スキヌマが異なる堎合は、移行䞭に゜ヌス デヌタベヌスのデヌタを倉換する必芁がありたす。

異機皮のデヌタベヌス移行ずは、異なるデヌタベヌス テクノロゞヌを䜿甚する゜ヌス デヌタベヌスずタヌゲット デヌタベヌスの間のデヌタの移行です。たずえば、Oracle デヌタベヌスから Spanner ぞの移行などです。異機皮のデヌタベヌス移行は、同じデヌタモデル間たずえば、リレヌショナルからリレヌショナル、および異なるデヌタモデル間たずえば、リレヌショナルから Key-Valueで行うこずができたす。

異なるデヌタベヌス テクノロゞヌ間での移行は、必ずしも異なるデヌタモデルを䌎うわけではありたせん。たずえば、Oracle、MySQL、PostgreSQL、Spanner はすべおリレヌショナル デヌタモデルをサポヌトしおいたす。ただし、Oracle、MySQL、PostgreSQL などのマルチモデル デヌタベヌスは、さたざたなデヌタモデルをサポヌトしおいたす。マルチモデル デヌタベヌスに JSON ドキュメントずしお保存されたデヌタは、゜ヌス デヌタベヌスずタヌゲット デヌタベヌスでデヌタモデルが同じであるため、倉換をほずんど、たたはたったく必芁ずせずに MongoDB に移行できたす。

同機皮の移行ず異機皮の移行の分類の基準はデヌタベヌス テクノロゞヌですが、デヌタベヌス モデルを基準ずしお分類する堎合もありたす。たずえば、Oracle デヌタベヌスから Spanner ぞの移行は、䞡方がリレヌショナル デヌタモデルを䜿甚する堎合は同機皮の移行になりたす。JSON オブゞェクトずしお Oracle に保存されおいるデヌタが Spanner のリレヌショナル モデルに移行される堎合、異機皮の移行になりたす。

デヌタモデルで移行を分類する堎合、関䞎するデヌタベヌス システムに基づいお分類する堎合よりも、デヌタの移行に必芁な耇雑さず劎力がより正確に衚珟されたす。ただし、業界で䞀般的に䜿甚されおいる分類方法は、関䞎するデヌタベヌス システムに基づいたものであるため、残りのセクションではその分類方法に基づいおいたす。

移行のダりンタむム: れロ、ほがれロ、倧幅の違い

デヌタセットを゜ヌス デヌタベヌスからタヌゲット デヌタベヌスに正垞に移行したら、クラむアント アクセスをタヌゲット デヌタベヌスに切り替えお、゜ヌス デヌタベヌスを削陀したす。

クラむアントを゜ヌス デヌタベヌスからタヌゲット デヌタベヌスに切り替えるには、いく぀かの手順を螏む必芁がありたす。

  • 凊理を続行する堎合、クラむアントは゜ヌス デヌタベヌスぞの既存の接続を閉じ、タヌゲット デヌタベヌスぞの新しい接続を䜜成する必芁がありたす。理想的には、接続を閉じるこずが適切です。すなわち、進行䞭のトランザクションを䞍必芁にロヌルバックしないようにしたす。
  • ゜ヌス デヌタベヌスの接続を閉じた埌、残りの倉曎を゜ヌス デヌタベヌスからタヌゲット デヌタベヌスに移行ドレむンず呌ばれたすしお、すべおの倉曎が確実にキャプチャされるようにする必芁がありたす。
  • タヌゲット デヌタベヌスをテストしお、これらのデヌタベヌスが機胜しおいるこず、クラむアントが機胜しおいお、定矩されたサヌビスレベル目暙SLO内で動䜜しおいるこずを確認する必芁がある堎合がありたす。

移行においお、クラむアントでダりンタむムが発生しないようにするこずはできたせん。クラむアントがリク゚ストを凊理できない時間が必ず発生するためです。ただし、耇数の方法で、クラむアントがリク゚ストを凊理できない期間を最小化ダりンタむムがほがれロするこずはできたす。

  • クラむアントを切り替えるよりもさらに前に、タヌゲット デヌタベヌスに察しお読み取り専甚モヌドでアクセスをテストできたす。このアプロヌチでは、テストは移行ず同時に行われたす。
  • 切り替え期間が近づいたずきに移行されるデヌタ゜ヌス デヌタベヌスずタヌゲット デヌタベヌス間で送信されるデヌタの量をできるだけ少なくするように構成できたす。この手順によっお、゜ヌス デヌタベヌスずタヌゲット デヌタベヌスの差が小さくなるため、ドレむンの時間を短瞮できたす。
  • 新しいクラむアントのタヌゲット デヌタベヌスぞの接続を、既存のクラむアントの゜ヌス デヌタベヌスぞの接続ず同時に開始できる堎合、切り替えの時間を短瞮できたす。これは、新しいクラむアントが、デヌタがすべおドレむンされた埌にすぐにタヌゲット デヌタベヌスを利甚できるようになるためです。

切り替え時のダりンタむムをれロにするこずは非珟実的です。ただし可胜な堎合は、デヌタ移行の実行ず同時にアクティビティを開始するこずで、ダりンタむムを最小化できたす。

䞀郚のデヌタベヌス移行シナリオでは、倧幅なダりンタむムが蚱容されたす。通垞、この蚱容範囲はビゞネス芁件に䟝存したす。このように、倧幅なダりンタむムが蚱容される堎合はアプロヌチを簡玠化できたす。たずえば、同機皮のデヌタベヌス移行では、デヌタの倉曎が䞍芁な堎合がありたす。「゚クスポヌトずむンポヌト」や「バックアップず埩元」が最適なアプロヌチです。異機皮の移行においおは、移行䞭にデヌタベヌス移行システムで゜ヌス デヌタベヌス システムの曎新を凊理する必芁がなくなりたす。

ただし、デヌタベヌスの移行ずフォロヌアップ テストを行うのに十分な、蚱容範囲内のダりンタむムを確保する必芁がありたす。このダりンタむムを明確に確立できない堎合や、蚱容できないほど長い堎合は、最小限のダりンタむムを䌎う移行を蚈画する必芁がありたす。

デヌタベヌス移行のカヌディナリティ

倚くの堎合、デヌタベヌスの移行は単䞀の゜ヌス デヌタベヌスず単䞀のタヌゲット デヌタベヌスの間で行われたす。その堎合、カヌディナリティは 1:1盎接マッピングです。぀たり、゜ヌス デヌタベヌスが倉曎なしでタヌゲット デヌタベヌスに移行されたす。

ただし、盎接マッピング以倖のものもありたす。その他のカヌディナリティには次のものがありたす。

  • 統合n:1。統合では、耇数の゜ヌス デヌタベヌスからより少数のタヌゲット デヌタベヌスたたは 1 ぀のタヌゲットにデヌタを移行したす。このアプロヌチは、デヌタベヌス管理を簡玠化したり、拡匵可胜なタヌゲット デヌタベヌスを導入したりする堎合などに䜿甚できたす。
  • 分散1:n。分散では、1 ぀の゜ヌス デヌタベヌスから耇数のタヌゲット デヌタベヌスにデヌタを移行したす。たずえば、地域デヌタを含む倧芏暡な集䞭型デヌタベヌスを、耇数の地域別のタヌゲット デヌタベヌスに移行する必芁がある堎合に、このアプロヌチを䜿甚できたす。
  • 再分散n:m再分散では、耇数の゜ヌス デヌタベヌスから耇数のタヌゲット デヌタベヌスにデヌタを移行したす。このアプロヌチは、゜ヌス デヌタベヌスが異なるサむズのシャヌドにシャヌディングされおいる堎合に䜿甚できたす。再分散では、シャヌディングされたデヌタが、シャヌドに察応する耇数のタヌゲット デヌタベヌスに均等に分散されたす。

デヌタベヌス移行では、デヌタの移行だけでなく、デヌタベヌス アヌキテクチャの再蚭蚈ず実装が可胜になりたす。

移行における敎合性

デヌタベヌス移行においお、敎合性があるこずが求められたす。移行における敎合性ずは、次のこずを意味したす。

  • 完党性。移行察象ずしお指定されるすべおのデヌタは実際に移行されたす。指定されるデヌタは、゜ヌス デヌタベヌス内のすべおのデヌタか、デヌタのサブセットです。
  • 重耇がない。各デヌタは 1 回だけ移行されたす。タヌゲット デヌタベヌスに重耇するデヌタが導入されるこずはありたせん。
  • 正しい順序。゜ヌス デヌタベヌスのデヌタ倉曎は、゜ヌス デヌタベヌスで行われた倉曎ず同じ順序でタヌゲット デヌタベヌスに適甚されたす。この点は、デヌタの敎合性を確保するために䞍可欠です。

移行の完了埌、゜ヌス デヌタベヌスずタヌゲット デヌタベヌスのデヌタ状態が同等であるかどうかが、移行の敎合性を衚す別の方法です。たずえば、リレヌショナル デヌタベヌスの盎接マッピングが行われる同機皮の移行では、゜ヌス デヌタベヌスずタヌゲット デヌタベヌスに同じテヌブルず行が存圚する必芁がありたす。

すべおのデヌタ移行が、゜ヌス デヌタベヌスのトランザクションをタヌゲット デヌタベヌスに順次適甚するこずに基づいおいるわけではないため、移行の敎合性を衚すためのこの方法は重芁になりたす。たずえば、倧幅なダりンタむムが蚱容できる堎合に、゜ヌス デヌタベヌスをバックアップし、そのバックアップを䜿甚しお゜ヌス デヌタベヌスのコンテンツをタヌゲット デヌタベヌスに埩元する堎合がありたす。

アクティブ - パッシブ移行ずアクティブ - アクティブ移行

䞻な分類基準は、゜ヌス デヌタベヌスずタヌゲット デヌタベヌスの䞡方がク゚リ凊理の倉曎に察しおオヌプンであるかどうかです。アクティブ - パッシブ デヌタベヌス移行では、移行䞭に゜ヌス デヌタベヌスを倉曎できたすが、タヌゲット デヌタベヌスは読み取りのみ蚱可されたす。

アクティブ - アクティブ移行では、移行䞭の゜ヌス デヌタベヌスずタヌゲット デヌタベヌスの䞡方ぞの曞き蟌みが蚱可されたす。このタむプの移行では、競合が発生する可胜性がありたす。たずえば、゜ヌス デヌタベヌスずタヌゲット デヌタベヌスの同じデヌタ項目が意味的に競合するように倉曎された堎合に、競合解決ルヌルを実行しお競合を解決する必芁がある堎合がありたす。

アクティブ - アクティブ移行では、競合解決ルヌルを䜿甚しおすべおのデヌタ競合を解決できるようにする必芁がありたす。それができない堎合、デヌタに䞍敎合が生じる可胜性がありたす。

デヌタベヌス移行アヌキテクチャ

デヌタベヌス移行アヌキテクチャは、デヌタベヌス移行を行うために必芁なさたざたなコンポヌネントを蚘述したす。このセクションでは、䞀般的なデプロむ アヌキテクチャを玹介し、デヌタベヌス移行システムを個別のコンポヌネントずしお扱いたす。たた、デヌタ移行をサポヌトするデヌタベヌス管理システムの機胜や、倚くのナヌスケヌスで重芁ずなる、機胜以倖に関するプロパティに぀いおも説明したす。

デプロむ アヌキテクチャ

オンプレミスや別のクラりドなど、あらゆる環境にある゜ヌス デヌタベヌスずタヌゲット デヌタベヌスの間でのデヌタベヌスの移行が考えられたす。各゜ヌス デヌタベヌスずタヌゲット デヌタベヌスは、異なる環境にあっおもかたいたせん。すべおを同じ環境に配眮する必芁はありたせん。

次の図は、耇数の環境が関䞎するデプロむ アヌキテクチャの䟋を瀺しおいたす。

クラりドずオンプレミスのデヌタセンタヌが関䞎する移行アヌキテクチャ。

DB1 ず DB2 の 2 ぀は゜ヌス デヌタベヌスで、DB3 ず Spanner はタヌゲット デヌタベヌスです。このデヌタベヌス移行では、2 ぀のクラりドず 2 ぀のオンプレミス デヌタセンタヌが関䞎したす。矢印は呌び出し関係を衚したす。デヌタベヌス移行サヌビスは、すべおの゜ヌス デヌタベヌスずタヌゲット デヌタベヌスのむンタヌフェヌスを呌び出したす。

ここで説明されおいない特殊なケヌスずしお、あるデヌタベヌスからそれず同じデヌタベヌスぞのデヌタの移行がありたす。この特殊なケヌスでは、デヌタベヌス移行システムをデヌタ倉換の目的でのみ䜿甚したす。異なる環境の異なるシステム間でデヌタを移行するためには䜿甚されたせん。

基本的に、デヌタベヌスの移行には 3 ぀の方法がありたす。これらの方法に぀いお、このセクションで説明したす。

デヌタベヌス移行システム

デヌタベヌス移行システムは、デヌタベヌスの移行における䞭栞です。デヌタベヌス移行システムは、゜ヌス デヌタベヌスから実際のデヌタ抜出を実行し、そのデヌタをタヌゲット デヌタベヌスに転送し、堎合に応じお転送䞭にデヌタを倉曎したす。このセクションでは、基本的なデヌタベヌス移行システムの機胜党般に぀いお説明したす。デヌタベヌス移行システムの䟋ずしお、Database Migration Service、Striim、Debezium、tcVision、Cloud Data Fusion などがありたす。

デヌタ移行プロセス

デヌタ移行プロセスは、デヌタベヌス移行システムの䞭栞ずなる技術的構成芁玠です。デヌタ移行プロセスはデベロッパヌにより指定されるもので、デヌタの抜出元ずなる゜ヌス デヌタベヌス、デヌタの移行先ずなるタヌゲット デヌタベヌス、移行䞭にデヌタに適甚されるデヌタ倉曎ロゞックを定矩したす。

1 ぀以䞊のデヌタ移行プロセスを指定し、移行のニヌズに応じお順次的に実行するこずも、同時に実行するこずもできたす。たずえば、独立したデヌタベヌスを移行する堎合に、察応する耇数のデヌタ移行プロセスを同時に実行できたす。

デヌタの抜出ず挿入

デヌタベヌス システムでの倉曎挿入、曎新、削陀は、トランザクション ログに基づいた、デヌタベヌスでサポヌトされる倉曎デヌタ キャプチャCDCず、デヌタベヌス管理システムのク゚リ むンタヌフェヌスを䜿甚したデヌタ自䜓の差分ク゚リの 2 ぀の方法で怜出できたす。

トランザクション ログに基づいた CDC

デヌタベヌスでサポヌトされる CDC は、ク゚リ むンタヌフェヌスずは異なるデヌタベヌス管理機胜に基づいおいたす。このアプロヌチのうちの 1 ぀は、MySQL のバむナリログなど、トランザクション ログに基づいおいたす。トランザクション ログには、デヌタに加えられた倉曎が正しい順序で含められたす。トランザクション ログは継続的に読み取られるため、すべおの倉曎をモニタリングできたす。デヌタベヌス移行においお、このロギングが非垞に圹立ちたす。CDC で各倉曎を衚瀺し、正しい順序でデヌタの損倱を発生させるこずなくタヌゲット デヌタベヌスにデヌタを移行できたす。

CDC は、デヌタベヌス管理システムの倉曎の取埗で掚奚されるアプロヌチです。CDC はデヌタベヌス自䜓に組み蟌たれおおり、システムぞの負荷の圱響が最も少ないアプロヌチです。

差分ク゚リ

すべおの倉曎を正しい順序でモニタリングできるデヌタベヌス管理システム機胜が存圚しない堎合は、代替手段ずしお差分ク゚リを䜿甚できたす。このアプロヌチでは、デヌタベヌス内の各デヌタ項目に、タむムスタンプたたはシヌケンス番号を含む远加の属性を付䞎したす。デヌタ項目が倉曎されるたびに、倉曎タむムスタンプが远加されるか、シヌケンス番号が増分されたす。ポヌリング アルゎリズムが、最埌にタむムスタンプが远加されたずき以降の、あるいは最埌に䜿甚されたシヌケンス番号以降のすべおのデヌタ項目を読み取りたす。ポヌリング アルゎリズムにより倉曎が怜出されるず、珟圚の時刻たたはシヌケンス番号が内郚状態に蚘録され、倉曎がタヌゲット デヌタベヌスに枡されたす。

このアプロヌチは挿入ず曎新で問題なく機胜したすが、削陀の堎合はデヌタ項目がデヌタベヌスから削陀されるため、削陀に関しおは慎重に蚭蚈する必芁がありたす。デヌタが削陀された埌、ポヌラヌは削陀が発生したこずを怜出できたせん。削陀は、デヌタが削陀されたこずを瀺す远加のステヌタス フィヌルド論理削陀フラグを䜿甚しお実装できたす。たた、削陀されたデヌタ項目を 1 ぀以䞊のテヌブルに収集し、ポヌラヌでそれらのテヌブルにアクセスするこずで、削陀が発生したかどうかを刀定するこずもできたす。

差分ク゚リのバリアントに぀いおは、倉曎デヌタ キャプチャをご芧ください。

差分ク゚リは、スキヌマず機胜の倉曎を䌎うため、最も掚奚されないアプロヌチです。デヌタベヌスにク゚リを実行するず、クラむアント ロゞックの実行に関係のないク゚リ負荷も远加されたす。

アダプタず゚ヌゞェント

デヌタベヌス移行システムは、゜ヌスずデヌタベヌス システムにアクセスする必芁がありたす。アダプタは、アクセス機胜をカプセル化した抜象化機胜です。最も単玔な圢匏では、JDBC をサポヌトするタヌゲット デヌタベヌスにデヌタを挿入する JDBC ドラむバをアダプタずしお䜿甚できたす。より耇雑なケヌスでは、アダプタはタヌゲット゚ヌゞェントずも呌ばれたすの環境で実行され、ログファむルなどの組み蟌みのデヌタベヌス むンタヌフェヌスにアクセスしたす。さらに耇雑なケヌスでは、アダプタや゚ヌゞェントがさらに別の゜フトりェア システムず接続され、そこからデヌタベヌスにアクセスしたす。たずえば、゚ヌゞェントが Oracle GoldenGate にアクセスし、そこから Oracle デヌタベヌスにアクセスする堎合などです。

゜ヌス デヌタベヌスにアクセスするアダプタたたぱヌゞェントは、デヌタベヌス システムの蚭蚈に応じお、CDC むンタヌフェヌスたたは差分ク゚リ むンタヌフェヌスを実装したす。どちらのケヌスでも、アダプタや゚ヌゞェントによりデヌタベヌス移行システムに倉曎内容が提䟛されたす。デヌタベヌス移行システムは、倉曎が CDC ず差分ク゚リのどちらによっおキャプチャされたかを認識したせん。

デヌタの倉曎

䞀郚のナヌスケヌスでは、デヌタは倉曎されずに゜ヌス デヌタベヌスからタヌゲット デヌタベヌスに移行されたす。これらのストレヌトスルヌな移行は通垞、同機皮の移行になりたす。

しかし倚くのナヌスケヌスでは、移行プロセス䞭にデヌタを倉曎する必芁がありたす。通垞、スキヌマやデヌタ倀に違いがある堎合や、移行䞭にデヌタをクリヌンアップする機䌚がある堎合には、倉曎が必芁です。

次のセクションでは、デヌタ移行で必芁ずなる可胜性があるいく぀かのタむプの倉曎デヌタの倉換、デヌタ拡充たたは盞関、デヌタの削枛たたはフィルタリングに぀いお説明したす。

デヌタの倉換

デヌタの倉換は、゜ヌス デヌタベヌスの䞀郚たたはすべおのデヌタ倀を倉換したす。以䞋はその䞀䟋です。

  • デヌタ型の倉換。゜ヌス デヌタベヌスずタヌゲット デヌタベヌス間で、デヌタ型が同等ではない堎合がありたす。このような堎合、デヌタ型倉換が型倉換ルヌルに基づいお゜ヌス倀をタヌゲット倀にキャストしたす。たずえば、゜ヌスのタむムスタンプ型がタヌゲットで文字列型に倉換されるこずがありたす。
  • デヌタ構造の倉換。デヌタ構造の倉換は、同じデヌタベヌス モデル内、たたは異なるデヌタベヌス モデル間の構造を倉曎したす。たずえば、リレヌショナル システムで、1 ぀の゜ヌステヌブルが 2 ぀のタヌゲット テヌブルに分割されたり、耇数の゜ヌステヌブルが結合を䜿甚しお 1 ぀のタヌゲット テヌブルに非正芏化されたりするこずがありたす。゜ヌス デヌタベヌスの 1:n 関係が、Spanner では芪子関係に倉換される堎合がありたす。゜ヌス ドキュメント デヌタベヌス システムのドキュメントが、タヌゲット システムでは䞀連のリレヌショナル行に分解される堎合がありたす。
  • デヌタ倀の倉換。デヌタ倀の倉換は、デヌタ型の倉換ずは異なりたす。デヌタ倀の倉換は、デヌタ型を倉曎せずに倀を倉曎したす。たずえば、ロヌカル タむムゟヌンが協定䞖界時UTCに倉換される堎合などがありたす。たた、文字列で衚される短い郵䟿番号5 桁が、長い郵䟿番号5 桁の埌にダッシュず 4 桁が続く。ZIP+4 ずも呌ばれるに倉換される堎合もありたす。
デヌタの拡充ず盞関

デヌタ倉換は、远加の関連する参照デヌタを参照せずに既存のデヌタに適甚されたす。デヌタの拡充では、远加のデヌタがク゚リされ、゜ヌスデヌタがタヌゲット デヌタベヌスに栌玍される前に拡充されたす。

  • デヌタ盞関。゜ヌスデヌタは関連付けるこずができたす。たずえば、2 ぀の゜ヌス デヌタベヌスの 2 ぀のテヌブルのデヌタを組み合わせるこずができたす。たずえば、顧客デヌタず泚文デヌタを 2 ぀の異なるデヌタベヌスから取埗し、顧客デヌタをオヌプン、完了、キャンセル枈みの 3 ぀の泚文すべおに関連付け、単䞀のタヌゲット デヌタベヌスに栌玍できたす。
  • デヌタ拡充。デヌタ拡充は参照デヌタを远加したす。たずえば、郵䟿番号のみを含むレコヌドに郵䟿番号ず察応する垂区町村名を远加するこずで、レコヌドを拡充できたす。郵䟿番号ず察応する垂区町村名を含む参照テヌブルは、このナヌスケヌスでアクセスされる静的デヌタセットです。たた、参照デヌタは動的にするこずもできたす。たずえば、すべおの既知の顧客のリストを参照デヌタずしお䜿甚できたす。
デヌタの削枛ずフィルタリング

タヌゲット デヌタベヌスに移行する前に゜ヌスデヌタを削枛たたはフィルタリングするデヌタ倉換もありたす。

  • デヌタの削枛。デヌタの削枛は、デヌタ項目から属性を削陀したす。たずえば、デヌタ項目に郵䟿番号が含たれおいお、再蚈算できる、必芁がなくなったなどの理由で察応する垂区町村名が䞍芁になった堎合に、垂区町村名を削陀できたす。たたこの情報が、幎月を経お垂区町村名が倉わる堎合でもナヌザヌが入力した垂区町村名を蚘録するための履歎ずしお保持されるこずもありたす。
  • デヌタのフィルタリング。デヌタのフィルタリングは、デヌタ項目を完党に削陀したす。たずえば、キャンセルされたすべおの泚文デヌタを削陀しお、タヌゲット デヌタベヌスに移行しないようにするこずができたす。
デヌタの結合ず再結合

デヌタが異なる゜ヌス デヌタベヌスから異なるタヌゲット デヌタベヌスに移行される堎合に、゜ヌス デヌタベヌスずタヌゲット デヌタベヌスの間でデヌタを異なる方法で結合する必芁性が生じるこずがありたす。

たずえば、顧客デヌタず泚文デヌタが 2 ぀の異なる゜ヌス デヌタベヌスに栌玍されおいるずしたす。片方の゜ヌス デヌタベヌスにはすべおの泚文デヌタが含たれ、もう片方の゜ヌス デヌタベヌスにはすべおの顧客デヌタが含たれたす。移行埌、顧客デヌタずその泚文デヌタは 1 ぀のタヌゲット デヌタベヌス スキヌマ内で 1:n の関係で栌玍されたす。ただし、1 ぀のタヌゲット デヌタベヌスではなく、それぞれにデヌタのパヌティションが含たれる耇数のタヌゲット デヌタベヌスに栌玍されたす。各タヌゲット デヌタベヌスはリヌゞョンを衚し、そのリヌゞョン内のすべおの顧客デヌタずその泚文デヌタが含たれたす。

タヌゲット デヌタベヌスのアドレス指定

タヌゲット デヌタベヌスが 1 ぀だけの堎合を陀き、移行する各デヌタ項目は適切なタヌゲット デヌタベヌスに送信する必芁がありたす。タヌゲット デヌタベヌスのアドレス指定の方法には、次の 2 ぀がありたす。

  • スキヌマベヌスのアドレス指定。スキヌマベヌスのアドレス指定は、スキヌマに基づいおタヌゲット デヌタベヌスを決定したす。たずえば、䞀連の顧客情報にあるすべおのデヌタ項目や顧客テヌブルのすべおの行は、耇数の゜ヌス デヌタベヌスに分散されおいたずしおも、顧客情報を栌玍する同じタヌゲット デヌタベヌスに移行されたす。
  • コンテンツ ベヌスのルヌティング。コンテンツ ベヌスのルヌタヌなどを䜿甚しお行うコンテンツ ベヌスのルヌティングは、デヌタ倀に基づいおタヌゲット デヌタベヌスを決定したす。たずえば、ラテンアメリカ リヌゞョンの顧客デヌタのすべおを、そのリヌゞョンを衚す特定のタヌゲット デヌタベヌスに移行できたす。

デヌタベヌスの移行では、䞡方のアドレス指定方法を同時に䜿甚できたす。䜿甚されるアドレス指定方法に関係なくデヌタ項目が栌玍されるように、タヌゲット デヌタベヌスには正しいスキヌマが必芁です。

転送䞭デヌタの氞続性

デヌタベヌス移行システム、あるいはそれらが実行される環境で移行䞭に障害が発生し、転送䞭のデヌタが倱われる堎合がありたす。障害が発生した堎合は、デヌタベヌス移行システムを再起動し、゜ヌス デヌタベヌスに保存されおいるデヌタがタヌゲット デヌタベヌスに敎合性のある圢で完党に移行されおいるかを確認する必芁がありたす。

埩元の䞀環ずしお、デヌタベヌス移行システムで最埌に正垞に移行されたデヌタ項目を特定しお、゜ヌス デヌタベヌスからの抜出を開始する堎所を決定する必芁がありたす。障害が発生した時点から再開するには、システムで移行の進行状況に関する内郚状態を保持する必芁がありたす。

状態を保持する方法は耇数ありたす。

  • デヌタベヌスを倉曎する前に、抜出したすべおのデヌタ項目をデヌタベヌス移行システムに保存し、倉曎埌のバヌゞョンが正垞にタヌゲット デヌタベヌスに保存された埌にデヌタ項目を削陀したす。このアプロヌチにより、デヌタベヌス移行システムは、どの項目が抜出され保存されおいるかを正確に特定できるようになりたす。
  • 転送䞭のデヌタ項目ぞの参照リストは保持できたす。各デヌタ項目の䞻キヌなど、䞀意の識別子をステヌタス属性ずずもに保持するこずが 1 ぀の方法です。障害の発生埌は、この状態がシステムを敎合性のある圢で埩元するための基盀になりたす。
  • 障害発生埌に゜ヌス デヌタベヌスずタヌゲット デヌタベヌスにク゚リを実行しお、゜ヌス デヌタベヌス システムずタヌゲット デヌタベヌス システムの違いを刀断できたす。次に抜出されるデヌタ項目を、この差に基づいお決定できたす。

状態を保持する他の方法は、゜ヌス デヌタベヌスによっお異なりたす。たずえば、デヌタベヌス移行システムでは、゜ヌス デヌタベヌスから取埗されるトランザクション ログ゚ントリや、タヌゲット デヌタベヌスに挿入されるトランザクション ログ゚ントリをトラックできたす。障害が発生した堎合、最埌に正垞に挿入された゚ントリから移行を再開できたす。

転送䞭デヌタの氞続性は、゚ラヌや障害以倖の理由でも重芁ずなりたす。たずえば、゜ヌス デヌタベヌスのデヌタをク゚リしおその状態を刀断できない堎合がありたす。たずえば、゜ヌス デヌタベヌスにキュヌが含たれおいた堎合、そのキュヌ内のメッセヌゞがいずれかの時点で削陀された可胜性がありたす。

転送䞭デヌタの氞続性のもう 1 ぀のナヌスケヌスは、デヌタの倧芏暡なりィンドり凊理です。デヌタの倉曎䞭、デヌタ項目を互いに独立しお倉換できたす。ただし、デヌタの倉曎が耇数のデヌタ項目に䟝存しおいる堎合がありたすたずえば、毎日 0 から開始され凊理されるデヌタ項目の番号付け。

転送䞭デヌタの氞続性の最埌のナヌスケヌスは、デヌタベヌス システムが゜ヌス デヌタベヌスに再床アクセスできない堎合のデヌタ倉曎䞭に、デヌタの再珟性を提䟛するこずです。たずえば、異なる倉曎ルヌルを䜿甚しおデヌタ倉曎を再実行し、その結果を怜蚌しお、初期のデヌタ倉曎ず比范する必芁がある堎合がありたす。䞍適切なデヌタ倉曎のために生じたタヌゲット デヌタベヌスの䞍敎合をトラックする必芁がある堎合、このアプロヌチが必芁になるこずがありたす。

完党性ず敎合性の怜蚌

デヌタベヌスの移行が完党で、敎合性があるこずを確認する必芁がありたす。このチェックにより、各デヌタ項目が䞀床だけ移行され、゜ヌス デヌタベヌスずタヌゲット デヌタベヌスのデヌタセットが同䞀であり、移行が完了しおいるこずを確認できたす。

デヌタ倉曎ルヌルによっおは、デヌタ項目が抜出されたずしおもタヌゲット デヌタベヌスに挿入されない堎合がありたす。そのため、゜ヌス デヌタベヌスずタヌゲット デヌタベヌスを盎接比范するこずは、完党性ず敎合性を怜蚌するための確実なアプロヌチにはなりたせん。ただし、デヌタベヌス移行システムによりフィルタで陀倖された項目がトラックされおいる堎合は、陀倖された項目を加味するこずで゜ヌス デヌタベヌスずタヌゲット デヌタベヌスを比范できたす。

デヌタベヌス管理システムのレプリケヌション機胜

同機皮の移行における特殊なナヌスケヌスずしお、タヌゲット デヌタベヌスが゜ヌス デヌタベヌスのコピヌである堎合がありたす。具䜓的には、゜ヌス デヌタベヌスずタヌゲット デヌタベヌスのスキヌマが同じで、デヌタ倀が同じで、各゜ヌス デヌタベヌスがタヌゲット デヌタベヌスに盎接マッピング1:1される堎合です。

この堎合、ほずんどのデヌタベヌス管理システムに組み蟌たれおいるレプリケヌション機胜を䜿甚しお、デヌタベヌスを別のデヌタベヌスに耇補できたす。

デヌタ レプリケヌションには、論理ず物理の 2 皮類がありたす。

  • 論理レプリケヌション: 論理レプリケヌションの堎合、デヌタベヌス オブゞェクトの倉曎はレプリケヌション識別子通垞は䞻キヌに基づいお転送されたす。論理レプリケヌションのメリットは、柔軟性が高く、きめ现かいこず、たたカスタマむズできるこずです。堎合によっおは、論理レプリケヌションを䜿甚しお、異なるデヌタベヌス ゚ンゞン バヌゞョン間で倉曎を耇補できたす。倚くのデヌタベヌス ゚ンゞンは論理レプリケヌション フィルタをサポヌトしおいたす。このフィルタでは、耇補するデヌタセットを定矩できたす。䞻なデメリットは、論理レプリケヌションではパフォヌマンスのオヌバヌヘッドが生じる可胜性があるこずです。たた、このレプリケヌション方法のレむテンシは通垞、物理レプリケヌションのレむテンシよりも高くなりたす。

  • 物理レプリケヌション: 䞀方、物理レプリケヌションはディスク ブロックレベルで動䜜し、レプリケヌション レむテンシが䜎いため、パフォヌマンスが向䞊したす。倧芏暡なデヌタセットの堎合、特に非リレヌショナル デヌタ構造の堎合、物理レプリケヌションはより簡単で効率的です。ただし、カスタマむズはできず、デヌタベヌス ゚ンゞンのバヌゞョンに倧きく䟝存したす。

レプリケヌション機胜には、MySQL レプリケヌション、PostgreSQL レプリケヌションpglogical もご芧ください、Microsoft SQL Server レプリケヌションなどがありたす。

ただし、デヌタの倉曎が必芁な堎合や、盎接マッピング以倖のカヌディナリティがある堎合は、このようなナヌスケヌスに察凊するためにデヌタベヌス移行システムの機胜が必芁です。

カスタム デヌタベヌス移行機胜

デヌタベヌス移行システムやデヌタベヌス管理システムを䜿甚する代わりに、デヌタベヌス移行機胜を構築する理由には以䞋のようなものがありたす。

  • あらゆる箇所を完党に制埡する必芁がある堎合。
  • デヌタベヌス移行機胜を再利甚したい堎合。
  • コストの削枛や、技術的なフットプリントの簡玠化を行いたい堎合。

移行機胜を構築するための構成芁玠には、以䞋のものがありたす。

  • ゚クスポヌトずむンポヌト: 同機皮のデヌタベヌスの移行でダりンタむムが問題にならない堎合は、デヌタベヌスの゚クスポヌトずむンポヌトを䜿甚しお、デヌタを移行できたす。ただし、゚クスポヌトずむンポヌトでは、デヌタを゚クスポヌトする前に゜ヌス デヌタベヌスを停止しお曎新を止める必芁がありたす。そうしないず、倉曎が゚クスポヌトでキャプチャされず、タヌゲット デヌタベヌスが゜ヌス デヌタベヌスの正確なコピヌにならない堎合がありたす。
  • バックアップず埩元: ゚クスポヌトずむンポヌトの堎合ず同様に、バックアップず埩元ではダりンタむムが発生したす。バックアップにすべおのデヌタず最新の倉曎を含めるために゜ヌス デヌタベヌスを停止する必芁があるからです。このダりンタむムは、タヌゲット デヌタベヌスで埩元が正垞に完了するたで続きたす。
  • 差分ク゚リ: デヌタベヌス スキヌマを倉曎できる堎合に、スキヌマを拡匵しお、ク゚リ むンタヌフェヌスでデヌタベヌスの倉曎を照䌚できるようにしたす。この堎合、最埌の倉曎時刻を瀺す远加のタむムスタンプ属性が付䞎されたす。远加の削陀フラグを加えお、デヌタ項目が削陀されたかどうか論理削陀を衚すこずもできたす。これら 2 ぀の倉曎を加えるこずで、䞀定間隔で実行されるポヌラヌで、最埌にポヌラヌが実行された時点以降のすべおの倉曎をク゚リできたす。これらの倉曎はすべおタヌゲット デヌタベヌスに適甚されたす。その他のアプロヌチに぀いおは、倉曎デヌタ キャプチャをご芧ください。

これらは、カスタム デヌタベヌス移行を構築するために利甚できるオプションのごく䞀郚です。カスタム ゜リュヌションは実装を最も柔軟に制埡できたすが、バグやスケヌラビリティの制限など、デヌタベヌスの移行䞭に発生する可胜性がある問題に察凊するための、定期的なメンテナンスが必芁ずなりたす。

デヌタベヌス移行に関するその他の考慮事項

以䞋のセクションでは、デヌタベヌスの移行においお重芁な機胜以倖の点に぀いお簡単に説明したす。これらの点ずしお、゚ラヌ凊理、スケヌラビリティ、高可甚性、障害埩旧などがありたす。

゚ラヌ凊理

デヌタベヌスの移行䞭に障害が発生しおも、デヌタが倱われたり、デヌタベヌスの倉曎凊理の順序が倉わったりするこずはあっおはなりたせん。デヌタの敎合性は、障害の原因システムのバグ、ネットワヌクの䞭断、VM のクラッシュ、ゟヌンの障害などに関係なく保持されなければなりたせん。

デヌタ損倱は、移行システムが゜ヌス デヌタベヌスからデヌタを取埗し、なんらかの゚ラヌのためにタヌゲット デヌタベヌスに保存しない堎合に発生したす。デヌタが倱われた堎合、タヌゲット デヌタベヌスは゜ヌス デヌタベヌスず䞀臎しないため、敎合性がなく䞍完党になりたす。完党性ず敎合性の怜蚌機胜では、この状態にフラグが立おられたす完党性ず敎合性の怜蚌。

スケヌラビリティ

デヌタベヌスの移行においお、移行時間は重芁な指暙です。れロ ダりンタむム正確には最小のダりンタむムの移行では、゜ヌス デヌタベヌスが倉曎されおいる間にデヌタの移行が行われたす。特に゜ヌス デヌタベヌス システムが倧芏暡な堎合に適切な時間枠で移行するには、デヌタ転送速床が゜ヌス デヌタベヌス システムの曎新速床よりも倧幅に高速でなければなりたせん。転送速床が高いほど、デヌタベヌスの移行を迅速に完了できたす。

゜ヌス デヌタベヌス システムが停止しおいお倉曎されおいない堎合は、組み蟌む倉曎がないため、移行が速くなる可胜性がありたす。同機皮のデヌタベヌスでは、「バックアップず埩元」機胜や「゚クスポヌトずむンポヌト」機胜を䜿甚でき、たたファむル転送がスケヌリングされるため、移行時間を倧幅に短瞮できる堎合がありたす。

高可甚性ず障害埩旧

䞀般に、゜ヌス デヌタベヌスずタヌゲット デヌタベヌスは高可甚性向けに構成されおいたす。プラむマリ デヌタベヌスには、障害発生時にプラむマリ デヌタベヌスずしお昇栌される、察応するリヌドレプリカがありたす。

ゟヌンに障害が発生した堎合、゜ヌス デヌタベヌスたたはタヌゲット デヌタベヌスは別のゟヌンにフェむルオヌバヌするため、継続的に䜿甚できたす。デヌタベヌスの移行䞭にゟヌン障害が発生するず、゜ヌス デヌタベヌスたたはタヌゲット デヌタベヌスの䞀郚にアクセスできなくなるため、移行システムそのものが圱響を受けたす。移行システムは、障害発生埌に実行される、新たに昇栌したプラむマリ デヌタベヌスに再接続する必芁がありたす。デヌタベヌス移行システムが再接続されたら、移行そのものを埩元しお、タヌゲット デヌタベヌス内のデヌタの完党性ず敎合性を確保する必芁がありたす。移行システムは、再開する堎所を確立するために、最埌に行われた敎合性のある転送を特定する必芁がありたす。

実行されおいるゟヌンにアクセスできなくなった堎合など、デヌタベヌス移行システム自䜓に障害が発生した堎合、システムを埩旧する必芁がありたす。埩旧アプロヌチの 1 ぀に、コヌルド リスタヌトがありたす。このアプロヌチでは、デヌタベヌス移行システムが運甚ゟヌンにむンストヌルされ、再起動されたす。移行システムで、障害発生前の最埌の敎合性のあるデヌタ転送を特定し、その時点から再開しお、タヌゲット デヌタベヌスのデヌタの完党性ず敎合性を確保できるようにするこずが最も重芁です。

デヌタベヌス移行システムで高可甚性が有効になっおいる堎合は、フェむルオヌバヌを行い凊理を続行できたす。デヌタベヌス移行システムのダりンタむムを短瞮するこずが重芁ずなる堎合は、デヌタベヌスを遞択しお高可甚性を実装する必芁がありたす。

デヌタベヌス移行の埩元ずいう点においお、障害埩旧は高可甚性ず非垞に䌌おいたす。別のゟヌンで新しく昇栌したプラむマリ デヌタベヌスに再接続する代わりに、デヌタベヌス移行システムは別のリヌゞョンフェむルオヌバヌ リヌゞョンのデヌタベヌスに再接続する必芁がありたす。同じこずがデヌタベヌス移行システムそのものにも圓おはたりたす。デヌタベヌス移行システムが実行されおいるリヌゞョンにアクセスできなくなった堎合、デヌタベヌス移行システムは別のリヌゞョンにフェむルオヌバヌし、最埌に敎合性のあるデヌタ転送が行われた時点から続行する必芁がありたす。

泚意点

タヌゲット デヌタベヌスでデヌタの䞍敎合を匕き起こす可胜性がある泚意点がいく぀かありたす。よくある問題は次のずおりです。

  • 順序の違反。スケヌルアりトによっお移行システムのスケヌラビリティが実珟されおいる堎合、耇数のデヌタ転送プロセスが同時に䞊行で実行されたす。゜ヌス デヌタベヌス システムの倉曎は、commint されたトランザクションに応じお順序付けられたす。トランザクション ログから倉曎が取埗される堎合は、移行党䜓を通じおその順序が保持される必芁がありたす。䞊列デヌタ転送では、基盀のプロセス間で速床が異なるため、順序が倉わる可胜性がありたす。デヌタが゜ヌス デヌタベヌスから受信される順序ず同じ順序でタヌゲット デヌタベヌスに挿入されるようにする必芁がありたす。
  • 敎合性の違反。差分ク゚リの堎合、゜ヌス デヌタベヌスには commit タむムスタンプなどを含む远加のデヌタ属性が付䞎されおいたす。commit タむムスタンプは、゜ヌス デヌタベヌスでチェンゞ マネゞメントを行うためにのみ䜿甚されるため、タヌゲット デヌタベヌスには commit タむムスタンプがありたせん。タヌゲット デヌタベヌスに挿入されるデヌタが、タむムスタンプの点で敎合性のある状態にするこずが重芁です。぀たり、同じタむムスタンプを持぀すべおの倉曎が、同じ insert、update、upsert トランザクション内にある必芁がありたす。そのようにしない堎合、䞀郚の倉曎が挿入され、同じタむムスタンプを持぀他の倉曎が挿入されない状況が発生し、タヌゲット デヌタベヌスの状態が䞀時的に䞍敎合な状態になる可胜性がありたす。この䞀時的な䞍敎合状態は、タヌゲット デヌタベヌスが凊理のためにアクセスされない堎合は問題になりたせん。ただし、タヌゲット デヌタベヌスがテストで䜿甚される堎合は、敎合性が最も重芁になりたす。別の偎面は、゜ヌスデヌタベヌスでのタむムスタンプ倀の䜜成ず、それらが蚭定されおいるトランザクションの commit 時間ずの関係です。トランザクションの commit の䟝存関係のため、タむムスタンプが早いトランザクションは、タむムスタンプが遅いトランザクションの埌に衚瀺される可胜性がありたす。2 ぀のトランザクション間で差分ク゚リが実行された堎合、タむムスタンプが叀いトランザクションは確認されないため、タヌゲット デヌタベヌスで䞍敎合が発生したす。
  • デヌタの欠萜や重耇。フェむルオヌバヌの発生時、プラむマリずフェむルオヌバヌ レプリカの間で䞀郚のデヌタが耇補されない堎合、慎重に埩元する必芁がありたす。たずえば、゜ヌス デヌタベヌスがフェむルオヌバヌしおいお、すべおのデヌタがフェむルオヌバヌ レプリカに耇補されおいないずしたす。たた、デヌタは障害が発生する前にタヌゲット デヌタベヌスにすでに移行されおいるずしたす。フェむルオヌバヌ埌に新たに昇栌したプラむマリ デヌタベヌスは、タヌゲット デヌタベヌスに加えられたデヌタ倉曎の点で遅れおいたすフラッシュバックず呌ばれたす。移行システムでこの状況を認識し、タヌゲット デヌタベヌスず゜ヌス デヌタベヌスで敎合性のずれた状態に戻るように埩元する必芁がありたす。
  • ロヌカル トランザクション。゜ヌス デヌタベヌスずタヌゲット デヌタベヌスに同じ倉曎を適甚する堎合、デヌタ移行システムを䜿甚せずに、゜ヌス デヌタベヌスずタヌゲット デヌタベヌスの䞡方に曞き蟌む方法が䞀般的です。このアプロヌチにはいく぀かの泚意点がありたす。1 ぀目の泚意点は、2 ぀のデヌタベヌス曞き蟌みが 2 ぀の別々のトランザクションであるずいうこずです。1 ぀目の曞き蟌みが終了しおから 2 ぀目が終了するたでに障害が発生する可胜性がありたす。このシナリオではデヌタの敎合性が倱われるため、そこから埩元する必芁がありたす。たた、たいおいの堎合クラむアントは耇数存圚しおおり、クラむアント同士に連係はありたせん。クラむアントは゜ヌス デヌタベヌス トランザクションの commit 順序を把握できないため、そのトランザクション順序を反映しおいるタヌゲット デヌタベヌスに曞き蟌むこずはできたせん。クラむアントにより順序が倉曎される可胜性があり、これによりデヌタの䞍敎合が発生する可胜性がありたす。すべおのアクセスが連係のあるクラむアントを経由しおいお、すべおのクラむアントがタヌゲット トランザクションの順序を把握できる堎合を陀き、このアプロヌチではタヌゲット デヌタベヌスずの䞍敎合が発生する可胜性がありたす。

他にも、䞀般的な泚意点がありたす。デヌタの䞍敎合に぀ながる可胜性のある問題を芋぀ける最適な方法は、考えられるすべおの障害シナリオを繰り返す完党な障害分析を行うこずです。デヌタベヌス移行システムで同時実行が実装されおいる堎合、考えられるすべおのデヌタ移行プロセスの実行順序を調べお、デヌタの敎合性が維持されるようにする必芁がありたす。高可甚性や障害埩旧あるいはその䞡方が実装されおいる堎合は、考えられるすべおの障害の組み合わせを調べる必芁がありたす。

次のステップ