未计划的故障转移

故障转移是假定主数据库丢失的计划外事件。应用主数据库中的所有可用 redo 数据后,将立即将备用数据库转换为主数据库。

从计划外故障转移中恢复

故障转移是未计划的事件或停机,可能包括数据丢失。在故障转移之后,必须将原始主数据库恢复为物理备用数据库。如果有闪回数据库和 Oracle Data Guard 中介,则更容易恢复原始主数据库。

在此示例中,ORCLCDB 是内部部署数据库的名称,orclcdb_iad1s3 是云中的数据库实例的名称。本示例中的步骤 3 将关闭主内部部署数据库以模拟意外的中断。
  1. sys 用户和口令身份登录内部部署主数据库上的 DGMGRL 会话。
    DGMRGL> connect
  2. 显示内部部署数据库的配置。
    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 32 seconds ago)
  3. 连接到主数据库实例并执行关闭以模拟未计划的中断。
    bash-4.2$ sqlplus / as sysdba
    SQL> shutdown abort;
    输出结果应看起来类似于以下内容:
    ORACLE instance shut down.
  4. 显示 Oracle Cloud Infrastructure (OCI) 中备用数据库实例的配置。
    DGMGRL> show configuration;
    输出结果应看起来类似于以下内容:
    Configuration - onpremdr
      Protection Mode: MaxPerformance
      Members:
      orclcdb        - Primary database
        Error: ORA-1034: ORACLE not available
    
        orclcdb_iad1s3 - Physical standby database 
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    ERROR   (status updated 0 seconds ago)
  5. 启动故障转移。
    DGMGRL> > failover to ORCLCDB_iad1s3;
    输出结果应看起来类似于以下内容:
    Performing failover NOW, please wait...
    Failover succeeded, new primary is "orclcdb_iad1s3"
  6. 在 Oracle Cloud Infrastructure (OCI) 中显示数据库实例的配置。
    DGMGRL> show configuration;
    输出结果应看起来类似于以下内容:
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
        orclcdb        - Physical standby database (disabled)
          ORA-16661: the standby database needs to be reinstated
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 48 seconds ago)
  7. 恢复原始内部部署主数据库(本示例中为 ORCLCDB)。
    恢复使旧的已停用的主数据库成为备用数据库,允许它从新主数据库(已激活的备用数据库)接收 redo 数据。

    如果要将原始主数据库作为主数据库实例(已故障转移),请在恢复之前对原始主数据库的一个实例执行 startup mount

    SQL> startup mount;
  8. 在云中的数据库实例(本示例中的 orclcdb_iad1s3)上,使用 reinstate database 命令恢复原始内部部署主数据库。
    DGMGRL> reinstate database ORCLCDB;
    输出结果应看起来类似于以下内容:
    Reinstating database
            "orclcdb", please wait...Reinstatement of database
            "orclcdb" succeeded
  9. 显示 Oracle Cloud Infrastructure (OCI) 中备用数据库实例的配置。
    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 47 seconds ago