1 环境
(1)节点:SDB1,SDB2 10.2.0.5(ASM/Cluster/DB) on ORACLE Linux 5.8
(2)已经安装完毕ORACLE Cluster、ASM Home(Rac enable)及ORACLE HOME(Rac enabled)
(3)ASM已经正常开启,DATA diskgourp已经正常mount
2 准备init file
在每个节点上建立dump文件夹
[oracle@sdb1 admin]$ mkdir -p RACTEST/bdump RACTEST/adumpRACTEST/cdump
[oracle@sdb1 admin]$ chmod -R 775 RACTEST
使用asmcmd在ASM里创建相应文件夹
ASMCMD> mkdir oradata
ASMCMD> mkdir archivelog
ASMCMD> ls
archivelog/
controlfile/
oradata/
spfile/
onlinelog/
ASMCMD> pwd
+DATA/RACTEST
##dumpfile directory
*.background_dump_dest='/u01/app/oracle/admin/RACTEST/bdump'
*.core_dump_dest='/u01/app/oracle/admin/RACTEST/cdump'
*.user_dump_dest='/u01/app/oracle/admin/RACTEST/udump'
##cluster instance parameter
*.cluster_database=true
*.cluster_database_instances=2
*.control_files='+DATA/RACTEST、/controlfile/control02.ctl','+DATA/RACTEST/controlfile/control01.ctl'
*.db_block_size=8192
*.db_name='RACTEST'
*.db_unique_name='RACTEST'
*.timed_statistics=TRUE
*.undo_management='AUTO'
*.log_archive_dest_1='location=+DATA/RACTEST/archivelog'
*.log_archive_format='log_%t_%s_%r.arc'
*.remote_listener='RACDB_LISTENER'
*.sga_target=600m
##instance specific parameter
#RACTEST3.instance_name='RACTEST3'
#RACTEST3.instance_number=3
#RACTEST3.thread=3
# RACTEST3.undo_tablespace='UNDOTBS03'
RACTEST1.instance_name=’RACTEST1’
RACTEST1.instance_number=1
RACTEST1. undo_tablespace='UNDOTBS1'
RACTEST1. thread=1
RACTEST2.instance_name=’RACTEST2’
RACTEST2.instance_number=2
RACTEST2.thread=2
RACTEST2.undo_tablespace='UNDOTBS2'
3 准备创建数据库脚本
#ASM diskgroup文件路径确定要已经建好
CREATE DATABASE RACTEST
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 ('+DATA/RACTEST / onlinelog/redo01.log')SIZE 100M,
GROUP 2 ('+DATA/RACTEST /redo02.log') SIZE 100M
MAXLOGFILES 16
MAXLOGMEMBERS 5
MAXLOGHISTORY 5
MAXDATAFILES 100
MAXINSTANCES 8
CHARACTER SET US7ASCII
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '+DATA/RACTEST/oradata /system01.dbf'SIZE 325M
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '+DATA/RACTEST/oradata /sysaux01.dbf'SIZE 325M
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '+DATA/RACTEST/oradata /temp01.dbf'SIZE 20M
UNDO TABLESPACE undotbs1
DATAFILE '+DATA/RACTEST/oradata /undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZEUNLIMITED;
在sdb1上开启instance,并运行create database脚本。这里要注意init file里面的cluster_database 和cluster_database_instance要注释掉,因为创建书库只能是在单实例的情况下,不然会提示以下错误:
ORA-01501: CREATE DATABASE failed
ORA-12720: operation requires database is in EXCLUSIVE mode
4 创建password file
在两个node上创建password file
orapwd file=$ORACLE_HOME/dbs/orapwRACTEST1 password=oracle
orapwd file=$ORACLE_HOME/dbs/orapwRACTEST2 password=oracle
5 使用netca创建RAC listener
创建成功后,在两个节点上的tnsnames.ora添加以下:
RACDB_LISTENER =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL =TCP)(HOST = sdb2-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL =TCP)(HOST = sdb1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL =TCP)(HOST = sdb3-vip)(PORT = 1521))
)
6 执行相应sql
i> CATALOG.SQL--creates the views of datadictionary tables and the dynamic performance views
ii> CATPROC.SQL--establishes the usage of PL/SQLfunctionality and
creates many of the PL/SQL Oraclesupplied packages
iii> CATclust.SQL--createsRAC specific views
7 创建instance RACTEST2的undo tablespace与redo
create undotablespace undotbs2 datafile '+DATA/RACTEST/DATAFILE/undotbs2.dbf' size 200m;
alter database add logfile thread 2 group 3('+DATA/RACTEST/onlinelog/redo03.log') size 100m,
2 group 4('+DATA/RACTEST/onlinelog/redo04.log') size 100m;
alter database enable public thread 2;
调整好参数后创建spfile
create spfile='+DATA/RACTEST/spfile/spfile.ora' frompfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initRACTEST1.ora';
8 添加database及instance:
[oracle@sdb1 ~]$ srvctl add database -d RACTEST -o $ORACLE_HOME-p '+DATA/RACTEST/spfile/spfile.ora'
[oracle@sdb1 ~]$ srvctladd instance -d RACTEST -i RACTEST1 -n sdb1
[oracle@sdb1 ~]$ srvctl add instance -d RACTEST -i RACTEST2 -nsdb2
关闭现有数据库,再开启
Srvctl start database –d RACTEST
注意/etc/oratab里面正确添加了
+ASM1:/u01/app/oracle/product/10.2.0/asm/:N
RACTEST2:/u01/app/oracle/product/10.2.0/db_1