RAC環境STANDBY的FAILOVER切換

season0891發表於2010-07-16

RAC環境STANDBY的FAILOVER切換

介紹一下RAC環境下STANDBY資料庫的FAILOVER切換。

 


 

PRIMARY資料庫和STANDBY資料庫採用的都是RAC 11.1.0.6 for Solaris10 sparc,共享儲存PRIMARY資料庫採用VOLUMN CLUSTER MANAGER,而STANDBY數 據庫使用ASM

STANDBY資料庫環境已經建立完成,下面 準備實施FAILOVER切換。

FAILOVER切換一般是PRIMARY資料庫發生故障後的切換,這種情況是STANDBY數 據庫發揮其作用的情況。這種切換髮生後,可能會造成資料的丟失。而且這個過程不是可逆的,DATA GUARD環 境會被破壞。

由於PRIMARY資料庫已經無法啟動,所以FAILOVER切 換所需的條件並不多,只要檢查STANDBY是否執行在最大保護模式下,如果是的話,需要將其置為 最大效能模式,否則切換到PRIMARY角色也無法啟動。

為了模擬FAILOVER的特點主庫的兩個例項都透過SHUTDOWN ABORT方式關閉。

SQL> shutdown abort
ORACLE
例程已經關閉。

另外一個例項也關閉:

SQL> shutdown abort
ORACLE
例程已經關閉。

下面登陸STANDBY資料庫,檢查是否有ARCHIVE GAP存 在:

SQL> select thread#, low_sequence#, high_sequence# from v$archive_gap;

未選定行

如果GAP存在,應該到主伺服器上儘可能尋找到,這樣切換的時候可以少丟失資料。

確認例項2已經關閉,將例項1需求日誌恢復操作:

SQL> alter database recover managed standby database cancel;

資料庫已更改。

SQL> alter database recover managed standby database finish;

資料庫已更改。

SQL> select switchover_status from v$database;

SWITCHOVER_STATUS
--------------------
TO PRIMARY

下面就可以指向切換了:

SQL> alter database commit to switchover to primary;

資料庫已更改。

SQL> alter database open;

資料庫已更改。

SQL> select name,
2 open_mode,
3 database_role,
4 guard_status,
5 db_unique_name,
6 primary_db_unique_name
7 from v$database;

NAME OPEN_MODE DATABASE_ROLE GUARD_S DB_UNIQUE_NAME PRIMARY_DB_UNIQUE_NAME
--------- ---------- ---------------- ------- -------------------- -------------------------
RAC11G READ WRITE PRIMARY NONE rac11g_s rac11g

至此切換已經完成,兩個 資料庫的STANDBY關係已經失去,即使源資料庫重新啟動,兩個資料庫也不能恢復STANDBY

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

相關文章