問題描述:咱們配置DG的目的就是爲了在主庫出現故障時,備庫可以提供服務,保證業務的正常運行,switchover是用戶有計劃的進行停機切換,可以保證不丟失數據,我記錄一下我進行switchover中的操做。sql
1.主庫(orcl) 備庫(orclstd) ,查看主庫上的狀態,角色orcl是主庫session
SQL> select switchover_status,database_role from v$database;spa
SWITCHOVER_STATUS DATABASE_ROLE3d
-------------------- ----------------日誌
TO STANDBY PRIMARYblog
2.switch轉換主庫orcl爲物理備庫,並查看更改後的角色文檔
SQL> alter database commit to switchover to physical standby with session shutdown;同步
SQL> startup mount;it
SQL> select database_role from v$database;io
3如下都是在orclstd備庫上操做,同樣的先查詢狀態角色是否具有切換的條件,注意:上面查詢結果顯示爲TO PRIMARY 或 SESSIONS ACTIVE代表能夠切換成主庫
SQL> select switchover_status,database_role from v$database;
SWITCHOVER_STATUS DATABASE_ROLE
------------------------------------
TO PRIMARY PHYSICAL STANDBY
4.切換orclstd(原備庫)爲物理主庫,並查詢更改後的角色和狀態,很顯然個人switchover_status狀態爲RESOLVABLE GAP,大概就是還有歸檔沒有傳輸過去一類的
SQL> alter database commit to switchover to primary with session shutdown;
SQL> alter database open;
SQL> select switchover_status,database_role,open_mode from v$database;
5.網上找了不少篇文檔,貌似全都是同樣抄的,SQL> alter system flush redo to 'orcl'; 都是這個命令,刷新redo 到新備庫去,可是個人一直報錯
這個名字須要加上單引號,不然識別不了,錯誤提示個人db_unique_name再也不設置內,我查詢了一下設置,服了沒毛病啊,這一點一直不清楚怎麼回事
6.在同事的幫助下,查看了pfile的設置,將log_archive_dest_2='SERVICE名字設置爲新的備庫orcl,可能由於orclstd是我老的備庫,service名字沒有改,這裏改一下,或者在sqlplus 中進行alter system 設置也能夠
7.修改過以後,新的備庫可以接受到歸檔,而後能夠進行同步了
SQL> select switchover_status,database_role from v$database;
8.驗證:在新主庫上切換日誌,並查詢最大序列號爲62
SQL> alter system archive log current;
SQL> select max(sequence#) from v$archived_log;
9.一樣的在主庫查詢,同樣的都是62,驗證成功,switchover切換完成
SQL> select max(sequence#) from v$archived_log;