Data Guard主備庫切換

許願流星1號發表於2015-12-03

Data Guard 主備庫切換

Data Guard的主備庫切換分為2種,switchover和failover。遇到突發事件,基本都是採用failover切換。 在主備庫切換完成後應該修改資料庫伺服器的IP地址,如將10.10.10.101的伺服器IP地址改為10.10.10.201。或者進Sfcallset,將資料庫伺服器的IP地址改為10.10.10.101,即備庫的地址.這樣才能保證系統的正常運作。


4.1 . switchover(正常切換)


一般SWITCHOVER切換都是計劃中的切換,特點是在切換後,不會丟失任何的資料,而且這個過程是可逆的,整個DATA GUARD環境不會被破壞,原來DATA GUARD環境中的所有物理和邏輯STANDBY都可以繼續工作。


主庫:

1.檢視switchover狀態

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

      to standby

2.切換成備庫

SQL> Alter database commit to switchover to physical standby with session shutdown;

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

     Database altered.


3啟動到mount和應用日誌狀態

SQL> SHUTDOWN IMMEDIATE

SQL> startup nomount;

SQL> alter database mount standby database;

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;


4.檢視資料庫模式

SQL>select dest_name,status,database_mode,recovery_mode,protection_mode from v$archive_dest_status;

SQL>select status,database_mode from v$archive_dest_status;


備庫:


1.檢視switchover狀態

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

    TO PRIMARY

2.切換成主庫

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

Database altered.

SQL> shutdown immediate;

SQL> startup;

SQL> alter system switch logfile;

3.檢視資料庫模式

SQL>select dest_name,status,database_mode,recovery_mode,protection_mode from v$archive_dest_status;

SQL>select status,database_mode from v$archive_dest_status;



4.2  Failovers:(主庫癱瘓,不得以的切換。)

FAILOVER切換一般是PRIMARY資料庫發生故障後的切換,這種情況是STANDBY資料庫發揮其作用的情況。這種切換髮生後,可能會造成資料的丟失。而且這個過程不是可逆的,DATA GUARD環境會被破壞。由於PRIMARY資料庫已經無法啟動,所以FAILOVER切換所需的條件並不多,只要檢查STANDBY是否執行在最大保護模式下,如果是的話,需要將其置為最大效能模式,否則切換到PRIMARY角色也無法啟動。



1.檢視是否有日誌GAP,沒有應用的日誌:

   SQL> SELECT UNIQUE THREAD#, MAX(SEQUENCE#) OVER(PARTITION BY THREAD#) LAST FROM V$ARCHIVED_LOG;

SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;

如果有,則複製過來並且註冊

SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE '路徑';

重複檢視直到沒有應用的日誌:

2.然後停止應用歸檔:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Database altered.

3.下面將STANDBY資料庫切換為PRIMARY資料庫:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;

Database altered.

SQL> SELECT DATABASE_ROLE FROM V$DATABASE;

DATABASE_ROLE

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

PHYSICAL STANDBY

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

Database altered.

SQL> ALTER DATABASE OPEN;

Database altered.


檢查資料庫是否已經切換成功:

SQL> SELECT DATABASE_ROLE FROM V$DATABASE;

DATABASE_ROLE

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

PRIMARY



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29893219/viewspace-1852747/,如需轉載,請註明出處,否則將追究法律責任。

相關文章