問題描述:我們配置DG的目的就是為了在主庫出現故障時,備庫能夠提供服務,保證業務的正常運行,switchover是用戶有計劃的進行停機切換,能夠保證不丟失資料,我記錄一下我進行switchover中的操作,
1.主庫(orcl) 備庫(orclstd) ,查看主庫上的狀態,角色orcl是主庫
SQL> select switchover_status,database_role from v$database;
SWITCHOVER_STATUS DATABASE_ROLE
-------------------- ----------------
TO STANDBY PRIMARY
2.switch轉換主庫orcl為物理備庫,并查看更改后的角色
SQL> alter database commit to switchover to physical standby with session shutdown;
SQL> startup mount;
SQL> select database_role from v$database;

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;

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/28200.html
標籤:Oracle
上一篇:PB視窗之間傳遞引數
