【12c】DataGuard物理備庫角色切換

Data Guard環境中數據庫的角色轉換有兩種,分別爲Switchover和Failover,通過名稱可知,前者是正常的主備庫之間的角色切換,該切換方式不會丟失數據;後者是故障切換,即主庫不能繼續提供服務的切換,可能發生數據丟失。從12.1版本開始,切換到物理備庫的操作得以簡化,本篇分別對這兩種切換方式進行演示。

1 Switchover切換到備庫

1)驗證目標備庫是否做好切換

SQL> alter database switchover to orcldg verify;



Database altered.

2)啓動主數據庫的切換

SQL> alter database switchover to orcldg;



Database altered.

3)打開新主庫

SQL> select instance_name,status from v$instance;



INSTANCE_NAME STATUS

---------------- ------------

orcldg MOUNTED



SQL> alter database open;



Database altered.

4)啓動新備庫

SQL> startup

ORACLE instance started.



Total System Global Area 1644167168 bytes

Fixed Size 2925024 bytes

Variable Size 1056968224 bytes

Database Buffers 570425344 bytes

Redo Buffers 13848576 bytes

Database mounted.

Database opened.

5)新備庫開啓日誌應用

SQL> alter database recover managed standby database disconnect from session;



Database altered.

6)查看主備庫狀態

主庫:

SQL> select name,database_role,switchover_status from v$database;



NAME DATABASE_ROLE SWITCHOVER_STATUS

--------- ---------------- --------------------

ORCL PRIMARY TO STANDBY

備庫:

SQL> select name,database_role,switchover_status from v$database;



NAME DATABASE_ROLE SWITCHOVER_STATUS

--------- ---------------- --------------------

ORCL PHYSICAL STANDBY NOT ALLOWED

2 Failover切換到備庫

1)主庫故障,但可啓動至mount

SQL> shutdown abort

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.



Total System Global Area 1644167168 bytes

Fixed Size 2925024 bytes

Variable Size 1073745440 bytes

Database Buffers 553648128 bytes

Redo Buffers 13848576 bytes

Database mounted.

2)刷新未使用的redo至備庫

SQL> alter system flush redo to orcl;



System altered.

3)備庫確認是否有GAP,若有,拷貝未歸檔的丟失的歸檔日誌至備庫,並完成註冊

SQL> select * from v$archive_gap;

註冊語法:

SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';

4)取消備庫的日誌應用

SQL> alter database recover managed standby database cancel;



Database altered.

5)備庫故障轉移至主庫

SQL> alter database failover to orcl;



Database altered.

6)打開新主庫

SQL> select instance_name,status from v$instance;



INSTANCE_NAME STATUS

---------------- ------------

orcl MOUNTED



SQL> alter database open;



Database altered.

7)打開新主庫後,建議做個數據庫全備,另外,故障切換後,可以使用閃回數據庫或使用RMAN備份將其轉換爲新的備庫。

故障切換的場景比較複雜,可根據實際情況進行處理。

以上,就是使用switchover或failover實現物理備庫角色的轉換。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章