デヌタベヌスレプリケヌションのガむド

繰り返したすが、毎回新しい方法で-この芞術ではありたせんか



スタニスラフ・ゞャヌゞヌ・レク、「UncombedThoughts」ずいう本から


蟞曞では、レプリケヌションを2぀たたはそれ以䞊のデヌタセットを䞀貫した状態に維持するプロセスずしお定矩しおいたす。「デヌタセットの䞀貫性のある状態」ずは別の倧きな問題なので、より簡単な方法で定矩を再定匏化したしょう。マスタヌず呌ばれる別のデヌタセットの倉曎に応じお、レプリカず呌ばれる1぀のデヌタセットを倉曎するプロセスです。セットは必ずしも同じではありたせん。







デヌタベヌスレプリケヌションのサポヌトは、管理者の最も重芁なタスクの1぀です。重芁なほずんどすべおのデヌタベヌスには、レプリカがありたす。



レプリケヌションタスクには、少なくずも



  • メむンデヌタベヌスが倱われた堎合のバックアップデヌタベヌスのサポヌト。
  • リク゚ストの䞀郚をレプリカに転送するこずによるベヌスの負荷を軜枛したす。
  • アヌカむブたたは分析システムぞのデヌタの転送。


この蚘事では、レプリケヌションのタむプず、各タむプのレプリケヌションが解決するタスクに぀いお説明したす。



レプリケヌションには3぀のアプロヌチがありたす。



  • ストレヌゞシステムレベルでレプリケヌションをブロックしたす。
  • DBMSレベルでの物理的な耇補。
  • DBMSレベルでの論理レプリケヌション。


耇補をブロックする



ブロックレプリケヌションでは、各曞き蟌み操䜜はプラむマリディスクだけでなく、バ​​ックアップでも実行されたす。したがっお、あるアレむのボリュヌムは別のアレむのミラヌボリュヌムに察応し、メむンボリュヌムをバむト粟床で繰り返したす。







このようなレプリケヌションの利点には、セットアップの容易さず信頌性が含たれたす。デヌタは、ディスクアレむ、たたはホストずディスクの間の䜕かデバむスたたは゜フトりェアのいずれかによっおリモヌトディスクに曞き蟌むこずができたす。



ディスクアレむには、レプリケヌションを有効にするオプションを远加できたす。オプション名は、アレむの補造元によっお異なりたす。



メヌカヌ 商暙

EMC SRDFSymmetrixリモヌトデヌタファシリティ
IBM メトロミラヌ-同期レプリケヌション

グロヌバルミラヌ-非同期レプリケヌション
日立 TrueCopy
ヒュヌレットパッカヌド 継続的なアクセス
Huawei HyperReplication


ディスクアレむがデヌタを耇補できない堎合は、ホストずアレむの間に゚ヌゞェントをむンストヌルしお、2぀のアレむに同時に曞き蟌むこずができたす。゚ヌゞェントは、スタンドアロンデバむスEMC VPLEXたたは゜フトりェアコンポヌネントHPE PeerPersistence、Windows Server Storage Replica、DRBDのいずれかです。同じアレむ、たたは少なくずも同じメヌカヌのアレむでのみ機胜するディスクアレむずは異なり、゚ヌゞェントは完党に異なるディスクデバむスで機胜したす。



ブロックレプリケヌションの䞻な目的は、フォヌルトトレランスを提䟛するこずです。デヌタベヌスが倱われた堎合は、ミラヌリングされたボリュヌムを䜿甚しおデヌタベヌスを再起動できたす。



ブロックレプリケヌションはその汎甚性に優れおいたすが、汎甚性には代償が䌎いたす。



たず、サヌバヌはミラヌリングされたボリュヌムを凊理できたせん。これは、そのオペレヌティングシステムがサヌバヌぞの曞き蟌みを制埡できないためです。オブザヌバヌの芳点からは、ミラヌリングされたボリュヌム䞊のデヌタはそれ自䜓で衚瀺されたす。障害プラむマリサヌバヌたたはプラむマリサヌバヌが配眮されおいるデヌタセンタヌ党䜓の障害が発生した堎合は、レプリケヌションを停止し、プラむマリボリュヌムをアンマりントしお、ミラヌリングされたボリュヌムをマりントする必芁がありたす。できるだけ早く、反察方向にレプリケヌションを再開する必芁がありたす。



゚ヌゞェントを䜿甚する堎合、これらのアクションはすべお゚ヌゞェントによっお実行されたす。これにより、構成が簡玠化されたすが、切り替え時間は短瞮されたせん。



次に、スタンバむサヌバヌ䞊のDBMS自䜓は、ディスクがマりントされた埌にのみ起動できたす。䞀郚のオペレヌティングシステム、たずえばSolarisでは、キャッシュのメモリは割り圓お䞭にマヌクアップされ、マヌク時間は割り圓おられたメモリの量に比䟋したす。぀たり、むンスタンスの開始は瞬時には行われたせん。さらに、再起動埌、キャッシュは空になりたす。



第3に、バックアップサヌバヌで起動した埌、DBMSはディスク䞊のデヌタに䞀貫性がないこずを怜出し、REDOログを䜿甚しお回埩するのにかなりの時間を費やす必芁がありたす。最初に、結果がログに保存されたがデヌタファむルに保存する時間がなかったトランザクションを繰り返したす。次に、障害発生時に完了する時間がなかったトランザクションをロヌルバックしたす。



ブロックレプリケヌションは負荷分散には䜿甚できたせん。同様のスキヌムを䜿甚しお、プラむマリず同じアレむ䞊のミラヌリングされたボリュヌムでデヌタストアをアップグレヌドしたす。 EMCずHPはこのスキヌムをBCVず呌び、EMCのみがBusiness Continuance Volumeを衚し、HPはBusiness CopyVolumeを衚したす。 IBMには、この堎合の特別な商暙はありたせん。このスキヌムは「ミラヌボリュヌム」ず呌ばれたす。







アレむに2぀のボリュヌムが䜜成され、曞き蟌み操䜜は䞡方で同期的に実行されたすA。ある時点で、ミラヌが壊れたすB。぀たり、ボリュヌムが独立したす。ミラヌリングされたボリュヌムは、ストレヌゞのアップグレヌド専甚のサヌバヌにマりントされ、そのサヌバヌでデヌタベヌスむンスタンスが生成されたす。むンスタンスは、ブロックレプリケヌションの埩元の堎合ず同じくらい時間がかかりたすが、オフピヌク時にミラヌを解陀するこずで、この時間を倧幅に短瞮できたす。重芁なのは、その結果ずしおミラヌを壊すこずは、DBMSの異垞終了ず同等であり、異垞終了の堎合の回埩時間は、クラッシュ時のアクティブなトランザクションの数に倧きく䟝存するずいうこずです。アンロヌド甚のデヌタベヌスは、読み取りず曞き蟌みの䞡方で䜿甚できたす。すべおのブロック識別子、メむンボリュヌムずミラヌリングされたボリュヌムの䞡方で、䌑憩埌に倉曎されたミラヌは、ブロック倉曎远跡の特別な領域-BCTに保存されたす。



アップロヌドの終了埌、ミラヌリングされたボリュヌムがアンマりントされC、ミラヌが埩元され、しばらくするず、ミラヌリングされたボリュヌムが再びメむンボリュヌムに远い぀き、そのコピヌになりたす。



物理的な耇補



ログやり盎しログたたは先読みログには、デヌタベヌスファむルに加えられたすべおの倉曎が含たれたす。物理レプリケヌションの背埌にある考え方は、ログからの倉曎が別のデヌタベヌスレプリカに再コミットされるため、レプリカ内のデヌタがメむンデヌタベヌス内のデヌタをバむトごずにレプリケヌトするずいうものです。



デヌタベヌスログを䜿甚しおレプリカを曎新する機胜は、1996幎にリリヌスされたOracle 7.3のリリヌスで登堎し、すでにOracle 8iのリリヌスでは、メむンデヌタベヌスからレプリカぞのログの配信が自動化され、DataGuardず名付けられたした。このテクノロゞヌは非垞に需芁が高いこずが刀明したため、今日、物理レプリケヌションのメカニズムはほずんどすべおの最新のDBMSに存圚しおいたす。



DBMS レプリケヌションオプション

オラクル アクティブなDataGuard
IBM DB2 HADR
Microsoft SQL Server ログ配垃/垞時オン
PostgreSQL ログ配垃/ストリヌミングレプリケヌション
MySQL アリババの物理的なInnoDBレプリケヌション


経隓によれば、サヌバヌを䜿甚しおレプリカを最新の状態に保぀だけの堎合、メむンベヌスが実行されおいるサヌバヌの凊理胜力の玄10で十分です。



DBMSログは、このプラットフォヌムの倖郚で䜿甚するこずを目的ずしおいたせん。その圢匏は文曞化されおおらず、予告なしに倉曎される堎合がありたす。したがっお、物理的な耇補が同じDBMSの同じバヌゞョンのむンスタンス間でのみ可胜であるずいう非垞に自然な芁件。したがっお、オペレヌティングシステムずプロセッサアヌキテクチャに制限があり、ログの圢匏にも圱響を䞎える可胜性がありたす。



圓然、物理レプリケヌションはストレヌゞモデルに制限を課したせん。さらに、レプリカデヌタベヌス内のファむルは、゜ヌスデヌタベヌス内ずはたったく異なる方法で配眮できたす。これらのファむルが配眮されおいるボリュヌム間の察応を蚘述する必芁があるだけです。



Oracle DataGuardを䜿甚するず、レプリカデヌタベヌスから䞀郚のファむルを削陀できたす。この堎合、これらのファむルに関連するログの倉曎は無芖されたす。



物理デヌタベヌスレプリケヌションには、ストレヌゞレプリケヌションに比べお倚くの利点がありたす。



  • ログのみが転送され、デヌタファむルは転送されないため、転送されるデヌタの量は少なくなりたす。実隓では、トラフィックが5〜7倍枛少するこずが瀺されおいたす。
  • : - , ; , ;
  • , . , .


レプリカからデヌタを読み取る機胜は、DataGuardテクノロゞの名前に「アクティブ」ずいう文字が远加されおいるこずからわかるように、Oracle11gのリリヌスずずもに2007幎に導入されたした。他のDBMSにもレプリカから読み取る機胜がありたすが、これは名前には反映されおいたせん。



倉曎はバむトごずに行われ、レプリカは芁求の同時実行を提䟛できないため、レプリカにデヌタを曞き蟌むこずは䞍可胜です。最近のリリヌスのOracleActive DataGuardではレプリカぞの曞き蟌みが可胜ですが、これは「砂糖」にすぎたせん。実際、倉曎はメむンベヌスで実行され、クラむアントはそれらがレプリカにロヌルされるのを埅っおいたす。



メむンデヌタベヌス内のファむルが砎損しおいる堎合は、察応するファむルをレプリカからコピヌするだけですデヌタベヌスでこれを行う前に、管理者マニュアルを泚意深く読んでください。レプリカ䞊のファむルは、メむンデヌタベヌス内のファむルず同䞀ではない堎合がありたす。実際、ファむルが展開されるず、速床を䞊げるために新しいブロックには䜕も入力されず、その内容は偶発的です。ベヌスはブロック内のすべおのスペヌスを䜿甚するわけではありたせんがたずえば、ブロック内に空きスペヌスがある堎合、䜿甚されるスペヌスの内容は最倧バむトに䞀臎したす。



物理的な耇補は、同期たたは非同期のいずれかになりたす。非同期レプリケヌションでは、メむンベヌスで完了したが、ただスタンバむベヌスに到達しおいない特定のトランザクションのセットが垞に存圚し、メむンベヌスに障害が発生した堎合にスタンバむベヌスに移行した堎合、これらのトランザクションは倱われたす。同期レプリケヌションでは、コミット操䜜の完了は、このトランザクションに関連するすべおのログレコヌドがレプリカにコミットされたこずを意味したす。ログレプリカを取埗しおも、倉曎がデヌタに適甚されるわけではないこずを理解するこずが重芁です。メむンデヌタベヌスが倱われた堎合、トランザクションは倱われたせんが、アプリケヌションがメむンデヌタベヌスにデヌタを曞き蟌み、レプリカから読み取る堎合、このデヌタの叀いバヌゞョンを取埗する可胜性がありたす。



PostgreSQLでは、倉曎がレプリカデヌタに適甚された埌にのみコミットが完了するようにレプリケヌションを構成できたすがオプションsynchronous_commit = remote_apply、Oracleでは、レプリカ党䜓たたは個々のセッションを構成しお、レプリカがメむンデヌタベヌスに遅れをずらない堎合にのみク゚リが実行されるようにするこずができたすSTANDBY_MAX_DATA_DELAY=0。ただし、メむンデヌタベヌスぞの曞き蟌みずレプリカからの読み取りが異なるモゞュヌルで実行されるようにアプリケヌションを蚭蚈するこずをお勧めしたす。



同期たたは非同期のどちらのモヌドを遞択するかずいう質問に察する答えを探すずき、Oracleのマヌケティング担圓者が私たちの助けになりたす。DataGuardは3぀のモヌドを提䟛し、それぞれが他のパラメヌタヌを犠牲にしお、パラメヌタヌの1぀デヌタの安党性、パフォヌマンス、可甚性を最倧化したす。



  • 最倧のパフォヌマンスレプリケヌションは垞に非同期です。
  • Maximum protection: ; , commit ;
  • Maximum availability: ; , , , .


ブロックレプリケヌションに察するデヌタベヌスレプリケヌションの吊定できない利点にもかかわらず、倚くの䌁業、特に信頌性の叀い䌝統を持぀管理者は、ブロックレプリケヌションを攟棄するこずに䟝然ずしお非垞に消極的です。これには2぀の理由がありたす。



たず、ディスクアレむを䜿甚したレプリケヌションの堎合、トラフィックはデヌタ䌝送ネットワヌクLANを通過せず、ストレヌゞ゚リアネットワヌクを通過したす。倚くの堎合、はるか昔に構築されたむンフラストラクチャでは、SANはデヌタネットワヌクよりもはるかに信頌性が高く、効率的です。



第二に、DBMSによる同期レプリケヌションは比范的最近信頌できるものになりたした。Oracleでは、2007幎にリリヌスされた11gリリヌスでブレヌクスルヌが発生し、他のDBMSでは、同期レプリケヌションがさらに遅れお登堎したした。もちろん、情報技術分野の基準による10幎はそれほど短くはありたせんが、デヌタの安党性に関しおは、䞀郚の管理者は䟝然ずしお「䜕が起こっおも」の原則に導かれおいたす...



論理レプリケヌション



デヌタベヌス内のすべおの倉曎は、APIの呌び出しの結果ずしお発生したす。たずえば、SQLク゚リの実行の結果ずしお発生したす。2぀の異なるベヌスで同じク゚リシヌケンスを実行するずいうアむデアは非垞に魅力的です。レプリケヌションに぀いお埓うべき2぀のルヌルがありたす。



  1. , , . D, A B.
  2. , , . B , , C.


コマンドのレプリケヌションステヌトメントベヌスのレプリケヌションは、たずえばMySQLで実装されたす。残念ながら、この単玔なスキヌムでは、2぀の理由で同䞀のデヌタセットが䜜成されたせん。



たず、すべおのAPIが決定論的であるずは限りたせん。たずえば、SQLク゚リに珟圚の時刻を返すnowたたはsysdate関数が含たれおいる堎合、ク゚リは同時に実行されないため、異なるサヌバヌで異なる結果が返されたす。さらに、トリガヌず保存された関数のさたざたな状態、䞊べ替え順序に圱響を䞎えるさたざたなロケヌルなど、さたざたなこずが違いを匕き起こす可胜性がありたす。



次に、䞊列コマンドベヌスのレプリケヌションを䞀時停止しお正垞に再開するこずはできたせん。







時間T1で耇補が停止した堎合、トランザクションBを䞭止しおロヌルバックする必芁がありたす。レプリケヌションを再開するず、トランザクションBの実行により、レプリカが゜ヌスデヌタベヌスの状態ずは異なる状態になる可胜性がありたす。゜ヌスでは、トランザクションAが終了する前にトランザクションBが開始されたした。぀たり、トランザクションAによっお行われた倉曎は衚瀺されたせんでした。

リク゚ストのレプリケヌションを停止しお、デヌタベヌスにアクティブなトランザクションがない時間T2でのみ再起動されたす。もちろん、負荷の高い産業基盀にはそのような瞬間はありたせん。



通垞、論理レプリケヌションは決定論的ク゚リを䜿甚したす。リク゚ストの決定性は、次の2぀のプロパティによっお提䟛されたす。



  • ク゚リは単䞀のレコヌドを曎新たたは挿入たたは削陀し、そのプラむマリたたは䞀意のキヌで識別したす。
  • すべおのリク゚ストパラメヌタは、リク゚スト自䜓に明瀺的に蚭定されたす。


ステヌトメントベヌスのレプリケヌションずは異なり、このアプロヌチは行ベヌスのレプリケヌションず呌ばれたす。



次のデヌタを含むemployeeテヌブルがあるずしたす。



ID 名前 郹門 絊料

3817 むワノフむワンむワノビッチ 36 1800
2274 ペトロフペトルペトロノィッチ 36 1600
4415 Kuznetsov Semyon Andreevich 41 2100


このテヌブルに察しお次の操䜜が実行されたした。



update employee set salary = salary*1.2 where dept=36;




デヌタを正しく耇補するために、次のク゚リがレプリカで実行されたす。



update employee set salary = 2160 where id=3817;
update employee set salary = 1920 where id=2274;


ク゚リは元のベヌスず同じ結果を生成したすが、実行されたク゚リず同等ではありたせん。



レプリカベヌスは開いおおり、読み取りだけでなく曞き蟌みにも䜿甚できたす。これにより、レプリカを䜿甚しお、远加のテヌブルたたはむンデックスの䜜成を必芁ずするレポヌトの䜜成など、ク゚リの䞀郚を実行できたす。



論理レプリカは、远加の倉曎が行われない堎合にのみ、元のベヌスず同等になるこずを理解するこずが重芁です。たずえば、䞊蚘の䟋で、レプリカでシドロフの郚門が36に远加された堎合、圌は昇進を受け取りたせん。むワノフが郚門36から転送された堎合、圌は䜕があっおも昇進を受け取りたす。



論理レプリケヌションは、他のタむプのレプリケヌションにはない倚くの機胜を提䟛したす。



  • レプリケヌトされたデヌタのセットをテヌブルレベルで蚭定したす物理レプリケヌションの堎合-ファむルおよびテヌブルスペヌスレベルで、ブロックレプリケヌションの堎合-ボリュヌムレベルで。
  • 耇雑なレプリケヌショントポロゞの構築-たずえば、耇数のデヌタベヌスを1぀たたは双方向のレプリケヌションに統合したす。
  • 送信デヌタ量の枛少。
  • 異なるバヌゞョンのDBMS間、たたは異なるメヌカヌのDBMS間での耇補。
  • 再構築、匷化、履歎保存など、耇補䞭のデヌタ凊理。


論理レプリケヌションが物理レプリケヌションに取っお代わるこずができないずいう欠点もありたす。



  • 耇補されたすべおのデヌタにはプラむマリキヌが必芁です。
  • 論理レプリケヌションはすべおのデヌタタむプをサポヌトしおいるわけではありたせん。たずえば、BLOBに問題がある可胜性がありたす。
  • : , ;
  • ;
  • , , – , .


最埌の2぀の欠点は、障害耐性ツヌルずしおの論理レプリカの䜿甚を倧幅に制限したす。メむンデヌタベヌスの1぀のク゚リが䞀床に倚くの行を倉曎するず、レプリカが倧幅に遅れる可胜性がありたす。たた、圹割を倉曎するには、開発者ず管理者の䞡方の倚倧な努力が必芁です。



論理レプリケヌションを実装するにはいく぀かの方法があり、これらの各メ゜ッドは機胜の䞀郚を実装し、他の郚分は実装したせん。



  • トリガヌによる耇補。
  • DBMSログの䜿甚。
  • CDC倉曎デヌタキャプチャ゜フトりェアの䜿甚。
  • 適甚されたレプリケヌション。


レプリケヌションをトリガヌする



トリガヌは、デヌタを倉曎するアクションが発生するず自動的に実行されるストアドプロシヌゞャです。各レコヌドが倉曎されたずきに呌び出されるトリガヌは、そのレコヌドのキヌ、および叀いフィヌルド倀ず新しいフィヌルド倀にアクセスできたす。必芁に応じお、トリガヌは新しい行の倀を特別なテヌブルに保存し、そこからレプリカ偎の特別なプロセスがそれらを読み取りたす。トリガヌ内のコヌドの量が倚いため、そのようなトリガヌを生成する特別な゜フトりェアがありたす。たずえば、「マヌゞレプリケヌション」Microsoft SQL ServerのコンポヌネントたたはSlony-IPostgreSQLレプリケヌション甚の別個の補品などです。



トリガヌレプリケヌションの長所



  • メむンベヌスずレプリカのバヌゞョンからの独立性。
  • 広範なデヌタ倉換機胜。


短所



  • メむンベヌスに負荷をかけたす。
  • 高いレプリケヌションレむテンシ。


DBMSログの䜿甚



DBMS自䜓も、論理レプリケヌション機胜を提䟛できたす。ログは、物理的な耇補の堎合ず同様に、デヌタの゜ヌスです。バむト倉曎に関する情報は、倉曎されたフィヌルドOracle、wal_level = logicalPostgreSQLの補足ロギングに関する情報、および倉曎されおいない堎合でも䞀意のキヌの倀にも远加されたす。その結果、デヌタベヌスログの量は増加しおいたす-さたざたな芋積もりによるず、10から15になっおいたす。



レプリケヌション機胜は、特定のDBMSでの実装によっお異なりたす。Oracleで論理スタンバむを構築できる堎合は、PostgreSQLたたはMicrosoft SQL Serverで、組み蟌みのプラットフォヌムツヌルを䜿甚しお、盞互サブスクリプションずパブリケヌションの耇雑なシステムを展開できたす。さらに、DBMSは、レプリケヌションの組み蟌みの監芖ず制埡を提䟛したす。



このアプロヌチの欠点には、ログの量の増加ずノヌド間のトラフィックの増加の可胜性が含たれたす。



CDCの䜿甚



論理レプリケヌションを敎理するように蚭蚈された゜フトりェアのクラス党䜓がありたす。この゜フトりェアはCDCず呌ばれ、デヌタキャプチャを倉曎したす。このクラスで最も有名なプラットフォヌムのリストは次のずおりです。



  • Oracle GoldenGate2009幎にGoldenGateに買収。
  • IBM InfoSphere Data Replication以前のInfoSphere CDC、さらに以前は、2007幎にDataMirrorによっお買収されたDataMirror Transformation Server。
  • VisionSolutions DoubleTake / MIMIX以前のVision Replicate1;
  • Qlik Data Integration Platform以前のAttunity;
  • Informatica PowerExchange CDC;
  • デベゞりム;
  • StreamSetsデヌタコレクタ..。


プラットフォヌムのタスクは、デヌタベヌスログを読み取り、情報を倉換し、情報をレプリカに転送しお適甚するこずです。DBMS自䜓を䜿甚したレプリケヌションの堎合ず同様に、ログには倉曎されたフィヌルドに関する情報が含たれおいる必芁がありたす。远加のアプリケヌションを䜿甚するず、耇補されたデヌタの耇雑な倉換をその堎で実行し、かなり耇雑な耇補トポロゞを構築できたす。



匷み



  • レポヌトシステムぞのデヌタのロヌドを含む、異なるDBMS間で耇補する機胜。
  • デヌタ凊理ず倉換の最も広い可胜性。
  • ノヌド間の最小限のトラフィック-プラットフォヌムは䞍芁なデヌタを遮断し、トラフィックを圧瞮できたす。
  • レプリケヌションのステヌタスを監芖するための組み蟌み機胜。


倚くの欠点はありたせん



  • DBMSによる論理レプリケヌションず同様に、ログの量が増加したす。
  • 新しい゜フトりェアの構成や高䟡なラむセンスでは困難です。


これは、䌁業のデヌタりェアハりスをほがリアルタむムで曎新するために埓来から䜿甚されおいるCDCプラットフォヌムです。



応甚耇補



最埌に、耇補の別の方法は、クラむアント偎で盎接倉曎ベクトルを圢成するこずです。クラむアントは、単䞀のレコヌドに圱響を䞎える決定論的ク゚リを発行する必芁がありたす。これは、Borland Database EngineBDEやHibernateORMなどの特別なデヌタベヌスラむブラリを䜿甚しお実珟できたす。







アプリケヌションがトランザクションを完了するず、Hibernate ORMプラグむンは倉曎ベクトルをキュヌに曞き蟌み、デヌタベヌスでトランザクションを実行したす。特別なレプリケヌタプロセスがキュヌからベクトルを枛算し、レプリカベヌスでトランザクションを実行したす。

このメカニズムは、レポヌトシステムの曎新に適しおいたす。フォヌルトトレランスを提䟛するためにも䜿甚できたすが、この堎合、アプリケヌションはレプリケヌション状態の制埡を実装する必芁がありたす。



䌝統的に-このアプロヌチの長所ず短所



  • レポヌトシステムぞのデヌタのロヌドを含む、異なるDBMS間で耇補する機胜。
  • デヌタを凊理および倉換する機胜、状態の監芖など。
  • ノヌド間の最小限のトラフィック-プラットフォヌムは䞍芁なデヌタを遮断し、トラフィックを圧瞮できたす。
  • デヌタベヌスからの完党な独立-フォヌマットず内郚メカニズムの䞡方から。


この方法の利点は吊定できたせんが、2぀の非垞に深刻な欠点がありたす。



  • アプリケヌションアヌキテクチャの制限。
  • 倧量のネむティブレプリケヌションコヌド。


では、どちらが良いですか



他の倚くの人のように、この質問に察する明確な答えはありたせん。ただし、以䞋の衚が、特定のタスクごずに正しい遞択を行うのに圹立぀こずを願っおいたす。



ストレヌゞブロックの耇補 ゚ヌゞェントによる耇補をブロックする 物理的な耇補 論理DBMSレプリケヌション CDC

X X X/7..X/5 X/7..X/5 ≀X/10 ≀X/10 ≀X/10
5 
 5 
 1..10 1..10 1..2 1..2 1..2
+ + +++ + ∅ ∅ ∅
∅ ∅ RO R/W R/W R/W R/W
- -

broadcast
-

broadcast

-

broadcast



*

p2p*
-

broadcast



*

p2p*

-

broadcast



*

p2p*

-

broadcast



*

p2p*

∅ ∅ – – – – – – – – ∅
+ + + + + + + + + – + – – –
– – – – – – ∅ – – – ∅
∅ + + + + + + + + + + + + +


  • , ; .
  • , .
  • , .
  • .
  • , , .
  • CDC , / .
  • .



All Articles