Convert Non RAC to RAC database for 11g or 10g 联系客服

发布时间 : 星期四 文章Convert Non RAC to RAC database for 11g or 10g更新完毕开始阅读e49237f8e53a580217fcfe0c

Convert Non RAC to RAC database for 10g/11g/11gr2

In this demo we are converting a Non RAC database dbtest on host rac01 to a RAC database with instance dbtest1 and dbtest2 on host rac01 and rac02 respectively. 1. on the first node rac01

Make a full database backup of the single-instance database before you change anything. 1) Install Oracle Clusterware on all nodes you intend to have as cluster members.

2) If the Non RAC database is running from a Non RAC RDBMS home Install Oracle Database Software with Real Application Clusters option on existing and all new nodes.

2) Configure the cluster listener using netca or manually from new cluster RDBMS Home or Grid Infrastructure home in case of 11gr2. Eventually stop the single instance listeners when they are running on one of the clustered nodes in case they are using the same listener ports. Ideally, use the ?LISTENER? as name for that listener.

3) Restore the backup of datafiles, redo logs, control file to a shared storage. 4) Take a backup of original single-instance pfile. cp /opt/oracle/product/11gr2/dbs/initdbtest.ora to /opt/oracle/product/11gr2/dbs/initdbtest_bkp.ora vi initdbtest_bkp.ora

Add the following entry in pfile, e.g. for a two node RAC cluster *.cluster_database = TRUE

*.cluster_database_instances = 2 *.undo_management=AUTO

*.remote_listener=listeners_dbtest for 10g/11gr1 or

*.remote_listener=?scan-name:1521? for 11gr2

dbtest1.undo_tablespace= UNDOTBS1 (undo tablespace that already exists) dbtest1.instance_name=dbtest1 dbtest1.instance_number=1 dbtest1.thread=1

dbtest1.local_listener=listener_rac01 dbtest2.instance_name=dbtest2 dbtest2.instance_number=2

dbtest2.local_listener= listener_rac01 dbtest2.thread=2

dbtest2.undo_tablespace=UNDOTBS2 dbtest2.cluster_database = TRUE

dbtest2.cluster_database_instances = 2

5) change the location of control file in parameter file local drive to shared cluster file system location ie control_files=?/opt/oracle/data/control01.ctl? to ie control_files=?/opt/oracle/data/control01.ctl?

6) create spfile from pfile( spfile should be stored in shared device) export ORACLE_SID=dbtest1 sqlplus “/ as sysdba”

create spfile=?/opt/oracle/data/dbtest/spfiledbtest.ora? from pfile=? /opt/oracle/product/11gr2/dbs/initdbtest_bkp.ora ?; exit

7 ) Create the $ORACLE_HOME/dbs/initdbtest1.ora with below entry spfile= ?opt/oracle/data/dbtest/spfiledbtest.ora? 8 ) create new password file for dbtest1 instance. orapwd file=orapwdbtest password=pass12 9) start the database in mount stage

10) Rename the datafile, redo logs to new shared device

alter database rename file ?? to ?

Add second instance redo logs (or more when multiple instances will be started)

alter database

add logfile thread 2

group 4 (?/opt/oracle/data/dbtest/redo04.dbf?) size 50M,group 5

(?/opt/oracle/data/dbtest/redo05.dbf?) size 50M,group 6 (?/opt/oracle/data/dbtest/redo06.dbf?) size 50M;

alter database enable public thread 2;

12) create the second (or more) instance undo tablespace from existing instance CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE ?/opt/oracle/data/dbtest/undotbs02.dbf? SIZE 512M ;

13) run $ORACLE_HOME/rdbms/admin/catclust.sql to create cluster database specific views within the existing instance 2. On node rac01 and other nodes

14) Set ORACLE_SID and ORACLE_HOME environment variables on the second node 15) Create the $ORACLE_HOME/dbs/initdbtest2.ora with below entry spfile= ?opt/oracle/data/dbtest/spfiledbtest.ora?

16) create new password file for second instance ORCL2 instance as in point 8 orapwd file=orapwdbtest2 password=pass12 17) Start the second Instance

3. On node rac01

18) After configuring the listener,you have to add the database in cluster as below srvctl add database -d dbtest -o /opt/oracle/product/11gr2 srvctl add instance -d dbtest -i dbtest1 -n rac01 srvctl add instance -d dbtest -i dbtest2 -n rac02