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