單例項資料庫手工轉化多例項資料庫
需要說明一下,這篇文章不是介紹將一個單例項的資料庫環境升級為RAC環境,而是介紹如何將一個RAC環境下的單例項資料庫,轉變為多例項資料庫。
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
根據上面的檢查可以發現,資料庫已經安裝RAC選項,但是當前資料庫是單例項資料庫。下面透過手工的方式將當前的資料庫變為RAC環境:
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATA/test/spfiletest.ora
SQL> ALTER SYSTEM SET CLUSTER_DATABASE = TRUE SCOPE = SPFILE;
系統已更改。
SQL> ALTER SYSTEM SET CLUSTER_DATABASE_INSTANCES = 2 SCOPE = SPFILE;
系統已更改。
SQL> ALTER SYSTEM SET INSTANCE_NUMBER = 1 SCOPE = SPFILE SID = 'TEST1';
系統已更改。
SQL> ALTER SYSTEM SET INSTANCE_NUMBER = 2 SCOPE = SPFILE SID = 'TEST2';
系統已更改。
SQL> ALTER SYSTEM SET THREAD = 1 SCOPE = SPFILE SID = 'TEST1';
系統已更改。
SQL> ALTER SYSTEM SET THREAD = 2 SCOPE = SPFILE SID = 'TEST2';
系統已更改。
SQL> ALTER SYSTEM SET UNDO_TABLESPACE = 'UNDOTBS1' SCOPE = SPFILE SID = 'TEST1';
系統已更改。
SQL> ALTER SYSTEM SET UNDO_TABLESPACE = 'UNDOTBS2' SCOPE = SPFILE SID = 'TEST2';
系統已更改。
SQL> ALTER SYSTEM SET LOCAL_LISTENER = '(ADDRESS=(PROTOCOL=TCP)(HOST=172.0.2.62)(PORT=1521))' SCOPE = SPFILE SID = 'TEST1';
系統已更改。
SQL> ALTER SYSTEM SET LOCAL_LISTENER = '(ADDRESS=(PROTOCOL=TCP)(HOST=172.0.2.63)(PORT=1521))' SCOPE = SPFILE SID = 'TEST2';
系統已更改。
修改完RAC環境的初始化引數,可以建立UNDOTBS2表空間和THREAD2使用的REDO.log檔案:
SQL> SELECT FILE_NAME FROM DBA_DATA_FILES
2 WHERE TABLESPACE_NAME = 'UNDOTBS1';
FILE_NAME
--------------------------------------------------------------------------------
+DATA/test/datafile/undotbs1.535.668281229
SQL> SELECT MEMBER FROM V$LOGFILE;
MEMBER
--------------------------------------------------------------------------------
+DATA/test/onlinelog/group_1.530.668281219
+DATA/test/onlinelog/group_2.531.668281219
+DATA/test/onlinelog/group_3.532.668281219
SQL> SELECT GROUP#, THREAD#, SEQUENCE#, BYTES/1024/1024
2 FROM V$LOG;
GROUP# THREAD# SEQUENCE# BYTES/1024/1024
---------- ---------- ---------- ---------------
1 1 391 50
2 1 389 50
3 1 390 50
SQL> CREATE UNDO TABLESPACE UNDOTBS2
2 DATAFILE '+DATA/test/datafile/undotbs2.dbf' SIZE 4G;
表空間已建立。
SQL> ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 4
2 '+DATA/test/onlinelog/redo4.log' SIZE 50M;
資料庫已更改。
SQL> ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 5
2 '+DATA/test/onlinelog/redo5.log' SIZE 50M;
資料庫已更改。
SQL> ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 6
2 '+DATA/test/onlinelog/redo6.log' SIZE 50M;
資料庫已更改。
SQL> ALTER DATABASE ENABLE THREAD 2;
資料庫已更改。
關閉資料庫,設定SID為TEST1,並設定初始化引數inittest1.ora:
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 斷開
bash-3.00$ echo "SPFILE='+DATA/test/spfiletest.ora'" > $ORACLE_HOME/dbs/initTEST1.ora
bash-3.00$ more $ORACLE_HOME/dbs/initTEST1.ora
SPFILE='+DATA/test/spfiletest.ora'
bash-3.00$ export ORACLE_SID=TEST1
嘗試啟動資料庫:
bash-3.00$ sqlplus "/ as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on 星期四 4月 9 11:25:02 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
已連線到空閒例程。
SQL> STARTUP
ORACLE 例程已經啟動。
Total System Global Area 806133760 bytes
Fixed Size 2099064 bytes
Variable Size 195623048 bytes
Database Buffers 603979776 bytes
Redo Buffers 4431872 bytes
資料庫裝載完畢。
資料庫已經開啟。
檢查資料庫狀態:
SQL> show parameter cluster_database
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cluster_database boolean TRUE
cluster_database_instances integer 2
SQL> select instance_number, instance_name from v$instance;
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
1 TEST1
下面到節點上設定初始化引數檔案和SID:
bash-3.00$ export ORACLE_SID=TEST2
bash-3.00$ echo "SPFILE='+DATA/test/spfiletest.ora'" > $ORACLE_HOME/dbs/initTEST2.ora
bash-3.00$ more $ORACLE_HOME/dbs/initTEST2.ora
SPFILE='+DATA/test/spfiletest.ora'
bash-3.00$ mkdir -p /data/oracle/admin/test/adump
bash-3.00$ sqlplus "/ as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on 星期四 4月 9 13:25:12 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
已連線到空閒例程。
SQL> STARTUP
ORACLE 例程已經啟動。
Total System Global Area 806133760 bytes
Fixed Size 2099064 bytes
Variable Size 191428744 bytes
Database Buffers 608174080 bytes
Redo Buffers 4431872 bytes
資料庫裝載完畢。
資料庫已經開啟。
檢查資料庫的狀態:
SQL> SELECT NAME FROM V$DATABASE;
NAME
---------
TEST
SQL> SELECT INSTANCE_NUMBER, INSTANCE_NAME FROM V$INSTANCE;
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
2 TEST2
SQL> SELECT INST_ID, INSTANCE_NUMBER, INSTANCE_NAME
2 FROM GV$INSTANCE;
INST_ID INSTANCE_NUMBER INSTANCE_NAME
---------- --------------- ----------------
2 2 TEST2
1 1 TEST1
資料庫已經變為RAC環境,大部分工具已經基本完成。
在節點2上配置listener.ora以及tnsnames.ora檔案,其中listener.ora配置類似如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = rac11g2)
(ORACLE_HOME = /data/oracle/product/11.1/database)
)
(SID_DESC =
(SID_NAME = TEST2)
(ORACLE_HOME = /data/oracle/product/11.1/database)
)
)
LISTENER_SER2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ser2-vip)(PORT = 1521)(IP = FIRST))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.0.2.63)(PORT = 1521)(IP = FIRST))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)
將RAC資料庫新增到SRVCTL工具配置中:
bash-3.00$ srvctl add database -d test -o /data/oracle/product/11.1/database -p +DATA/test/spfiletest.ora -n test
bash-3.00$ srvctl add instance -d test -i TEST1 -n ser1
bash-3.00$ srvctl add instance -d test -i TEST2 -n ser2
密碼檔案還儲存在檔案系統中,可以在兩個例項上分別儲存密碼檔案,也可以將密碼檔案放到ASM中。這裡就不再描述了,可以參考:http://yangtingkun.itpub.net/post/468/293477
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-592453/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 單例項資料庫工具轉化多例項資料庫單例資料庫
- 多例項資料庫刪除例項資料庫
- 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資料庫中單個例項(二)資料庫