怕之後忘了,作個試驗記錄一下,這個switch比較常規
1】主--備庫先查一遍,以下的話就能夠開始了
二者當前序列一致
角色狀態以下
--主庫
SQL> archive log list;
數據庫日誌模式 存檔模式
自動存檔 啓用
存檔終點 /u01/app/oracle/oradata/test/flash_recovery_area
最先的聯機日誌序列 524
下一個存檔日誌序列 526
當前日誌序列 526
SQL> select switchover_status,database_role from v$database;sql
SWITCHOVER_STATUS DATABASE_ROLE
-------------------- ----------------
TO STANDBY PRIMARY數據庫
--備庫
SQL> archive log list;
數據庫日誌模式 存檔模式
自動存檔 啓用
存檔終點 /u01/app/oracle/oradata/test/flash_recovery_area
最先的聯機日誌序列 524
下一個存檔日誌序列 0
當前日誌序列 526
SQL> select switchover_status,database_role from v$database;session
SWITCHOVER_STATUS DATABASE_ROLE
-------------------- ----------------
NOT ALLOWED PHYSICAL STANDBYoracle
2】切換
--主庫
--將primary角色轉換爲standby角色
SQL> alter database commit to switchover to physical standby;app
數據庫已更改。
SQL> shutdown immediate
ORA-01012: not logged on日誌
--shutdown immediate
SQL> startup mount
ORACLE 例程已經啓動。flash
Total System Global Area 3975139328 bytes
Fixed Size 2259360 bytes
Variable Size 2768242272 bytes
Database Buffers 1191182336 bytes
Redo Buffers 13455360 bytes
數據庫裝載完畢。it
mount以後原主庫成了備庫
SQL> select switchover_status,database_role from v$database;io
SWITCHOVER_STATUS DATABASE_ROLE
-------------------- ----------------
RECOVERY NEEDED PHYSICAL STANDBYtest
--備庫
--查看standby狀態
SQL> select switchover_status,database_role from v$database;
SWITCHOVER_STATUS DATABASE_ROLE
-------------------- ----------------
SESSIONS ACTIVE PHYSICAL STANDBY
--將--備庫的角色修改成primary
/*執行下面時須要關閉其餘sql窗口,不然報下面的錯
SQL> alter database commit to switchover to primary;
alter database commit to switchover to primary
*
第 1 行出現錯誤:
ORA-01093: ALTER DATABASE CLOSE 僅容許在沒有鏈接會話時使用
*/
確認沒有會話鏈接了執行結果
SQL> alter database commit to switchover to primary;
數據庫已更改。
原備庫變成原主庫那樣了,
SQL> select switchover_status,database_role from v$database;
SWITCHOVER_STATUS DATABASE_ROLE
-------------------- ----------------
NOT ALLOWED PRIMARY
原主庫呢,剛纔mount了,須要recover,如今新主庫也open了,能夠開始recover了
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> alter database recover managed standby database disconnect from session;
SQL> recover managed standby database cancel;
完成介質恢復。
SQL> alter database open;
數據庫已更改。
開啓實時應用
SQL> alter database recover managed standby database using current logfile disconnect from session;
數據庫已更改。
--這時新備庫正常了
SQL> select switchover_status,database_role from v$database;
SWITCHOVER_STATUS DATABASE_ROLE
-------------------- ----------------
NOT ALLOWED PHYSICAL STANDBY
檢查】
新主庫切換日誌查看下兩邊序列是否一致(簡單方式)
alter system switch logfile;
archive log list;
查看主、備庫是否有gapSELECT STATUS,GAP_STATUS FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID=2;