Data Guard主从库之间的角色切换分为以下两种:
1) Switchover
Swithchover通常都是人为的有计划的进行角色互换,比如升级等。它通 常都是无损的,即不会有数据丢失。其执行主要分为两个阶段:
Primary转为Standby
Standby(之一)转为Primary
2)Failover
Failover是指由于Primary故障无法短时间恢复,Standby不得不充当 Primay的角色,如果处于最高性能模式,这种切换很有可能导致数据丢失。
下面分别 演示物理Standby的Switchover和Failover(逻辑Standby的切换类似)。
1. 物理 Standby执行Switchover
1) 确认pirmary是否可以切换为 standby
PRIMARY>select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO STANDBY
2) 切换 primary为standby
PRIMARY>alter database commit to switchover to physical standby;
3) 启动原primary到mount状态
此时原primary就是以standby身份在运行了。
4) 确认standby是否可以切换为primary
STANDBY>select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
5) 切 换standby为primary
STANDBY>alter database commit to switchover to primary;
Database altered.
STANDBY>alter database open;
Database altered.
6) 验证
PRIMARY>select database_role from v$database;
DATABASE_ROLE