命令行创建Oracle RAC数据库和命令行创建单节点数据库的方法类似。以下为命令行创建Oracle 10g RAC数据库的过程。
(1)设置RAC数据库全局参数,这些参数对所有实例可用,尤其需要设置cluster_database、cluster_database_instances参数。如下所示:
*.db_block_size=8192
*.db_cache_size=52428800
*.background_dump_dest='/oracle/app/admin/racdb /bdump'
*.core_dump_dest='/oracle/app/admin/racdb /cdump'
*.user_dump_dest='/oracle/app/admin/racdb /udump'
*.timed_statistics=TRUE
*.control_files=("/oradata/zhoul//control_01.ctl", "/oradata/zhoul/control_02.ctl")
*.db_name=racdb
*.db_files=500
*.sga_target=5000M
*.pga_aggregate_target=1024M
*.undo_management=AUTO
*.cluster_database=true
*.cluster_database_instances=2
*.remote_listener=LISTENERS_RACDB
(2)设置实例相关参数,其设置格式为ORACLE_SID.参数名。这些参数作用于各自的实例。尤其需要设置local_listener参数,如果不设置容易出现客户端连接时断时续的问题。相关参数如下所示:
rac1.instance_name= racdb1
rac1.instance_number=1
rac1.local_listener=LISTENER_ racdb1
rac1.thread=1
rac1.undo_tablespace=UNDOTBS1
rac2.instance_name= racdb2
rac2.instance_number=2
rac2.local_listener=LISTENER_ racdb2
rac2.thread=2
rac2.undo_tablespace=UNDOTBS2
(3)创建数据库。如下所示(/oradata为共享文件系统):
CREATE DATABASE racdb
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
LOGFILE GROUP 1 ('/oradata/racdb/redo1_01.log') SIZE 100M,
GROUP 2 ('/oradata/racdb/redo1_02.log') SIZE 100M,
GROUP 3 ('/oradata/racdb/redo1_03.log') SIZE 100M
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 2
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/oradata/racdb/system01.dbf' SIZE 325M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/oradata/racdb/sysaux01.dbf' SIZE 325M REUSE
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/oradata/racdb/temp01.dbf'
SIZE 20M REUSE
DEFAULT TABLESPACE users
DATAFILE '/oradata/racdb/users01.dbf'
SIZE 20M REUSE
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO
UNDO TABLESPACE undotbs1
DATAFILE '/oradata/racdb/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
(4)创建2号节点的UNDO表空间。如下所示:
CREATE UNDO TABLESPACE "UNDOTBS2"
DATAFILE '/oradata/racdb/undotbs02.dbf' SIZE 200M REUSE
AUTOEXTEND ON MAXSIZE UNLIMITED;
(5)依次执行下列脚本创建数据字典:catalog.sql、catproc.sql、utlrp.sql、pupbld.sql、catclust.sql。其中catclust.sql主要用于创建CLUSTER数据字典。如果数据库版本为Oracle 9i,则用脚本catparr.sql创建CLUSTER数据字典。
(6)添加2节点的在线日志,如下所示:
alter database add logfile thread 2
group 4 ('/oradata/racdb/redo2_01.dbf') size 100M,
group 5 ('/oradata/racdb/redo2_02.dbf') size 100M,
group 6 ('/oradata/racdb/redo2_02.dbf') size 100M;
alter database enable public thread 2;
(7)将参数文件拷贝至2号节点,启动2号节点数据库。
(8)使用srvctl命令将实例信息注册到OCR里,如下所示:
[oracle@rac1 bdump]$ cd /u01/crs/oracle/product/10.2.0/crs/bin/
[oracle@rac1 bin]$ ./srvctl add database -d racdb -o $ORACLE_HOME
[oracle@rac1 bin]$ ./srvctl add instance -d racdb -i TEST1 -n racdb1
[oracle@rac1 bin]$ ./srvctl add instance -d racdb -i TEST2 -n racdb2
[oracle@rac1 bin]$ ./srvctl start database -d racdb
提示 RAC数据库安装完之后,建议部署OSW监控工具。该工具可以自动采样系统资源的状态,从而为故障分析时提供有力的证据。