RAC環境的物理STANDBY的 SWITCHOVER切換

yangtingkun發表於2008-01-19

物理STANDBYSWITCHOVER切換會把當前的一個物理STANDBY切換為PRIMARY資料庫,而PRIMARY資料庫且變成物理STNADBY資料庫。

這篇描述RAC環境資料庫SWITCHOVER切換到一個單例項資料庫。

DATA GUARD物理STANDBY SWITCHOVER切換:http://yangtingkun.itpub.net/post/468/412324

 

 

在進行DATA GUARD的物理STANDBY切換前需要注意:

確認主庫和從庫間網路連線通暢;

確認沒有活動的會話連線在資料庫中;

PRIMARY資料庫處於開啟的狀態,STANDBY資料庫處於MOUNT狀態;

確保STANDBY資料庫處於ARCHIVELOG模式;

如果設定了REDO應用的延遲,那麼將這個設定去掉;

確保配置了主庫和從庫的初始化引數,使得切換完成後,DATA GUARD機制可以順利的執行。

而對於RAC環境的切換,還需要注意一點,RAC環境的DATA GUARD切換隻能啟動一個資料庫例項,其他的例項需要關閉:

SQL> CONN SYS/TEST@TESTRAC2 AS SYSDBA
已連線。
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME
----------------
testrac2

SQL> SHUTDOWN IMMEDIATE
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE
例程已經關閉。
SQL> CONN SYS/TEST@TESTRAC1 AS SYSDBA
已連線。
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;

資料庫已更改。

SQL> SHUTDOWN IMMEDIATE
ORA-01507:
未裝載資料庫


ORACLE
例程已經關閉。
SQL> STARTUP MOUNT
ORACLE
例程已經啟動。

Total System Global Area 2147483648 bytes
Fixed Size                  2031480 bytes
Variable Size             956301448 bytes
Database Buffers         1174405120 bytes
Redo Buffers               14745600 bytes
資料庫裝載完畢。

下面連線到STANDBY資料庫,並切換到為PRIMARY資料庫:

SQL> CONN SYS/TEST@TESTRAC_STANDBY AS SYSDBA
已連線。
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

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

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

資料庫已更改。

SQL> ALTER DATABASE OPEN;

資料庫已更改。

SQL> CONN SYS/TEST@TESTRAC1 AS SYSDBA
已連線到空閒例程。
SQL> STARTUP MOUNT
ORACLE
例程已經啟動。

Total System Global Area 2147483648 bytes
Fixed Size                  2031480 bytes
Variable Size             956301448 bytes
Database Buffers         1174405120 bytes
Redo Buffers               14745600 bytes
資料庫裝載完畢。
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

資料庫已更改。

至此,RAC環境的SWITCHOVER切換完成。下面檢查一下日誌是否已經從目前的主庫傳播到從庫就可以了。

下面簡單描述一下,將主庫切換為RAC環境的過程:

SQL> CONN SYS/TEST@TESTRAC_STANDBY AS SYSDBA
已連線。
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

資料庫已更改。

SQL> SHUTDOWN IMMEDIATE
ORA-01507:
未裝載資料庫


ORACLE
例程已經關閉。
SQL> STARTUP MOUNT
ORACLE
例程已經啟動。

Total System Global Area 2147483648 bytes
Fixed Size                  2031480 bytes
Variable Size             520093832 bytes
Database Buffers         1610612736 bytes
Redo Buffers               14745600 bytes
資料庫裝載完畢。
SQL> CONN SYS/TEST@TESTRAC1 AS SYSDBA
已連線。
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

資料庫已更改。

SQL> ALTER DATABASE OPEN;

資料庫已更改。

SQL> CONN SYS/TEST@TESTRAC2 AS SYSDBA
已連線到空閒例程。
SQL> STARTUP
ORACLE
例程已經啟動。

Total System Global Area 2147483648 bytes
Fixed Size                  2031480 bytes
Variable Size             520093832 bytes
Database Buffers         1610612736 bytes
Redo Buffers               14745600 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> CONN SYS/TEST@TESTRAC_STANDBY AS SYSDBA
已連線。
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

資料庫已更改。

這個操作只是上面的一個反向操作,就不詳細描述了。

RAC環境的切換似乎和普通環境的切換相差不大,但是這次切換花費了將近3天的時間。

只要原因是碰到了下面的幾個bug

SWITCHOVER RAC資料庫出現ORA-1093http://yangtingkun.itpub.net/post/468/417767

SWITCHOVER RAC資料庫出現ORA-600(kcctrdf_2)錯誤:http://yangtingkun.itpub.net/post/468/418311

ORA-19864錯誤:http://yangtingkun.itpub.net/post/468/418784

三個bug中的後兩個,在metalink上都找不到解決方法,只能透過自己的摸索來解決。看來越複雜的機制相應的問題就越多,而且相關的參考資訊也越少。

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

相關文章