單例項資料庫工具轉化多例項資料庫
需要說明一下,這篇文章不是介紹將一個單例項的資料庫環境升級為RAC環境,而是介紹如何將一個RAC環境下的單例項資料庫,轉變為多例項資料庫。
這篇介紹利用Oracle的工具進行轉化。
單例項資料庫手工轉化多例項資料庫:http://yangtingkun.itpub.net/post/468/483713
Oracle的CLUSTER軟體已經在兩個節點上建立成功,Oracle的ASM例項已經啟動。事實上,RAC環境的資料庫已經建立起來。
不過在這個RAC環境中,其中一個節點上建立了一個單例項的資料庫,資料檔案已經儲存在ASM中,因此下面要做的只是將這個資料庫變為多例項訪問的RAC資料庫。
bash-3.00$ cd $ORACLE_HOME/../crs/bin
bash-3.00$ crs_stat -t
名稱 型別 目標 狀態 主機
------------------------------------------------------------
ora.rac11g.db application OFFLINE OFFLINE
ora....g1.inst application ONLINE OFFLINE
ora....g2.inst application ONLINE OFFLINE
ora.ractest.db application OFFLINE OFFLINE
ora....t1.inst application OFFLINE OFFLINE
ora....t2.inst application OFFLINE OFFLINE
ora....SM1.asm application ONLINE ONLINE ser1
ora....R1.lsnr application ONLINE ONLINE ser1
ora.ser1.gsd application ONLINE ONLINE ser1
ora.ser1.ons application ONLINE ONLINE ser1
ora.ser1.vip application ONLINE ONLINE ser1
ora....SM2.asm application ONLINE ONLINE ser2
ora....R2.lsnr application ONLINE ONLINE ser2
ora.ser2.gsd application ONLINE ONLINE ser2
ora.ser2.ons application ONLINE ONLINE ser2
ora.ser2.vip application ONLINE ONLINE ser2
登陸資料庫進行檢查:
bash-3.00$ export ORACLE_SID=test
bash-3.00$ sqlplus "/ as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on 星期三 4月 8 17:35: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 * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for Solaris: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
SQL> col parameter format a40
SQL> col value format a30
SQL> select * from v$option
2 where parameter = 'Real Application Clusters';
PARAMETER VALUE
---------------------------------------- ------------------------------
Real Application Clusters TRUE
SQL> show parameter cluster
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cluster_database boolean FALSE
cluster_database_instances integer 1
cluster_interconnects string
SQL> select inst_id, instance_number, instance_name
2 from gv$instance;
INST_ID INSTANCE_NUMBER INSTANCE_NAME
---------- --------------- ----------------
1 1 test
建立一個PFILE,一會使用DBUA的時候需要用到。
SQL> create pfile='/export/home/oracle/inittest.ora' from spfile;
檔案已建立。
根據上面的檢查可以發現,資料庫已經安裝RAC選項,但是當前資料庫是單例項資料庫。下面透過DBUA和DBCA配合的方式將當前的資料庫變為RAC環境:
首先執行DBUA,修改單例項的配置為RAC環境配置。選擇需要修改的資料庫test,單擊確定。彈出對話方塊,內容如下:
The database “test” does not have the cluster configuration and also not listed in the registry of remote cluster nodes. Do you want the Database Upgrade Assistant to upgrade it as a single instance database?
Click Yes to upgrade it as a single instance database. Click No to upgrade it as a cluster database.
點選NO,然後輸入本地例項名稱:test。DBUA會報錯,認為是一個不可重複執行的錯誤。登陸資料庫,發現Oracle其實已經修改可部分初始化引數,比如CLUSTER_DATABASE已經設定為TRUE。不過利用DBUA將單例項變為RAC還是存在bug。
手工編輯剛才的初始化引數,新增下列內容:
cluster_database=true
cluster_database_instances=1
test1.instance_number=1
test1.thread=1
test1.local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=172.0.2.62)(PORT=1521))'
利用這個pfile啟動資料庫:
bash-3.00$ export ORACLE_SID=test1
bash-3.00$ sqlplus "/ as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on 星期一 4月 13 14:56:14 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
已連線到空閒例程。
SQL> startup pfile=/export/home/oracle/inittest.ora
ORACLE 例程已經啟動。
Total System Global Area 776896512 bytes
Fixed Size 2098776 bytes
Variable Size 199940520 bytes
Database Buffers 570425344 bytes
Redo Buffers 4431872 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> show parameter cluster_database
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cluster_database boolean TRUE
cluster_database_instances integer 1
SQL> create spfile = '+DATA/test/spfiletest.ora' from pfile;
檔案已建立。
利用這個pfile建立spfile檔案。
編輯2個節點上的listener.ora新增test1和test2的配置:
(SID_DESC =
(SID_NAME = test1)
(ORACLE_HOME = /data/oracle/product/11.1/database)
)
然後重啟監聽。
還需要將database和instance的資訊新增到srvctl中:
$ srvctl add database -d test -o /data/oracle/product/11.1/database -p +DATA/test/spfiletest.ora -n test
$ srvctl add instance -d test -i test1 -n ser1
如果監聽沒有啟動,或者srvctl沒有配置資料庫和例項資訊,在dbca中是看不到test資料庫資訊的。
利用orapwd建立密碼檔案:
bash-3.00$ orapwd file=orapwtest1 password=test
下面使用dbca來新增例項,注意dbca必須在新增例項的節點執行。
選擇Oracle Real Application Clusters Database,選擇Instance Management,選擇Add an Instance。
選擇test資料庫,並確認test資料庫狀態為active。輸入sys使用者以及sys使用者密碼。
需要注意,如果test資料庫不存在,說明Oracle沒有認為TEST資料庫是RAC環境資料庫,需要將test使用者新增到srvctl命令中。
如果test資料庫狀態不是active,那麼可能是listener的配置問題,也可能是資料庫的當前狀態沒有反應到srvctl中。正確的配置監聽,利用srvctl重新啟動監聽、asm及資料庫例項,就可以保證資料庫的狀態正確了。
隨後DBCA顯示當前執行的例項,點選確定後,選擇要新增的新節點,以及對應的例項名稱。這裡選擇ser2節點,並輸入test2作為例項名。
由於使用了OMF,因此在儲存設定的位置不用進行修改。如果需要,可以修改UNDOTBS2資料檔案的大小。
最後確認後點選FINISH,就可以進行節點的新增了。
在10g的DBCA中,如果是ASM + OMF方式,存在bug,導致DBCA無法完成表空間和日誌檔案的新增,在11g中,這個問題已經被解決。
安裝完成後,這個資料庫已經變為RAC環境。
bash-3.00$ export ORACLE_SID=test2
bash-3.00$ sqlplus "/ as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on 星期二 4月 14 14:22:37 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 name from v$database;
NAME
---------
TEST
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
test2
SQL> select instance_number, instance_name from gv$instance;
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
2 test2
1 test1
由於是DBCA工具建立的資料庫,因此TNSNAMES.ORA中會自動配置資料庫的服務名,test2例項的資訊也會自動的新增到srvctl工具中。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-592454/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 單例項資料庫手工轉化多例項資料庫單例資料庫
- 多例項資料庫刪除例項資料庫
- RAC資料庫恢復到單例項資料庫資料庫單例
- MySQL資料庫入門多例項配置MySql資料庫
- 多例項資料庫一個用PSU(轉載)資料庫
- oracle 資料庫例項Oracle資料庫
- 資料庫和例項資料庫
- 單例項資料庫expdp遷移到RAC庫單例資料庫
- 資料庫正規化與例項資料庫
- 多例項資料庫一個用PSU資料庫
- Oracle多例項資料庫備份指令碼Oracle資料庫指令碼
- 如何修改資料庫例項及資料庫名資料庫
- 【轉】新建例項開啟已有的資料庫 — 資料庫與例項的區分測試資料庫
- 資料庫例項 (SQL Server)資料庫SQLServer
- 資料庫設計例項資料庫
- oracle資料庫建立資料庫例項-九五小龐Oracle資料庫
- 4 管理資料庫例項和叢集資料庫資料庫
- 19C 單例項資料庫安裝單例資料庫
- duplicate複製資料庫(rac-單例項)資料庫單例
- ORACLE 單例項完全解除安裝資料庫Oracle單例資料庫
- 恢復RAC資料庫到單例項(ASM)資料庫單例ASM
- 單資料庫捕獲應用例項——流資料庫
- 例項,資料庫,資料字典與資料庫建立的關係資料庫
- 達夢資料庫單例項轉實時同步叢集資料庫單例
- mongodb關閉資料庫例項MongoDB資料庫
- oracle資料庫例項狀態Oracle資料庫
- Oracle例項和Oracle資料庫Oracle資料庫
- 建立ASM例項和資料庫ASM資料庫
- oracle資料庫與oracle例項Oracle資料庫
- 資料庫中的XML應用例項 (轉)資料庫XML
- 資料庫–如何連線RDS例項,使用雲資料庫?資料庫
- Oracle 11G資料庫單例項安裝Oracle資料庫單例
- 連線RAC資料庫中單個例項(一)資料庫
- Window下安裝Oracle ASM單例項資料庫OracleASM單例資料庫
- 單例項恢復RAC資料庫步驟(三)單例資料庫
- 單例項恢復RAC資料庫步驟(二)單例資料庫
- 單例項恢復RAC資料庫步驟(一)單例資料庫
- 連線RAC資料庫中單個例項(二)資料庫