未计划的故障转移

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

从未计划的故障转移中恢复

故障转移是假定主数据库丢失的计划外事件。应用所有可用的主 redo 日志后,备用数据库将立即转换为主数据库。可以使用闪回和 Oracle Data Guard 中介将原始主数据库恢复为物理备用数据库。

故障转移后,必须将原始主数据库恢复为物理备用数据库。启用闪回数据库和 Oracle Data Guard 中介后,更容易恢复原始主数据库。
本示例中的步骤 3 关闭主内部部署数据库以模拟意外的中断。此示例使用 Oracle Data Guard 中介恢复主数据库。
  • 内部部署数据库: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