Oracle Active Data GuardがAWS RDSのRead Replicasよりも優れたディザスタリカバリを提供する方法 (2022/11/21)

Oracle Active Data GuardがAWS RDSのRead Replicasよりも優れたディザスタリカバリを提供する方法 (2022/11/21)

https://database-heartbeat.com/2022/11/21/data-guard-aws-rds/



はじめに


最近、AWS RDS for OracleはOracle Active Data GuardをベースとしたRead Replicasを使用した強固なディザスタリカバリソリューションを提供するのか、という質問を受けたことがあります。


Oracle (Active) Data Guardは、間違いなくOracle DatabaseのためのOracleの最も包括的なデータ保護およびディザスタリカバリソリューションです。しかし、私が「RDS」を読んだり聞いたりするたびに、次に頭に浮かぶ言葉は「制限」です。そこで、AWSのドキュメントを確認し、そこに何があるのかを見てみることにしました。引用とスクリーンショットは、以下のAWSのドキュメントから引用しています。



データ損失ゼロ(RPO=0)


AWS RDS Read Replicasは非同期レプリケーションのみをサポートしており、データ損失ゼロを保証するものではありません。AWSはPROを一桁の分単位で主張していますが、これはワークロードによっては現実的かもしれません。



Data Guardは非同期レプリケーションと同期レプリケーションの両方を提供します。Data Guardの最大保護モードは、いかなる状況下でも、1つのトランザクションも含めて、データを失わないことを保証します。Active Data Guard Far Syncは、どのような距離でもデータ損失をゼロにすることができます。ネットワーク暗号化およびREDO圧縮は、FAR SYNCインスタンスにオフロードすることも可能です。



自動フェイルオーバー(低RTO)


AWS RDSのRead Replicasは、手動フェイルオーバーしかサポートしていません。



RTOを一桁分で主張しています。



ただし、Read Replicaを昇格させる前に



これらの待ち時間はすべてRTOに含まれますが、DBAが障害について通知され、システムにログインして分析を行い、Read Replicaを昇格することを決定するまでに必要な時間については言及されていません。RTOは、おそらく「一桁の分」以上となるでしょう。


Data Guardは、Fast-Start Failover(FSFO)機能によって自動フェイルオーバーを行い、人手を介さずに2分またはそれ以下の時間で回復することができます。



アプリケーションフェイルオーバー


障害が発生した場合、データベースとアプリケーションを考慮する必要があります。AWS Read Replicasでは、アプリケーションを停止して、新しいプライマリデータベースを指して再起動する必要があります。



Oracle (Transparent) Application Continuity は Active Data Guard とともに使用することで、透過的なアプリケーションフェイルオーバーを実現し、新しいプライマリデータベース上でインフライトトランザクションを再生することも可能です。


Oracle Global Data Services(GDS)はさらに、リージョンベースのワークロードルーティング、ロードバランシング、ロールベースのグローバルサービス、Active Data Guard用のレプリケーション遅延ベースのワークロードルーティングなどを提供します。



フェイルオーバー後のスタンドバイの再作成


災害発生後は、自動フェイルオーバー機能がないため、前に説明したように、手動でRead Replicasの1つを新しいプライマリとして昇格させる必要があります。そのうえで



「フェイルオーバー」後は、新しいプライマリデータベースと1つまたは複数のスタンバイデータベースを持つわけではありません。新しいスタンドアロンデータベースを持つだけです。以前のスタンバイはすべて削除し、新しいスタンバイを作成する必要があります。この間、本番データベースは、その後の障害に備えて保護されないので、手作業はさておき。


Oracle Data Guard は、構成内の追加の健全なスタンバイデータベースを再構築することなくフェイルオーバー機能を提供し、本番データの継続的な保護を実現します。障害が発生した旧プライマリデータベースを復旧させるだけでよいのです。FastStartFailoverAutoReinstateブローカー構成プロパティをTRUEに設定することで、Fast-Startフェイルオーバーが発生した後に自動的にこれを行うことも可能です。


Data Guardはディザスターリカバリーだけではありません


ここまではディザスターリカバリーについて考えてみました。しかし、(Active)Data Guardはそれ以上のものを提供します。


  •     集中的なワークロードのスケールアウト
  •     より簡単な開発サイクル
  •     オンラインアップグレードとマイグレーション
  •     バックアップとメンテナンスのオフロード


マルチテナントアーキテクチャ


RDS for Oracle replicasサイトの考慮事項には、非推奨の非CDBアーキテクチャのみサポートすると記載されています。



これは、PDBレベルでの統合が行われず、コストと複数のRDSインスタンス用のレプリカの維持が増加することを意味します。



ローリングアップグレードとスタンバイ優先のパッチ適用


AWS RDSの計画的なメンテナンスは、ダウンタイムを意味することを心に留めておいてください リリースアップデート(RU)の適用やメジャーリリースへのアップグレードに関わらず、プライマリデータベースは利用できない。



Oracle Data Guard Standby-First Patch Applyは、その名の通り、まずスタンバイデータベースにパッチを当て、テストのためにスナップショットスタンバイに変換し、物理スタンバイに戻すことができます。そして、準備が整ったところで、元プライマリにパッチを適用します(ダウンタイムはほぼゼロ)。


ダウンタイムがほぼゼロになるのは、Data Guardのローリングアップグレード機能によるメジャーバージョンアップグレードにも適用できます。Active Data Guardは、DBMS_ROLLING PL/SQLパッケージを使用して、このプロセスを簡素化します。



物理スタンバイへのバックアップのオフロード


AWS RDSのリードレプリカはバックアップをサポートしていないため、バックアップは常にプライマリにある必要があり、負荷が増え、高い帯域幅を必要とします。



Oracle Data Guard では、物理スタンバイ上の RMAN バックアップをオフロードすることで、プライマリのリソースを本番ワークロードに解放することができます。Active Data Guard は、物理スタンバイでの Fast Incremental Backups を提供し、スタンバイデータベースシステムでの消費リソースをさらに削減します。



RDSカスタム for Oracle用オラクルレプリカ


AWSは、OSやデータベースへのアクセスやカスタマイズを可能にするRDSのカスタマイズソリューションも提供しています。メンテナンス、バックアップ、スケーリング、高可用性は共有責任です。CDBの作成をサポートする一方で、リージョンをまたぐスタンバイをサポートしないなど、ディザスターリカバリーに関する制限も加わっています。



まとめ


ディザスタリカバリを議論する場合、データ損失をゼロにすることと、RPOとRTOを減らすための自動フェイルオーバーという2つの主要な事柄がある。AWS RDSのリードレプリカは、そのどちらも提供しません。


Data guard(RDS経由ではなく、お客様管理)は、Far Sync(ADGライセンスが必要)により、どんな距離でもデータ損失ゼロを保証し、Fast-Start Failover(FSFO)により、RPO=0、RTO=2分程度(適切に調整すればさらに短縮)の自動フェールオーバーを人の介在なく提供します。さらに、Application ContinuityとGlobal Data Servicesは、エンドユーザーに対して透過的なアプリケーションフェイルオーバーを保証します。


高可用性を導入する際には、計画的なメンテナンスも忘れてはいけません。AWS RDSのRead Replicasは、パッチやアップグレードの際にダウンタイムが追加されます。Oracle Data GuardのローリングアップグレードとStandby-Firstパッチ適用により、データベースのダウンタイムをほぼゼロにすることができます。




参考文献

コメント

このブログの人気の投稿

Oracle RACによるメンテナンスのためのドレインとアプリケーション・コンティニュイティの仕組み (2023/11/01)

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

Oracle Cloudのデータベースをオブジェクト・ストレージにバックアップする3つの方法 (2021/12/13)