計画外フェイルオーバー

フェイルオーバーは、プライマリ・データベースが失われたと想定する計画外イベントです。スタンバイ・データベースは、プライマリ・データベースから使用可能なすべてのredoデータが適用された直後にプライマリ・データベースに変換されます。

計画外フェイルオーバーからのリカバリ

フェイルオーバーは、プライマリ・データベースが失われたと想定する計画外イベントです。スタンバイ・データベースは、使用可能なすべてのプライマリredoログが適用された直後にプライマリ・データベースに変換されます。フラッシュバックおよびOracle Data Guard Brokerを使用して、元のプライマリ・データベースをフィジカル・スタンバイとして回復できます。

フェイルオーバー後、元のプライマリ・データベースをフィジカル・スタンバイとして回復する必要があります。フラッシュバック・データベースおよびOracle Data Guard Brokerを有効にすると、元のプライマリ・データベースの回復が容易になります。
この例のステップ3では、プライマリ・データベースを停止して計画外停止を緩和します。この例では、Oracle Data Guard Brokerを使用してプライマリ・データベースを回復します。
  • オンプレミス・データベース: db1
  • クラウド内のフィジカル・スタンバイ・データベース・インスタンス: db1_phx3g7
  1. プライマリのオンプレミスOracle Exadata Database Machineで、sysdbaとしてログインします。
  2. オンプレミス・データベースの構成を表示します。
    DGMGRL> show configuration;
    出力は次のようになります。
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
        db1        - Primary database
        db1_phx3g7 - Physical standby database 
          Warning: ORA-16809: multiple warnings detected for the member
    Fast-Start Failover:  Disabled
    Configuration Status:
    WARNING   (status updated 36 seconds ago)
  3. プライマリのオンプレミス・データベース・インスタンスに接続し、計画外停止を緩和するために停止を実行します。
    bash-4.2$ sqlplus / as sysdba
    SQL> shutdown abort;
    出力は次のようになります。
    ORACLE instance shut down.
  4. Oracle Database Exadata Cloud Serviceで、データベース・インスタンスの構成を表示します。
    DGMGRL> show configuration;
    出力は次のようになります。
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1        - Primary database
        Error: ORA-12514: TNS:listener does not currently know of service requested in 
    connect descriptor
        db1_phx3g7 - Physical standby database 
    Fast-Start Failover:  Disabled
    Configuration Status:
    ERROR   (status updated 0 seconds ago)
  5. Oracle Database Exadata Cloud Serviceインスタンスへのフェイルオーバーを開始します。
    DGMGRL> > failover to db1_phx3g7;
    出力は次のようになります。
    Performing failover NOW, please wait...
    Failover succeeded, new primary is "db1_phx3g7"
  6. Oracle Database Exadata Cloud Serviceのデータベース・インスタンスの構成を表示します。
    DGMGRL> show configuration;
    出力は次のようになります。
    Configuration - onpremexadr
    
      Protection Mode: MaxPerformance
      Members:
      db1_phx3g7 - Primary database
        Warning: ORA-16809: multiple warnings detected for the member
        db1        - Physical standby database (disabled)
          ORA-16661: the standby database needs to be reinstated
    Fast-Start Failover:  Disabled
    Configuration Status:
    WARNING   (status updated 28 seconds ago)
  7. オンプレミスOracle Exadata Database Machine (db1) (現在はスタンバイ)で、いずれかのノードでインスタンスを起動します。
    $srvctl start instance -db db1 -instance db11
  8. reinstate databaseコマンドを使用して、非アクティブ化されたプライマリ・データベースをスタンバイ・データベースにします。
    reinstateは、古い非アクティブ化されたプライマリをスタンバイ・データベースにして、新しいプライマリ(アクティブ化されたスタンバイ・データベース)からredoデータを受信できるようにします。
    DGMGRL> reinstate database db1;
    出力は次のようになります。
    Reinstating database
            "db1", please wait...Reinstatement of database "db1" succeeded
  9. オンプレミス・データベース・インスタンスの構成を表示します。
    DGMGRL> show configuration;
    出力は次のようになります。
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1_phx3g7 - Primary database
        db1        - Physical standby database 
    Fast-Start Failover:  Disabled
    Configuration Status:
    SUCCESS   (status updated 14 seconds ago)
  10. 必要に応じてオンプレミスOracle Exadata Database Machineに切り替えます。