來個ADG switch over

怕之後忘了,作個試驗記錄一下,這個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;

相關文章
相關標籤/搜索