近期由于手上有几套数据库需要安装,有空闲机器可用,做了下单实例转换RAC的测试。下面对测试过程进行了简单记录。
--修改本地监听配置 (两个节点)
[oracle@a42ams1 ~]$ cd $ORACLE_HOME/network/admin
[oracle@a42ams1 admin]$ vi tnsnames.ora
LISTENER_TESTDB1=(ADDRESS = (PROTOCOL = TCP)(HOST = a42ams1-vip)(PORT = 1521))
LISTENER_TESTDB2=(ADDRESS = (PROTOCOL = TCP)(HOST = a42ams2-vip)(PORT = 1521))
[oracle@a42ams1 admin]$ scp tnsnames.ora a42ams2:`pwd`
--修改参数文件添加集群参数
SQL> create pfile='/home/oracle/testdb.pfile' from spfile;
[oracle@a42ams1 ~]$ vi testdb.pfile (需要注意,调整为集群方式的参数,需要从原有的参数中去除掉,例如UNDO_TABLESPACE)
*.cluster_database=true
*.cluster_database_instances=2
*.remote_listener=a42ams-scan:1521
testdb1.undo_tablespace='UNDOTBS1'
testdb2.undo_tablespace='UNDOTBS2'
testdb1.instance_number=1
testdb2.instance_number=2
testdb1.instance_name=testdb1
testdb2.instance_name=testdb2
testdb1.thread=1
testdb2.thread=2
testdb1.local_listener=LISTENER_TESTDB1
testdb2.local_listener=LISTENER_TESTDB2
--重启单节点实例 (需要修改ORACLE_SID)
[oracle@a42ams1 ~]$ export ORALE_SID=testdb1
[oracle@a42ams1 ~]$ sqlplus / as sysdba
SQL> shutdown immediate;
SQL> startup pfile='/home/oracle/testdb.pfile';
--新增实例2 redo及undo文件
SQL>
alter database add logfile thread 2
group 4 ('+A42AMSDATA1') size 50m,
group 5 ('+A42AMSDATA1') size 50m,
group 6 ('+A42AMSDATA1') size 50m;
SQL>
CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE '+A42AMSDATA1' SIZE 100m;
--启用实例2
SQL>
alter database enable public thread 2;
--创建新参数文件,并修改初始化参数文件
SQL>
create spfile='+A42AMSDATA1' from pfile='/home/oracle/testdb.pfile';
[grid@a42ams1 ~]$ asmcmd
ASMCMD> find A42AMSDATA1 *
+A42AMSDATA1/TESTDB/PARAMETERFILE/spfile.270.946654963
[oracle@a42ams1 ~]$ cd $ORACLE_HOME/dbs
[oracle@a42ams1 dbs]$ vi inittestdb1.ora
SPFILE='+A42AMSDATA1/TESTDB/PARAMETERFILE/spfile.270.946654963'
[oracle@a42ams1 dbs]$ scp inittestdb1.ora a42ams2:`pwd`/inittestdb2.ora
[oracle@a42ams1 dbs]$ scp orapwtestdb a42ams2:`pwd`
--执行集群脚本
SQL>
@?/rdbms/admin/catclust.sql
--启动实例2 (节点2主机)
[oracle@a42ams2 ~]$ mkdir -p /oracle/app/oracle/admin/testdb/adump
[oracle@a42ams2 ~]$ cd $ORACLE_HOME/dbs
[oracle@a42ams2 dbs]$ export ORACLE_SID=testdb2
[oracle@a42ams2 dbs]$ sqlplus / as sysdba
SQL> startup
--数据库实例添加到CRS中
[oracle@a42ams1 ~]$ crsctl stat res -t
[oracle@a42ams1 ~]$ srvctl remove database -d testdb -f
[oracle@a42ams1 ~]$ srvctl add database -d testdb -o $ORACLE_HOME -p +A42AMSDATA1/TESTDB/PARAMETERFILE/spfile.270.946654963
[oracle@a42ams1 ~]$ srvctl add instance -d testdb -n a42ams1 -i testdb1
[oracle@a42ams1 ~]$ srvctl add instance -d testdb -n a42ams2 -i testdb2
[oracle@a42ams1 ~]$ crs_start -all
[oracle@a42ams1 ~]$ crsctl stat res -t