Oracle Data Guard Far Syncの使用により、いかなる距離でもデータ損失をゼロにする (2023/01/16)

Oracle Data Guard Far Syncの使用により、いかなる距離でもデータ損失をゼロにする (2023/01/16)

https://database-heartbeat.com/2023/01/16/create-far-sync/




はじめに


Oracle Data Guardは、REDOをスタンバイデータベースに同期して転送することで、データ損失をゼロにすることができます。しかし、スタンバイデータベースが地理的に遠すぎる場合、レイテンシーが大きくなり、プライマリデータベースでのコミット応答時間やトランザクションスループットに影響を与えます。Oracle Active Data Guard Far Sync は、プライマリデータベースのパフォーマンスに影響を与えることなく、どのような距離でもデータ損失をゼロにすることができる。Far Sync インスタンス(軽量 Oracle インスタンス)は、2 つ目のスタンバイデータベースを作成および管理することなく、遠隔地のスタンバイデータベースへのデータ損失ゼロのフェイルオーバーを実行する機能を提供します。



Data Guard環境


以下の例では、OCI Ashburnリージョン(Ashburn_ad1)で稼働するプライマリデータベースと、OCI Londonリージョン(London_ad1)で稼働するスタンバイデータベースからData Guardを構成しています。AshburnとLondon間の高いネットワーク遅延がアプリケーションのパフォーマンスに影響を与えないように、非同期レプリケーションの最大パフォーマンスモードが使用されています。




この構成では、Data GuardブローカーのRedoRoutesプロパティは次のようになります。

[oracle@hostiad ~]$ dgmgrl SYS as sysdba
 
DGMGRL> EDIT DATABASE 'Ashburn_ad1' SET PROPERTY RedoRoutes = '( LOCAL : London_ad1 ASYNC)';
Property "redoroutes" updated
 
DGMGRL> EDIT DATABASE 'London_ad1' SET PROPERTY RedoRoutes = '( LOCAL : Ashburn_ad1 ASYNC )';
Property "redoroutes" updated


コンフィギュレーションを確認します。

[oracle@hostiad ~]$ dgmgrl SYS as sysdba
DGMGRL> show configuration
 
Configuration - Ashburn_ad1_London_ad1
 
  Protection Mode: MaxPerformance
  Members:
  Ashburn_ad1    - Primary database
    London_ad1     - Physical standby database
 
Fast-Start Failover:  Disabled
 
Configuration Status:
SUCCESS   (status updated 57 seconds ago)


Far Syncインスタンスの追加


Maximum Availabilityモードで同期レプリケーションを使用し、アプリケーションのパフォーマンスに影響を与えずにデータ損失をゼロにするために、Far Syncインスタンス(FS1)が構成に追加されます。プライマリデータベースは地理的に近いFar Syncインスタンスに低ネットワークレイテンシーでREDOを送信し、Far Syncインスタンスはスタンバイに非同期でREDOを転送します。



この構成では、Data GuardブローカーのRedoRoutesプロパティは次のようになります。

[oracle@hostiad ~]$ dgmgrl SYS as sysdba
 
DGMGRL> EDIT DATABASE 'Ashburn_ad1' SET PROPERTY RedoRoutes = '( LOCAL : ( FS1 FASTSYNC PRIORITY=1, London_ad1 ASYNC PRIORITY=2 ))';
Property "redoroutes" updated
 
DGMGRL> EDIT FAR_SYNC 'FS1' SET PROPERTY RedoRoutes = '( Ashburn_ad1 : London_ad1 ASYNC )';
Property "redoroutes" updated
 
DGMGRL> EDIT DATABASE 'London_ad1' SET PROPERTY RedoRoutes = '( LOCAL : Ashburn_ad1 ASYNC )';
Property "redoroutes" updated


コンフィギュレーションを確認します。

DGMGRL> show configuration
 
Configuration - Ashburn_ad1_London_ad1
 
  Protection Mode: MaxAvailability
  Members:
  Ashburn_ad1    - Primary database
    fs1            - Far sync instance
      London_ad1     - Physical standby database
 
Fast-Start Failover:  Disabled
 
Configuration Status:
SUCCESS   (status updated 57 seconds ago)


リモートリージョンのFar Syncインスタンス


以前の構成でロールスイッチを行った後、ロンドンの新しいプライマリはAshburnに非同期でREDOを送信します。



ロールスイッチ後のデータ損失をゼロにするためには、ロンドン地域にもFar Syncインスタンス(FS2)を追加する必要があります。ロンドンの新しいプライマリは、地理的に近いFar Syncインスタンスに同期してREDOを送信し、Far Syncインスタンスは非同期でAshburnにREDOを転送します。



これは、RedoRoutesを以下のように変更することで実現します。

DGMGRL> EDIT DATABASE 'London_ad1' SET PROPERTY RedoRoutes = '( LOCAL : ( FS2 FASTSYNC PRIORITY=1, Ashburn_ad1 ASYNC PRIORITY=2 ))';
Property "redoroutes" updated
 
DGMGRL> EDIT FAR_SYNC 'FS2' SET PROPERTY RedoRoutes = '( London_ad1 : Ashburn_ad1 ASYNC )';
Property "redoroutes" updated


Far Syncインスタンスの場所


Far Syncインスタンスは、同じ障害や災害の影響を受けないようにプライマリデータベースから分離する必要がありますが、低レイテンシーと高いアプリケーションパフォーマンスを確保するためにプライマリに十分に近い場所に設置する必要があります。


プライマリ、スタンバイ、およびFar Syncインスタンスは、オンプレミス、Oracle Cloud、非Oracle Cloud、Hybrid Cloud、またはMulticloud環境など、どこにでも導入することが可能です。


たとえば、複数のデータセンター(Availability Domains/Zone)を持つリージョンのクラウドシナリオでは、Far Syncインスタンスをプライマリとは異なるデータセンターに配置することができる。





考察


  •     Far Syncは非常に軽量なインスタンスです。しかし、Far Syncインスタンスは受信したREDOをディスクに書き込んでからプライマリに確認応答を返すため、ディスクのパフォーマンスが重要であり、アプリケーションのパフォーマンスに影響を及ぼします。
  •     Far Syncインスタンスの高可用性を確保するために、1つのリージョンに2つのFar Syncインスタンスを作成します。
  •     Far Sync機能には、Active Data Guardオプションのライセンスが必要です。



まとめ


Far Syncはプライマリデータベースから同期的にREDOを受け取り、非同期的にスタンバイデータベースへ転送するため、スタンバイデータベースがプライマリから遠く離れていても、アプリケーションパフォーマンスに影響を与えずにデータ損失をゼロにすることができます。リモートリージョンに追加のFar Syncインスタンスを作成し、ロールスイッチ後の対称構成を確保します。



参考資料

コメント

このブログの人気の投稿

Oracle Database 19cサポート・タイムラインの重要な更新 (2024/11/20)

Oracle GoldenGate 23aiでMicrosoft Fabricでのオープン・ミラーリングがサポートされるようになりました (2024/11/19)

Oracle APEXのInteractive Gridで、Oracle Formsと比較して、重複行の検証を制御/通過させる方法 (2022/07/21)