計画済スイッチオーバー

Oracleデータベースは、プライマリ・ロールまたはスタンバイ・ロールのいずれかで実行されます。Data Guardでは、スイッチオーバーまたはフェイルオーバーのいずれかを使用してデータベースのロールを変更できます。

  • スイッチオーバーとは、プライマリ・データベースといずれかのスタンバイ・データベースとの間のロール・リバーサルです。スイッチオーバーは、データ損失がないことを保証し、通常はプライマリ・システムの計画メンテナンスのために実行されます。スイッチオーバー中、プライマリ・データベースはスタンバイ・ロールに移行し、スタンバイ・データベースはプライマリ・ロールに移行します。
  • フェイルオーバーは、プライマリ・データベース(Oracle RACプライマリ・データベースのすべてのインスタンス)に障害が発生するか、アクセスできなくなり、いずれかのスタンバイ・データベースがプライマリ・ロールを引き継ぐように遷移したときに実行されます。フェイルオーバーでは、フェイルオーバー時に有効な保護モードに応じて、データが失われる場合とされない場合があります。

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

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

  1. sysユーザー名とパスワードを使用して、オンプレミス・データベースのDGMGRLセッションにログインします。
    DGMRGL> connect
  2. オンプレミス・データベースで、スタンバイ・データベースのスイッチオーバーおよびフェイルオーバーの準備ができていることを確認します。
    この例では、プライマリ・データベースはdb1、スタンバイ・データベースは(StandbyDatabaseOCIInstance)はDB1_phx3g7です。
    DGMGRL> validate database DB1_phx3g7
    出力は次のようになります。
    Database Role:     Physical standby database
      Primary Database:  db1
    
      Ready for Switchover:  Yes
      Ready for Failover:    Yes (Primary Running)
    
      Managed by Clusterware:
        db1       :  YES             
        db1_phx3g7:  YES   
              
    Standby Apply-Related Information:
        Apply State:      Running
        Apply Lag:        17 minutes 6 seconds (computed 42 seconds ago)
        Apply Delay:      0 minutes
      Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (db1)                   (db1_phx3g7)                         
        1         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 1 on db1_phx3g7
        2         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 2 on db1_phx3g7
      Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (db1_phx3g7)            (db1)                                
        1         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 1 on db1
        2         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 2 on db1
  3. プライマリ・データベースを検証します。
    DGMGRL> validate database 'DB1';
    出力は次のようになります。
    Database Role:    Primary database
      Ready for Switchover:  Yes
      Managed by Clusterware:
        db1:  YES    
  4. スタンバイ・データベースを検証します。
    DGMGRL> validate database 'DB1_phx3g7';
    出力は次のようになります。
    
    Database Role:     Physical standby database  
    Primary Database:  db1  
    Ready for Switchover:  Yes  
    Ready for Failover:    Yes (Primary Running)  
    Managed by Clusterware:
        db1       :  YES                
        db1_phx3g7:  YES              
    Standby Apply-Related Information:
        Apply State:      Running
        Apply Lag:        32 minutes 12 seconds (computed 40 seconds ago)
        Apply Delay:      0 minutes  
    Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status
                  (db1)                   (db1_phx3g7)
         1         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 1 on db1_phx3g7
        2         2                       0                       Insufficient SRLs     
        Warning: standby redo logs not configured for thread 2 on db1_phx3g7
    
    Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (db1_phx3g7)            (db1)                                
        1         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 1 on db1
        2         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 2 on db1
  5. オンプレミス(プライマリ)データベースで、コマンドを実行してスタンバイ・データベースにスイッチオーバーします。
    DGMGRL> switchover to db1_phx3g7;
    出力は次のようになります。
    Performing switchover NOW, please wait...
    Operation requires a connection to database "db1_phx3g7"
    Connecting ...
    Connected to "DB1_phx3g7"
    Connected as SYSDBA.
    New primary database "db1_phx3g7" is opening...
    Oracle Clusterware is restarting database "db1" ...
    Connected to "db1"
    Connected to "db1"
    Switchover succeeded, new primary is "db1_phx3g7"
  6. オンプレミス・データベースで、構成ステータスを表示します。
    DGMGRL> show configuration
    出力は次のようになります。
    Configuration - onpremexadr
    
      Protection Mode: MaxPerformance
      Members:
      db1_phx3g7 - Primary database
          db1        - Physical standby database 
    
    Warning: ORA-16809: multiple warnings detected for the memberFast-Start
            Failover:  Disabled
    Configuration Status:
    WARNING   (status updated 35 seconds ago)
  7. プライマリのオンプレミスOracle Exadata Database Machineで、オープン・モードを選択します。
    SQL> select open_mode from v$database;
    出力は次のようになります。
    OPEN_MODE
    -------------------- 
    MOUNTED
  8. クラウド内のOracle Database Exadata Cloud Serviceデータベースで、データベースがREAD WRITEであることを確認します。
    SQL> select open_mode from v$database;
    出力は次のようになります。
    OPEN_MODE
    -------------------- 
    READ WRITE
クラウド内のOracle Database Exadata Cloud Service上のデータベースはプライマリ・データベースです。

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

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

  1. OCIのデータベース・インスタンスからオンプレミス・データベースにスイッチオーバーします。
    DGMGRL> switchover to db1;
    出力は次のようになります。
    Performing switchover NOW, please wait...
    Operation requires a connection to database "db1"
    New primary database "db1" is opening...
    Oracle Clusterware is restarting database "db1_phx3g7" ...
    Connected to "DB1_phx3g7"
    Connected to "DB1_phx3g7"
    Switchover succeeded, new primary is "db1"
  2. オンプレミスOracle Exadata Database Machineで、接続して構成を確認します。
    DGMGRL> show configuration;
    出力は次のようになります:
    Configuration - onpremexadr
    
      Protection Mode: MaxPerformance
      Members:
      db1        - Primary database
      Warning: ORA-16809: multiple warnings detected for the member
        db1_phx3g7 - Physical standby database 
          Error: ORA-12650: No common encryption or data integrity algorithm
    Fast-Start Failover:  Disabled
    Configuration Status:
    ERROR   (status updated 899 seconds ago)
  3. クラウドのOracle Database Exadata Cloud Serviceデータベースで、テスト障害時リカバリ表を作成します。
    SQL> create table testdr (a number , b number);
    Table created.
    SQL> desc testdr;
     Name                                        Null?    Type
     ----------------------------------------- -------- ----------------------------
     A                                          NUMBER
     B                                          NUMBER
  4. SQLの終了。
    SQL> exit
  5. プライマリのオンプレミスOracle Exadata Database Machineで、sysdbaとしてログインし、testdr表を表示します。
    $ sqlplus / as sysdba
    SQL> desc testdr;
    
     Name                                        Null?    Type
     ----------------------------------------- -------- ----------------------------
     A                                          NUMBER
     B                                          NUMBER
  6. プライマリのオンプレミスOracle Exadata Database Machineで、構成を表示および確認します。
    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)

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