ディザスタ・リカバリのためのスタンバイ・データベースの構成について学習

Oracle Data Guardは、Oracle Databaseに存在する企業データの高可用性、データ保護および障害時リカバリを保証します。Oracle Data Guardは、1つ以上のスタンバイ・データベースの作成、メンテナンス、管理、およびモニターの包括的なサービス・セットを提供し、本番のOracleデータベースを障害およびデータ破損から保護します。

Oracle Data Guardでは、これらのスタンバイ・データベースを本番データベースのコピーとしてメンテナンスします。Oracle Data Guardは、計画的な障害または計画外の障害により本番データベースを使用できなくなると、いずれかのスタンバイ・データベースを本番ロールに切り替えて、障害に関連する停止時間を最小化できます。

アーキテクチャ

このアーキテクチャは、REDOデータをスタンバイ・データベースに転送するプライマリ・データベースを持つOracle Data Guard構成を示しています。スタンバイ・データベースは、ディザスタ・リカバリおよびバックアップ操作のためにプライマリ・データベースからリモートに配置されます。

dataguard- dr- db.pngの説明が続きます
図dataguard- dr- db.pngの説明

dataguard- dr_db- oracle.zip

Oracle Data Guardでは、REDO転送サービスおよび適用サービスを使用してREDOデータの転送、REDOデータの適用、およびデータベース・ロールの変更が管理されます。

このアーキテクチャでは、次のOracle Data Guardコンポーネントがサポートされます。

  • REDO転送サービス

    REDO転送サービスは、本番データベースから1つ以上のアーカイブ先に対するREDOデータの自動転送を制御します。

    REDO転送サービスでは、次のタスクを実行します。

    • REDOデータを構成内のプライマリ・システムに転送します。
    • ネットワーク障害により発生したアーカイブREDOログ・ファイル内のギャップを解決するプロセスを管理します。
    • スタンバイ・システムの欠落または破損しているアーカイブREDOログ・ファイルを自動的に検出し、プライマリ・データベースまたは別のスタンバイ・データベースからかわりのアーカイブREDOログ・ファイルを自動的に取得します。
  • 適用サービス

    適用サービスは、スタンバイ・データベースにREDOデータを自動的に適用し、プライマリ・データベースとの一貫性を維持します。

    REDOデータは、プライマリ・データベースから送信され、スタンバイ・データベースのスタンバイREDOログに書き込まれます。{\f3 REDO}データは、リアルタイム適用を使用して入力されるため、スタンバイ{\f3 REDO}ログ・ファイルから直接適用される。適用サービスでは、そのデータへの読取り専用アクセスも可能です。

  • ロール移行
    Oracle Data Guardを使用すると、スイッチオーバー操作またはフェイルオーバー操作を使用して、データベースのロールをスタンバイ・データベースからプライマリ・データベースに、またはプライマリ・データベースからスタンバイ・データベースに変更できます。Oracle Data Guardは、ロールの遷移を簡素化し、フェイルオーバーを自動化します。
    • スイッチオーバーとは、プライマリ・データベースといずれかのスタンバイ・データベースとの間のロール・リバーサルです。スイッチオーバーでは、データ損失がないことが保証されます。通常は、プライマリ・システムの計画的メンテナンスのために実行されます。スイッチオーバー中、プライマリ・データベースはスタンバイ・ロールに移行し、スタンバイ・データベースはプライマリ・ロールに移行します。
    • フェイルオーバーは、プライマリ・データベースが使用できなくなった場合に行われます。フェイルオーバーは、プライマリ・データベースで障害が発生した場合にのみ実行され、スタンバイ・データベースをプライマリ・ロールに遷移させます。データベース管理者は、データ損失がないようにOracle Data Guardを構成できます。

Oracle Data Guardの構成には、次を含むがこれに限定されないいくつかの手動ステップが含まれます。

  • 推奨パラメータを使用したプライマリ・データベースの準備
  • プライマリ環境およびスタンバイ環境でのTNS別名の準備
  • プライマリ・データベースの複製としての物理スタンバイ・データベースの作成
  • Data Guardの構成

これらの手動ステップは、複数のOracleドキュメントで広く文書化されています。このプレイブックには一連のスクリプトが用意されていますこれらのアクションのほとんどを自動化できます。これらのスクリプトは、既存のプライマリ・データベースのスタンバイ・データベースを設定することで、Oracle Data Guardを構成するのに役立ちます。このスクリプトは、restore from service Oracle Recovery Manager (RMAN)機能とOracle Data Guard Brokerを使用します。

開始する前に

このドキュメントに記載されているスクリプトを使用してOracle Data Guardを構成する前に、次の前提条件および要件を確認してください。

  • プライマリ・データベースはすでに存在します。

  • スタンバイ・ノードは、既存のデータベースの有無にかかわらずすでに存在します。

    ノート:

    スタンバイの場所にデータベースがすでに存在する場合、スクリプトはスタンバイを再作成する前にデータベースを削除します。
  • データベースのリスナー・ポートを使用したプライマリとスタンバイ間の相互接続があります。

    • 単一インスタンス・データベースの場合、プライマリ・データベース・ホストとスタンバイ・データベース・リスナーのIPとポートの間に双方向接続が存在する必要があります。
    • Oracle Real Application Clusters (Oracle RAC)データベースの場合、プライマリDBホストとスタンバイ・データベースのスキャンIPとVIP IPとポートの間に双方向接続が存在する必要があります。

    スクリプトは接続性チェックを実行しますが、コマンドnc -vw 5 -z IP PORTを使用してリモート接続を確認できます。

  • Oracle Automatic Storage Management (Oracle ASM)は、データファイル、制御ファイル、オンラインREDOログおよびアーカイブREDOログに使用されます。

    • 単一インスタンス・データベースの場合、パスワード・ファイルとspfileは通常のファイル・システムまたはOracle ASMに配置できます。
    • Oracle RACデータベースの場合、パスワード・ファイルとspfileOracle ASMにある必要があります。
  • プライマリ・データベースとスタンバイ・データベースはOracle Clusterwareによって管理されます(単一およびOracle RACの両方のトポロジでsrvctlが使用されるため、Oracle Grid Infrastructureがインストールされている必要があります)。
  • Oracle Managed Filesが使用されるため、データベース・パラメータdb_create_file_destdb_create_online_log_dest_1およびdb_recovery_file_destは、適切なOracle ASMディスク・グループの場所(+DATA+RECOなど)でプライマリ・データベースにすでに定義されている必要があります。
  • リレーショナル・データベース管理システム(RDBMS)のソフトウェア所有者(たとえば、oracleユーザー)は、必要なOracle環境変数(ORACLE_HOMELD_LIBRARY_PATHPATHORACLE_UNQNAMEおよびORACLE_SID)をプロファイルに設定します。
  • 対称トポロジが使用されていることを前提としています(つまり、プライマリが単一のDBの場合、スタンバイは単一のDBです。プライマリがOracle RACデータベースの場合、スタンバイはOracle RACデータベースでもあります)。
  • データベースがOracle RACの場合、各Oracle RACには2つのノードがあるとみなされます。
  • このスクリプトは、まだスタンバイ・データベースがないプライマリ・データベースのスタンバイ・データベースの構成に有効です。
  • スクリプトは、既存のOracle Data Guardに新しいスタンバイ・データベースを追加する場合にも有効です。このシナリオでは、プロパティ・ファイルでプロパティADDITIONAL_STANDBY=YESを使用する必要があります。この場合、新しいスタンバイが既存のData Guard Broker構成に追加されます。

スクリプト機能について

スクリプトの機能は次のとおりです。

  • スクリプトはべき等であり、エラーが発生した場合に再実行できます。
  • オペレーティング・システムのユーザー名(oraclegridなど)およびフォルダ(Database homeおよびGrid home)は構成可能です。
  • OracleおよびGrid OSユーザーは、同じユーザーまたは異なるユーザーになることができます。
  • データベース・ファイルのTransparent Data Encryption (TDE)はオプションです。スクリプトは両方の場合(TDEおよびTDEなし)に有効です。

    ノート:

    対称構成が実行されます。プライマリ・データベースがTDEを使用する場合、スタンバイ・データベースはTDEを使用して構成されます。プライマリ・データベースがTDEを使用しない場合、スタンバイ・データベースはTDEを使用しません。
  • 読取り専用Oracle Home (ROOH)がサポートされています。スクリプトは、ROOHと従来のOracleホームとの環境で自動的に動作するように準備されます。
  • スクリプトは、Oracle RACと単一インスタンス環境(対称トポロジ内)の両方で有効です。
  • スクリプトは、12c (12.2)、18c、19cおよび21c RDBMSバージョンで検証されます。
  • スクリプトは、Oracle Cloud Infrastructure (DBシステム)およびオンプレミス環境で検証されます。
  • スクリプトがハイブリッドOracle Data Guardを構成するために検証されました。ここで、プライマリ・データベースはオンプレミスで、スタンバイはOracle Cloud InfrastructureのDB Systemです。

スクリプト・ファイルについて

この解答で使用するスクリプト・ファイルの説明を次に示します。

  • 1_prepare_primary_maa_parameters.sh

    プライマリ・データベースに接続し、Oracle Data Guardの推奨されるOracle Maximum Availability Architecture (MAA)パラメータを使用して構成します。スタンバイREDOログ・ファイルが作成され、DB_BLOCK_CHECKSUMDB_FLASHBACK_RETENTION_TARGETなどの値が設定されます。このスクリプトは、プライマリ・データベースがOracle Real Application Clusters (Oracle RAC)か単一のインスタンス・データベースのどちらであるかに関係なく、1回のみ実行されます。

  • 2_dataguardit_primary.sh

    Oracle Data Guardのプライマリ・ホストを準備します。必要なTNS別名がtnsnames.oraファイルに追加され、リモート・スタンバイとの接続性がチェックされ、まだ設定されていない場合はネット暗号化が構成され、プライマリ・パスワード・ファイルとTransparent Data Encryption (TDE)ウォレット(使用されている場合)を含む出力tarファイルが生成されます。

  • create_pw_tar_from_asm_root.sh

    このスクリプトは必ずしも必須ではありません。プライマリ・パスワード・ファイルがOracle Automatic Storage Management (Oracle ASM)に格納されている場合のみ必要です。パスワード・ファイルを使用して出力tarファイルを作成します。

  • 3_dataguardit_standby_root.sh

    新しいスタンバイ・ホストを準備し、restore from service Oracle Recovery Manager (RMAN)機能とOracle Data Guardブローカを使用してスタンバイ・データベースを作成します。これらのホストに既存のデータベースがある場合(作業中のデータベースまたは前のスクリプト実行の失敗の結果)、スクリプトは、新しいデータベースをスタンバイとして再作成する前に削除します。

  • DG_properties.ini

    これは、環境の特定の値でカスタマイズする必要があるプロパティ・ファイルです。プライマリとスタンバイの両方で、すべてのスクリプトで使用されます。

必須製品およびロールについて

このソリューションでは、プライマリおよびスタンバイ・データベース・システムに対して次のロールが必要です。

製品名: ロール 必要な対象...
Oracle Database: sys すべてのスクリプトの実行
Oracle Databaseホスト(プライマリ): 実行権限を持つoracle OSユーザー 次のスクリプトを実行します。
  • 1_prepare_primary_maa_parameters.sh
  • 2_dataguardit_primary.sh
Oracle Databaseホスト(プライマリ): root プライマリ・パスワード・ファイルがASMに格納されている場合、次のスクリプトを実行します: create_pw_tar_from_asm_root.sh
Oracle Databaseホスト(セカンダリ): root 次のスクリプトを実行します。
  • 3_dataguardit_standby_root.sh

必要なものを取得するには、Oracle製品、ソリューションおよびサービスを参照してください。