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

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

1 Switchover切換到備庫

1)驗證目標備庫是否作好切換數據庫

SQL> alter database switchover to orcldg verify;



Database altered.

2)啓動主數據庫的切換session

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)啓動新備庫code

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)新備庫開啓日誌應用it

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



Database altered.

6)查看主備庫狀態io

主庫:class

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



NAME DATABASE_ROLE SWITCHOVER_STATUS

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

ORCL PRIMARY TO STANDBY

備庫:file

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



NAME DATABASE_ROLE SWITCHOVER_STATUS

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

ORCL PHYSICAL STANDBY NOT ALLOWED

2 Failover切換到備庫

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

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實現物理備庫角色的轉換。

相關文章
相關標籤/搜索