故障转移是假定主数据库丢失的计划外事件。应用所有可用的主 redo
日志后,备用数据库将立即转换为主数据库。可以使用闪回和 Oracle Data Guard 中介将原始主数据库恢复为物理备用数据库。
故障转移后,必须将原始主数据库恢复为物理备用数据库。启用闪回数据库和 Oracle Data Guard 中介后,更容易恢复原始主数据库。
本示例中的步骤 3 关闭主内部部署数据库以模拟意外的中断。此示例使用 Oracle Data Guard 中介恢复主数据库。
- 内部部署数据库:
db1
- 云中的物理备用数据库实例:
db1_phx3g7
- 在主内部部署 Oracle Exadata Database Machine 上,以
sysdba
身份登录
- 显示内部部署数据库的配置。
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)
- 连接到主内部部署数据库实例并执行关闭以模拟意外的中断。
bash-4.2$ sqlplus / as sysdba
SQL> shutdown abort;
输出应类似于以下内容:
ORACLE instance shut down.
- 在 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)
- 启动对 Oracle Database Exadata Cloud Service 实例的故障转移。
DGMGRL> > failover to db1_phx3g7;
输出应类似于以下内容:
Performing failover NOW, please wait...
Failover succeeded, new primary is "db1_phx3g7"
- 在 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)
- 在本地 Oracle Exadata Database Machine (db1)(现在为备用)上,在一个节点上启动实例。
$srvctl start instance -db db1 -instance db11
- 使用
reinstate database
命令将停用的主数据库设为备用数据库。 reinstate
使旧的已停用的主数据库成为备用数据库,允许它从新主数据库(已激活的备用数据库)接收 redo
数据。
DGMGRL> reinstate database db1;
输出应类似于以下内容:
Reinstating database
"db1", please wait...Reinstatement of database "db1" succeeded
- 显示内部部署数据库实例的配置。
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)
- 根据需要切换到内部部署 Oracle Exadata Database Machine。