DR準備状況の検証

障害時リカバリの準備状況に関するベスト・プラクティスを確認し、計画済イベントおよび計画外イベントの障害時リカバリ設定を検証します。

DR準備について

ディザスタリカバリ(DR)の準備状況に関するベストプラクティスを確認します。

Active Data Guardを使用して、読取り専用ワークロードをスタンバイ・データベースにオフロードし、スタンバイが本番用に準備できていることを継続的にアプリケーション・レベルで検証します。これにより、Oracle Data Guard適用プロセスによって実行されるOracleブロック・レベルの連続検証に加えて、一定レベルの保証が提供されます。

スナップショット・スタンバイ・データベースを使用して、開発およびテスト目的で本番データベースの正確なレプリカを作成します。スタンバイを定期的に読取り/書込みモードにして(Data Guardスナップショット・スタンバイを使用)、読取り/書込み本番ワークロードをサポートするための準備状況を検証します。DRシステム・サイズは本番システムと同様であるため、スナップショット・スタンバイは、パッチおよびアップグレードの最終レベルの機能テストおよびパフォーマンス・テストにも使用できます。スナップショット・スタンバイは、後で使用するためにアーカイブされたプライマリ・データベースから引き続きredoを受け取り、常にデータ保護を提供します。ただし、テストの進行中にフェイルオーバーが必要な場合、リカバリ時間(RTO)はスナップショット・スタンバイをスタンバイ・データベースに戻すために必要な時間だけ延長されます。スタンバイがスナップショット・モードの場合(後で使用するためにプライマリ本番データベースから受信したアーカイブREDOを保持し、スナップショット・スタンバイによって生成された現行のREDOログおよびフラッシュバック・ログを保持する場合)は、高速リカバリ領域に追加の記憶域が必要です。

スナップショット・スタンバイ・データベースを使用する利点の一部を次に示します。

  • 常にデータ保護を維持しながら、開発およびテスト用に本番データベースの正確なレプリカを提供します。Oracle Real Application Testingオプションを使用して、プライマリ・データベースのワークロードを取得し、スナップショット・スタンバイでテスト目的でリプレイできます。
  • フィジカル・スタンバイに変換して再同期化することで、現在の本番データを含むように簡単にリフレッシュできます。

スタンバイ・データベースのスナップショット・スタンバイへの変換

本番データベースの正確なレプリカが必要な場合は、Oracle Data Guard Brokerを使用してフィジカル・スタンバイ・データベースをスナップショット・スタンバイ・データベースに変換し、フェイルオーバーを検証できます。

スナップショット・スタンバイは、フィジカル・スタンバイ・データベースから作成される完全に更新可能なスタンバイ・データベースです。スナップショット・スタンバイ・データベースでは、redoデータは受信されますが、スナップショット・スタンバイ・データベースがフィジカル・スタンバイ・データベースに変換されるまで適用されません。

スナップショット・スタンバイ・データベースを使用すると、次のような利点があります。

  • スナップショット・スタンバイは、常にデータ保護を維持しながら、開発およびテストのために本番データベースの正確なレプリカを提供します。Oracle Real Application Testingオプションを使用して、プライマリ・データベースのワークロードを取得し、スナップショット・スタンバイでテスト目的でリプレイできます。
  • フィジカル・スタンバイに変換して再同期化することで、スナップショット・スタンバイを簡単にリフレッシュして現在の本番データを含めることができます。

Oracle Data Guardコマンドライン・インタフェース(DGMGRL)を使用すると、Oracle Data Guard Broker構成およびその様々なメンバーをコマンドライン・インタフェースから直接管理できます。

  1. sysユーザー名とパスワードを使用して、スタンバイ・データベース・インスタンスのDGMGRLセッションにログインします。
    [oracle@exa11db01 ~]$ dgmgrl
    DGMRGL> connect
    Username: sys
    Password:
  2. 構成を表示して、プライマリ・データベースとスタンバイ・データベースを確認します。
    DGMGRL> show configuration;
    出力は次のようになります。
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1_phx3g7 - Primary database
        db1        - Physical standby database 
          Error: ORA-16664: unable to receive the result from a member
    Fast-Start Failover:  Disabled
    Configuration Status:
    ERROR   (status updated 108 seconds ago)
  3. フィジカル・スタンバイ・データベースをスナップショット・スタンバイ・データベースに変換します。
    この例では、standby_database_unique_nameはdb1です。
    DGMGRL> convert database standby_database_unique_name to snapshot standby;
    変換が完了すると、出力に次のような行が表示されます。
    Converting database "db1" to a Snapshot Standby database, please wait...
    Database "db1" converted successfully
  4. 構成を表示して変換を確認します。
    DGMGRL> show configuration;
    出力は次のようになります。
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1_phx3g7 - Primary database
        db1        - Snapshot standby database 
          Error: ORA-16664: unable to receive the result from a member
    Fast-Start Failover:  Disabled
    Configuration Status:
    ERROR   (status updated 59 seconds ago)
  5. スナップショット・スタンバイをフィジカル・スタンバイ・データベースに戻します。
    DGMGRL> convert database standby_database_unique_name to physical standby;
    出力は次のようになります。
    Converting database "db1" to a Physical Standby database, please wait...
    Operation requires a connection to database "db1_phx3g7"
    Connecting ...
    Connected to "DB1_phx3g7"
    Connected as SYSDBA.
    Oracle Clusterware is restarting database "db1" ...
    Connected to "db1"
    Connected to "db1"
    Continuing to convert database "db1" ...
    Database "db1" converted successfully
  6. 構成を表示して変換を確認します。
    DGMGRL> show configuration;
    出力は次のようになります:
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1_phx3g7 - Primary database
        db1        - Physical standby database 
          Error: ORA-16664: unable to receive the result from a member
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    ERROR   (status updated 20 seconds ago)
    DGMGRL>

Oracle Data Guardパラメータの設定

スイッチオーバーを実行する前に、プライマリおよびスタンバイ・データベース・インスタンスでOracle Data Guardパラメータを設定します。

  1. オンプレミス・プライマリ・データベースで、システム変更番号(SCN)を確認します。
    select standby_became_primary_scn from v$database;
    出力は次のようになります:
    STANDBY_BECAME_PRIMARY_SCN
    --------------------------
    0
  2. フラッシュバックがプライマリ・データベースで有効になっていないことを確認します。
    select flashback_on from v$database;
    出力は次のようになります:
    FLASHBACK_ON
    ------------------
    NO
  3. パラメータrecoveryを表示します。
    SQL> show parameter recovery;
    出力は次のようになります:
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_recovery_file_dest	     string	      +RECOC1
    db_recovery_file_dest_size	big integer	  8256M
    recovery_parallelism             integer             0
    remote_recovery_file_dest        string
  4. データベース・サイズに合せてDB_RECOVERY_FILE_DEST_SIZEパラメータのサイズを設定します。
    次の例では、20 Gをサンプル・データ・サイズとして使用します。データベースに基づいてデータ・サイズを設定します。
    SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE=20G;
  5. プライマリ・データベースでフラッシュバックを有効にします。
    SQL> alter database flashback on;
  6. データベースのフラッシュバックが有効になっていることを確認します(オン)。
    SQL> select flashback_on from v$database;
    出力は次のようになります。
    FLASHBACK_ON
    ------------------
    YES
  7. スタンバイOracle Database Exadata Cloud Serviceで、フラッシュバックが有効かどうかを確認します。
    SQL> select flashback_on from v$database;
    出力は次のようになります。
    FLASHBACK_ON
    ------------------
    NO
  8. クラウド内のスタンバイ・データベースのオープン・モード・ステータスを問い合せます。
    SQL> select open_mode from v$database;
    出力は次のようになります。
    OPEN_MODE
    -------------------- 
    MOUNTED
  9. スタンバイ・データベースのデータベース・リカバリを取り消します。
    SQL> alter database recover managed standby database cancel;
  10. クラウドのデータベース・インスタンスにフラッシュバックを設定します。
    SQL> alter database flashback on;
  11. セッションからスタンバイを切断します。
    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
    Database altered
  12. データベースのフラッシュバックが有効になっていることを確認します(オン)。
    SQL> select flashback_on from v$database;
    FLASHBACK_ON
    ------------------
    YES
  13. 保存パラメータを表示します。
    SQL> show parameter_retention;
    出力は次のようになります。
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_flashback_retention_target	     integer	 1440
    undo_retention			      integer	 900