利用STANDBY將單例項資料庫升級為RAC環境(三)
利用Oracle的STANDBY技術,可以將單例項資料庫升級到RAC資料庫。這種方式可以有效的降低單例項遷移到RAC環境的停機時間。
這篇文章描述單例項環境與RAC環境的SWITCHOVER過程。
利用STANDBY將單例項資料庫升級為RAC環境(一):http://yangtingkun.itpub.net/post/468/494736
利用STANDBY將單例項資料庫升級為RAC環境(二):http://yangtingkun.itpub.net/post/468/494766
前面已經成功搭建了單例項資料庫TEST11G的RAC環境STANDBY資料庫TEST11GR。STANDBY資料庫的兩個例項可以同時以READ ONLY方式啟動。
下面為了執行SWITCHOVER操作,可以先關閉例項2:
bash-3.00$ export ORACLE_SID=test11gr2
bash-3.00$ sqlplus "/ as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on 星期五 7月 17 19:44:11 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連線到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL> SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE;
INSTANCE_NAME STATUS
---------------- ------------
test11gr2 OPEN
SQL> SELECT INSTANCE_NAME, STATUS FROM GV$INSTANCE;
INSTANCE_NAME STATUS
---------------- ------------
test11gr2 OPEN
test11gr1 OPEN
SQL> SHUTDOWN IMMEDIATE
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> EXIT
從 Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options 斷開
回到節點1上,將資料庫置於RECOVER狀態,確保應用最新的歸檔資料:
SQL> alter database close;
資料庫已更改。
SQL> alter database recover managed standby database disconnect from session;
資料庫已更改。
SQL> select pid, status, client_process, group#, resetlog_id, thread#, sequence#
2 from v$managed_standby;
PID STATUS CLIENT_P GROUP# RESETLOG_ID THREAD# SEQUENCE#
---------- ------------ -------- ---------- ----------- ---------- ----------
13916 CONNECTED ARCH N/A 0 0 0
13918 CONNECTED ARCH N/A 0 0 0
13920 CONNECTED ARCH N/A 0 0 0
13922 CONNECTED ARCH N/A 0 0 0
476 WAIT_FOR_GAP N/A N/A 683602501 1 159
16679 IDLE UNKNOWN N/A 0 0 0
16689 IDLE UNKNOWN N/A 0 0 0
16691 IDLE UNKNOWN N/A 0 0 0
已選擇8行。
檢查主庫的歸檔情況。
SQL> select name, dest_id, thread#, sequence#, creator
2 from v$archived_log
3 where sequence# = 158;
NAME DEST_ID THREAD# SEQUENCE# CREATOR
----------------------------------------------------- -------- --------- ---------- -------
/data/oradata/test11g/archivelog/1_158_683602501.dbf 1 1 158 ARCH
TEST11GR 2 1 158 ARCH
確認主庫和備庫歸檔應用已經同步。
在進行DATA GUARD的物理STANDBY切換前需要注意:
確認主庫和從庫間網路連線通暢;
確認沒有活動的會話連線在資料庫中;
PRIMARY資料庫處於開啟的狀態,STANDBY資料庫處於MOUNT狀態;
確保STANDBY資料庫處於ARCHIVELOG模式;
如果設定了REDO應用的延遲,那麼將這個設定去掉;
確保配置了主庫和從庫的初始化引數,使得切換完成後,DATA GUARD機制可以順利的執行。
由於RAC環境STANDBY在SWITCHOVER時,很容易由於設定DB_RECOVERY_FILE_DEST導致bug的出現,具體描述可以參考:
SWITCHOVER RAC資料庫出現ORA-600(kcctrdf_2)錯誤:http://yangtingkun.itpub.net/post/468/418311
因此在STANDBY資料庫建立初始化引數檔案的時候就沒有載入DB_RECOVERY_FILE_DEST等引數,這裡將主庫的相應引數也去掉:
SQL> show parameter db_recovery_file_dest
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_recovery_file_dest string /data/oracle/flash_recovery_area
db_recovery_file_dest_size big integer 4G
SQL> alter system reset db_recovery_file_dest scope = spfile;
系統已更改。
SQL> alter system reset db_recovery_file_dest_size scope = spfile;
系統已更改。
下面關閉主資料庫,斷開所有的連線,確保重新啟動後,沒有業務會話連線到資料庫上:
SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 5279498240 bytes
Fixed Size 2094528 bytes
Variable Size 3192597056 bytes
Database Buffers 2080374784 bytes
Redo Buffers 4431872 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> show parameter db_recovery_file_dest
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 0
SQL> select name, db_unique_name, database_role, switchover_status
2 from v$database;
NAME DB_UNIQUE_ DATABASE_ROLE SWITCHOVER_STATUS
---------- ---------- --------------- ----------------------------------------
TEST11G TEST11G PRIMARY TO STANDBY
資料庫處於TO STANDBY狀態,下面執行SWITCHOVER操作:
SQL> alter database commit to switchover to physical standby;
資料庫已更改。
SQL> shutdown immediate
ORA-01507: 未裝載資料庫
ORACLE 例程已經關閉。
SQL> startup mount
ORACLE 例程已經啟動。
Total System Global Area 5279498240 bytes
Fixed Size 2094528 bytes
Variable Size 3192597056 bytes
Database Buffers 2080374784 bytes
Redo Buffers 4431872 bytes
資料庫裝載完畢。
SQL> select name, db_unique_name, database_role, switchover_status
2 from v$database;
NAME DB_UNIQUE_ DATABASE_ROLE SWITCHOVER_STATUS
---------- ---------- -------------------- ----------------------------------------
TEST11G TEST11G PHYSICAL STANDBY TO PRIMARY
下面切換到RAC環境的STANDBY資料庫,檢查狀態:
SQL> select name, db_unique_name, database_role, switchover_status
2 from v$database;
NAME DB_UNIQUE_NAME DATABASE_ROLE SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
TEST11G TEST11GR PHYSICAL STANDBY TO PRIMARY
執行SWITCHOVER切換到主庫,並開啟資料庫:
SQL> alter database commit to switchover to primary;
資料庫已更改。
SQL> alter database open;
資料庫已更改。
SQL> select name, db_unique_name, database_role, switchover_status
2 from v$database;
NAME DB_UNIQUE_NAME DATABASE_ROLE SWITCHOVER_STATUS
--------- -------------------- ---------------- --------------------
TEST11G TEST11GR PRIMARY NOT ALLOWED
切換成功。
在原主資料庫,也就是切換完成後的STANDBY主庫執行:
SQL> alter database recover managed standby database disconnect from session;
資料庫已更改。
使得STANDBY資料庫應用主庫的歸檔。
在新的主資料庫的節點2上,啟動例項:
bash-3.00$ export ORACLE_SID=test11gr2
bash-3.00$ sqlplus "/ as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on 星期五 7月 17 20:35:50 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
已連線到空閒例程。
SQL> startup pfile=/export/home/oracle/inittest11gr2.ora
ORACLE 例程已經啟動。
Total System Global Area 7418036224 bytes
Fixed Size 2095808 bytes
Variable Size 3250758976 bytes
Database Buffers 4160749568 bytes
Redo Buffers 4431872 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> select instance_name, status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
test11gr2 OPEN
SQL> select instance_name, status from gv$instance;
INSTANCE_NAME STATUS
---------------- ------------
test11gr2 OPEN
test11gr1 OPEN
SQL> select name, db_unique_name, database_role
2 from v$database;
NAME DB_UNIQUE_NAME DATABASE_ROLE
--------- ------------------------------ ----------------
TEST11G TEST11GR PRIMARY
至此,單例項資料庫到RAC環境STANDBY的SWITCHOVER操作完成。同時,單例項資料庫升級到RAC環境資料庫的操作也完成了。
如果願意,現在可以設定RAC環境的DB_RECOVERY_FILE_DEST引數。
使用這種辦法升級RAC環境,所需要的停機時間非常短。如果前期準備工作順利,只需要5到30分鐘的停機時間。
而且採用這種方法,原資料庫環境作為RAC環境的STANDBY資料庫。如果一旦升級後RAC環境出現問題,或者不適應系統的壓力。可以透過SWITCHOVER的方法快速的切換為原始環境,且不會丟失任何的資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-622299/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 利用STANDBY將單例項資料庫升級為RAC環境(四)單例資料庫
- 利用STANDBY將單例項資料庫升級為RAC環境(二)單例資料庫
- 利用STANDBY將單例項資料庫升級為RAC環境(一)單例資料庫
- 單例項環境利用備份恢復RAC資料庫(三)單例資料庫
- 單例項環境利用備份恢復RAC資料庫(四)單例資料庫
- 單例項環境利用備份恢復RAC資料庫(二)單例資料庫
- 單例項環境利用備份恢復RAC資料庫(一)單例資料庫
- RAC環境只啟動單例項資料庫單例資料庫
- 【RAC】將單例項備份集恢復為rac資料庫單例資料庫
- 【RAC】將RAC備份集恢復為單例項資料庫單例資料庫
- RAC環境利用備份恢復RAC資料庫(三)資料庫
- 將RAC備份集恢復為單例項資料庫單例資料庫
- 從單例項資料庫轉換到RAC環境——RAC的建立和配置單例資料庫
- rac環境下standby資料庫的實現資料庫
- Oracle 資料庫 升級為 RACOracle資料庫
- 單例項恢復RAC資料庫步驟(三)單例資料庫
- RAC環境的STANDBY資料庫備份報錯資料庫
- RAC環境單例項啟動資料庫收到ORA-29702報錯單例資料庫
- RAC環境下單例項啟動Oracle資料庫重建控制檔案案例單例Oracle資料庫
- RAC資料庫建立STANDBY(三)資料庫
- RAC環境利用備份恢復RAC資料庫(五)資料庫
- RAC環境利用備份恢復RAC資料庫(四)資料庫
- RAC環境利用備份恢復RAC資料庫(二)資料庫
- RAC環境利用備份恢復RAC資料庫(一)資料庫
- rac 升級crs 升級資料庫軟體,升級資料庫資料庫
- RAC資料庫恢復到單例項資料庫資料庫單例
- 單例項資料庫expdp遷移到RAC庫單例資料庫
- 【RAC】在RAC環境中SQL*Plus命令對資料庫及例項的影響SQL資料庫
- duplicate複製資料庫(rac-單例項)資料庫單例
- 恢復RAC資料庫到單例項(ASM)資料庫單例ASM
- 【kingsql分享】將RAC資料庫異機恢復到單例項(Ⅰ)SQL資料庫單例
- 單例項環境下Oracle 11.2.0.3升級到11.2.0.4的過程單例Oracle
- 連線RAC資料庫中單個例項(一)資料庫
- 單例項恢復RAC資料庫步驟(二)單例資料庫
- 單例項恢復RAC資料庫步驟(一)單例資料庫
- 連線RAC資料庫中單個例項(二)資料庫
- 利用RMAN將資料庫從檔案系統遷移到ASM(單例項)資料庫ASM單例
- Oracle 11gR2單例項資料庫補丁升級記錄Oracle單例資料庫