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

  1. sysユーザー名とパスワードを指定して、スタンバイ・データベース・インスタンスのDGMGRLセッションにログインします。
    DGMRGL> connect
    Username: sys
    Password:
    次のように出力されます。
    Connected to "ORCLCDB_iad1s3"
    Connected as SYSDBA.
  2. フィジカル・スタンバイ・データベースをスナップショット・スタンバイ・データベースに変換します。
    DGMGRL> convert database standby_database_unique_name (standbyDB) to snapshot standby;
    変換が完了すると、出力には次のような行が含まれます。
    Converting database "standby_database_unique_name" to a Snapshot Standby database, please wait...
    Database "standby_database_unique_name" converted successfully
  3. 構成を表示して、変換を確認します。
    DGMGRL> show configuration;
    次のように出力されます。
    Configuration - onpremdr
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
        orclcdb        - Physical standby database 
    Fast-Start Failover:  Disabled
    Configuration Status:
    SUCCESS   (status updated 26 seconds ago)
  4. スナップショット・スタンバイを変換してフィジカル・スタンバイ・データベースに戻します。
    DGMGRL> convert database standby_database_unique_name to physical standby;
    次のように出力されます。
    Converting database "orclcdb" to a Physical Standby database, please wait...
    Operation requires a connection to database "orclcdb_iad1s3"
    Connecting ...
    Connected to "ORCLCDB_IAD1S3"
    Connected as SYSDBA.
    Operation requires shut down of instance "ORCLCDB" on database "orclcdb"
    Shutting down instance "ORCLCDB"...
    Connected to "ORCLCDB"
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    Operation requires start up of instance "ORCLCDB" on database "orclcdb"
    Starting instance "ORCLCDB"...
    Connected to an idle instance.
    ORACLE instance started.
    Connected to "ORCLCDB"
    Database mounted.
    Connected to "ORCLCDB"
    Continuing to convert database "orclcdb" ...
    Database "orclcdb" converted successfully
  5. 構成を表示して、変換を確認します。
    DGMGRL> show configuration;
    次のように出力されます。
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
        orclcdb        - Physical standby database 
          Warning: ORA-16854: apply lag could not be determined
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    WARNING   (status updated 11 seconds ago)

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. オンプレミス・インスタンスで、Oracleユーザーと同じプライマリ・データベース名でリカバリ・ディレクトリを作成します。
    この例では、ORCLCDBはオンプレミス・データベースの名前です。
    [oracle@bastion dbhome_1]$ cd /opt/oracle/
    [oracle@bastion oracle]$ mkdir recovery
    [oracle@bastion oracle]$ cd recovery/
    [oracle@bastion recovery]$ mkdir ORCLCDB
    [oracle@bastion oracle]$ cd ORCLCDB /
    フルパスを確認します。
    $ pwd
    /opt/oracle/recovery/ORCLCDB
  4. データベース・サイズに合せて、DB_RECOVERY_FILE_DEST_SIZEパラメータのサイズを設定します。
    次の例では、サンプル・データ・サイズとして20 Gを使用しています。データベースに基づいてデータ・サイズを設定します。
    SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE=20G;
    System altered
  5. 前に作成したディレクトリへのデータベース・リカバリ・ファイル宛先を定義します。
    SQL> alter system set db_recovery_file_dest = '/opt/oracle/recovery/on_premises_SID';
    System altered
  6. プライマリ・データベースでフラッシュバックを有効にします。
    SQL> alter database flashback on;
    Database altered
  7. データベース・フラッシュバックが有効になっていることを確認します(オン)。
    SQL> select flashback_on from v$database;
    次のように出力されます。
    FLASHBACK_ON
    ------------------
    YES
  8. クラウドのOCIスタンバイ・データベースでフラッシュバックが有効になっているかどうかを確認します。
    SQL> select flashback_on from v$database;
    次のように出力されます。
    FLASHBACK_ON
    ------------------
    NO
  9. クラウド内のスタンバイ・データベースのオープン・モード・ステータスを問い合せます。
    SQL> select open_mode from v$database;
    次のように出力されます。
    OPEN_MODE
    -------------------- 
    MOUNTED
  10. クラウドのデータベース・インスタンスにフラッシュバックを設定します。
    SQL> alter database recover managed standby database cancel;
    Database altered
  11. クラウド内のスタンバイ・データベースのオープン・モード・ステータスを問い合せます。
    SQL> select open_mode from v$database;
    次のように出力されます。
    OPEN_MODE
    -------------------- 
    MOUNTED
  12. スタンバイ・データベースのフラッシュバックを有効にします。
    SQL> alter database flashback on;
    Database altered
  13. セッションからスタンバイを切断します。
    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
    Database altered
  14. データベース・フラッシュバックが有効になっていることを確認します(オン)。
    SQL> select flashback_on from v$database;
    FLASHBACK_ON
    ------------------
    YES
  15. 保存パラメータを表示します。
    SQL> show parameter_retention;
    次のように出力されます。
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_flashback_retention_target	     integer	 1440
    undo_retention			      integer	 900

プライマリ・データベースのオンプレミスからOCIへの切替え

メンテナンスなどの計画アクティビティがある場合は、Oracle Cloud Infrastructure (OCI)のデータベースをデータ損失なしでプライマリ・データベースにできます。スイッチオーバーは、オンプレミス・データベースで開始され、クラウドのデータベース・インスタンスで完了する計画イベントです。

  1. sysユーザー名とパスワードを使用して、オンプレミス・データベースのDGMGRLセッションにログインします。
    DGMRGL> connect
  2. オンプレミス・データベースで、スタンバイ・データベースのスイッチオーバーおよびフェイルオーバーの準備ができていることを確認します。
    この例では、プライマリ・データベースがorclcdbで、スタンバイ・データベースがorclcdb_iadls3です。
    DGMGRL> validate database orclcdb_iad1s3 (StandbyDatabaseOCIInstance)
    次のように出力されます。
    Database Role:     Physical standby database
      Primary Database:  orclcdb
    
      Ready for Switchover:  Yes
      Ready for Failover:    Yes (Primary Running)
    
      Managed by Clusterware:
        orclcdb       :  NO             
        orclcdb_iad1s3:  NO             
        Validating static connect identifier for the primary database orclcdb...
        The static connect identifier allows for a connection to database "orclcdb".
    
      Log Files Cleared:
        orclcdb Standby Redo Log Files:         Cleared
        orclcdb_iad1s3 Online Redo Log Files:   Not Cleared
        orclcdb_iad1s3 Standby Redo Log Files:  Available
    
      Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb)               (orclcdb_iad1s3)                     
        1         3                       2                       Insufficient SRLs
    
      Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb_iad1s3)        (orclcdb)                            
        1         3                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 1 on orclcdb
  3. オンプレミス(プライマリ)データベースで、コマンドを実行してスタンバイ・データベースにスイッチオーバーします。
    DGMGRL> switchover to orclcdb_iad1s3 (StandbyDatabaseOCIInstance)
    次のように出力されます。
    Performing switchover NOW, please wait...
    New primary database "orclcdb_iad1s3" is opening...
    Operation requires start up of instance "ORCLCDB" on database "orclcdb"
    Starting instance "ORCLCDB"...
    Connected to an idle instance.
    ORACLE instance started.
    Connected to "ORCLCDB"
    Database mounted.
    Database opened.
    Connected to "ORCLCDB"
    Switchover succeeded, new primary is "orclcdb_iad1s3"
  4. オンプレミス・データベースで、構成ステータスを表示します。
    DGMGRL> show configuration
    次のように出力されます。
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
      orclcdb        - Physical standby database 
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 70 seconds ago)
  5. クラウドのデータベースで、オープン・モードのステータスを確認します。
    SQL> select open_mode from v$database;
    次のように出力されます。
    OPEN_MODE
    -------------------- 
    READ WRITE
  6. オンプレミス・データベースで、オープン・モードのステータスを確認します。
    SQL> select open_mode from v$database;
    次のように出力されます。
    OPEN_MODE
    -------------------- 
    READ ONLY WITH APPLY
クラウドのスタンバイ・データベースがプライマリ・データベースになりました。

プライマリ・データベースのOCIからオンプレミスへの切替え

Oracle Cloud Infrastructure (OCI)のデータベース・インスタンスをプライマリ・データベースにした後、OCIデータベース・インスタンスでOracle Data Guardコマンドライン・インタフェース(DGMGRL)を使用してスイッチバックし、オンプレミス・データベースを再度プライマリ・データベースにします。

  1. クラウド内のプライマリ・データベースのデータベース・ロールを検証します。
    この例では、ORCLCDBはオンプレミス・データベースの名前で、orclcdb_iad1s3はクラウド内のデータベース・インスタンスの名前です。
    DGMGRL> validate database orclcdb;
    出力は次のようになる場合があります。
    Database Role: Physical standby database
      Primary Database: orclcdb_iad1s3
    
      Ready for Switchover:  Yes
      Ready for Failover:    Yes (Primary Running)
    
      Managed by Clusterware:
        orclcdb_iad1s3:  NO             
        orclcdb       :  NO             
        Validating static connect identifier for the primary database orclcdb_iad1s3...
    Unable to connect to database using (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.0.2.1)(PORT=1539)))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB_iad1s3_DGMGRL.sub08120021431.onpremocidrvcn.example.com)(INSTANCE_NAME=ORCLCDB)(SERVER=DEDICATED)(STATIC_SERVICE=TRUE)))
    ORA-12541: TNS:no listener
    
    Failed.
        Warning: Ensure primary database's StaticConnectIdentifier property
        is configured properly so that the primary database can be restarted
        by DGMGRL after switchover
    
      Log Files Cleared:
        orclcdb_iad1s3 Standby Redo Log Files:  Cleared
        orclcdb Online Redo Log Files:          Not Cleared
        orclcdb Standby Redo Log Files:         Available
    
      Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb_iad1s3)        (orclcdb)                            
        1         3                       2                       Insufficient SRLs
    
      Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb)               (orclcdb_iad1s3)                     
        1         3                       2                       Insufficient SRLs

    静的接続識別子の警告メッセージが表示された場合は、構成パラメータ、SIDサービス名、ホストIPアドレスまたはポート・アドレスを確認します。

  2. DGMGRLセッションに、sysユーザー名とパスワードを指定してログインします。
    DGMRGL> connect
  3. オンプレミス・データベースの静的接続識別子を確認します。
    DGMGRL> show database orclcdb StaticConnectIdentifier
    出力を調べて、StaticConnectIdentifierパラメータが正しいことを確認します。次に例を示します。
    DGMGRL> show database orclcdb StaticConnectIdentifier
      StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.0.2.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB)(INSTANCE_NAME=ORCLCDB)(SERVER=DEDICATED)(STATIC_SERVICE=TRUE)))'
  4. クラウド内のデータベース・インスタンスの静的接続識別子を確認します。
    DGMGRL> show database orclcdb_iad1s3 StaticConnectIdentifier
      StaticConnectIdentifier = 
    '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.10.30.3)(PORT=1539)
    ))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB_iad1s3_DGMGRL.sub08120021431.onpremocidrvcn.examplevcn.com) 
    INSTANCE_NAME=ORCLCDB)(SERVER=DEDICATED)))'
    出力を確認し、ポート番号やサービス名などのStaticConnectIdentifierパラメータが正しいことを確認します。
  5. ポート番号やサービス名などのStaticConnectIdentifierパラメータを修正します。
    プロパティを編集する場合は、改行なしOracle Data Guardコマンドライン・インタフェース(DGMGRL)を使用する必要があります。この例では、クラウド内のデータベース・インスタンスのポート番号およびサービス名を修正します(orclcdb_iad1s3)。
    DGMGRL> edit database 'orclcdb_iad1s3' set property StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.0.2.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB)(INSTANCE_NAME=ORCLCDB)(SERVER=DEDICATED)))';
    Property "staticconnectidentifier" updated
  6. クラウドでデータベース・インスタンスを検証します。
    DGMGRL> validate database orclcdb_iad1s3;
    次のように出力されます。
    Database Role:    Primary database
      Ready for Switchover:  Yes
    
      Managed by Clusterware:
        orclcdb_iad1s3:  NO             
        Validating static connect identifier for the primary database orclcdb_iad1s3...
        The static connect identifier allows for a connection to database "orclcdb_iad1s3".
  7. オンプレミス・データベースを検証します。
    DGMGRL> validate database orclcdb;
    次のように出力されます。
    Database Role:     Physical standby database
      Primary Database:  orclcdb_iad1s3
      Ready for Switchover:  Yes
      Ready for Failover:    Yes (Primary Running)
    
      Managed by Clusterware:
        orclcdb_iad1s3:  NO             
        orclcdb       :  NO             
        Validating static connect identifier for the primary database orclcdb_iad1s3...
        The static connect identifier allows for a connection to database "orclcdb_iad1s3".
    
      Standby Apply-Related Information:
        Apply State:      Running
        Apply Lag:        2 seconds (computed 7 seconds ago)
        Apply Delay:      0 minutes
    
      Log Files Cleared:
        orclcdb_iad1s3 Standby Redo Log Files:  Cleared
        orclcdb Online Redo Log Files:          Not Cleared
        orclcdb Standby Redo Log Files:         Available
    
      Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb_iad1s3)        (orclcdb)                            
        1         3                       2                       Insufficient SRLs
    
      Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb)               (orclcdb_iad1s3)                     
        1         3                       2                       Insufficient SRLs
  8. 構成を表示して確認します。
    DGMGRL> show configuration;
    次のように出力されます。
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
        orclcdb        - Physical standby database 
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 27 seconds ago)
  9. OCIのデータベース・インスタンスからオンプレミス・データベースにスイッチオーバーします。
    DGMGRL> switchover to orclcdb;
    次のように出力されます。
    Performing switchover NOW, please wait...
    Operation requires a connection to database "orclcdb"
    Connecting ...
    Connected to "ORCLCDB"
    Connected as SYSDBA.
    New primary database "orclcdb" is opening...
    Operation requires start up of instance "ORCLCDB" on database "orclcdb_iad1s3"
    Starting instance "ORCLCDB"...
    Connected to an idle instance.
    ORACLE instance started.
    Connected to "ORCLCDB_iad1s3"
    Database mounted.
    Database opened.
    Connected to "ORCLCDB_iad1s3"
    Switchover succeeded, new primary is "orclcdb"
    データベースのマウント後、次の警告が表示される場合があります。
    ORA-16000: database or pluggable database open for read-only access  
    
    Please complete the following steps to finish switchover:
           start up instance "ORCLCDB" of database "orclcdb" 

    警告は無視して次のステップに進みます。

  10. 現在のプライマリであるスタンバイで、構成を接続して確認します。
    DGMGRL> show configuration;
    次のように出力されます。
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb        - Primary database
        orclcdb_iad1s3 - Physical standby database 
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 86 seconds ago)
  11. プライマリ・データベース・インスタンスORCLCDBで、モードがread writeであることを確認します。
    SQL> select database_role, open_mode from v$database;
    DATABASE_ROLE	 OPEN_MODE
    ---------------- --------------------
    PRIMARY 	   READ WRITE
  12. (オプション) verboseコマンドを使用して、ロール、状態、インスタンス、プロパティ、アラート・ログの場所およびData Guard Brokerログを含む完全なスタック・ダンプを表示できます。
    DGMGRL> show database verbose orclcdb

プライマリ・データベースは、オンプレミス・データベースとOCIデータベース・インスタンス間で切り替えることができます。