一、数据库系统规划目标
本手册目标是在建立一个由两台服务器组成的ORACLE 10G RAC。服务器采用IBM AIX系统,两台服务器共享一个磁盘阵列。在本文档中,对系统基本参数和规划目标作如下假设。
1、服务器名称及其实际网络地址
服务器名称指服务器内部的识别名称,该名称可由hostname命令得到。集群系统中的每台服务器至少需要2个网络接口,其中一个是用于集群服务器间内部通讯的私有地址。每个网络接口在安装时必须赋给一个实际的IP地址,该地址可使用ifconfig命令查询得到。另外,还需要为每台服务器准备一个虚拟地址,该地址不与网卡绑定,仅在RAC系统中使用。具体的设置情况假设如下(接口名称必须对应):
服务器名称 公共地址(接口名称) 私有地址(接口名称) 虚拟地址
RAC1 10.120.50.10(en0) 192.168.0.1(en1) 10.120.50.20
RAC2 10.120.50.11(en0) 192.168.0.2(en1) 10.120.50.21
默认网关地址:10.120.50.1
(#route add default 10.120.50.1; smitty route)
hosts文件设置示例:
127.0.0.1 localhost localhost.localdomain
10.120.50.10 rac1
192.168.0.1 rac1_private
10.120.50.20 rac1_virtual
10.120.50.11 rac2
192.168.0.2 rac2_private
10.120.50.21 rac2_virtual
二、硬件及操作系统要求
1、硬件要求
内存2GB以上(lsatter -El sys0 -a realmem)
交换分区2GB(lsps -a)
tmp目录>400MB(df -k /tmp)
2、操作系统要求
ORACLE 10G R2兼容操作系统为AIX 5.2.0.5(oslevel -r),HACMP版本为5.2。
需要安装如下软件包
(lslpp -l <package_name>; smit install_all,smit installp):
bos.adt.base bos.perf.perfstat
bos.adt.lib bos.perf.libperfstat
bos.adt.libm bos.perf.protocols
rsct.basic.rte
xlC.aix50.rte:7.0.0.4以上版本
xlC.rte:7.0.0.1以上版本
检查安装补丁
(instfix -i -k <PATCH_NAME>, smit update_all,smit updatep):
IY58143 IY59386 IY60930 IY66513
IY61034 IY61770 IY62191 IY60759
IY86296(无此补丁,Oracle将无法找到集群节点)
IY73570(安装补丁10.2.0.3时所需)
IY73568(安装补丁10.2.0.3时所需,并已安装XL C)
IY73569(安装补丁10.2.0.3时所需,并已安装XL C)
三、存储设置
1、ORACLE数据文件LV创建
该步骤在一台节点服务器上执行,在其他服务器导入VG设置(importvg,exportvg, varyonvg,varyoffvg)。
ORACLE CLUSTERWARE和DATABASE软件以及归档日志需要安装和放置在本地文件系统中,而数据文件和日志文件则建议使用裸设备。假设磁盘阵列在操作系统中的设备名称为hdisk2。存储系统的设置步骤如下:
(1)创建LVG,对应PV为整个hdisk2, 名称为ORAVG,PP大小建议128MB。(MKVG)
(2)为各数据文件创建LV,LV类型为raw。(MKLV)
需创建的裸设备LV如下(每个LV大小至少为1个PP):
rac_redo01, rac_redo11
rac_redo02, rac_redo12
rac_redo03, rac_redo13 各512MB
rac_control01, rac_control02,
rac_control03 各128MB
rac_spfile 128MB
rac_ocr01,rac_ocr02,rac_ocr03 各128MB
rac_voting01,rac_voting02
rac_voting03 各128MB
rac_system01 2GB
rac_temp01,rac_temp02 各4GB
rac_sysaux 2GB
rac_user01 2G
rac_undotbs01,rac_undotbs02 4GB
rac_maximo01,rac_maximo02
rac_maximo03,rac_maximo04
rac_maximo05,rac_maximo06 各20GB
2、ORACLE软件LV及存储路径创建
该步骤在每个集群节点上执行(smitty chvg)。
ORACLE软件需要安装在文件系统中,ORACLE_BASE路径假设为/oracle。/oracle目录保证10GB以上的空间,建议使用独立的LV挂载到/oracle目录。
在rootvg中创建一个15G的的LV(MKLV),该LV挂载到/oracle。
创建INVENTORY安装目录:/oracle/oraInventory
创建CRS安装目录:/oracle/product/10.2.0/crs
创建DATABASE安装目录:/oracle/product/10.2.0/db_1
四、HACMP配置
HACMP在盘阵VG(ORAVG)创建后进行配置,并且需要将ORAVG加入到HACMP的资源组中。
相关命令:
smitty clstart smitty clstop simtty hacmp
cfgmgr -v smitty chinet smitty chtcpip
五、系统用户及系统参数设定
该步骤在每台节点服务器上执行。
1、创建用户组和用户(SMITTY SECURITY)
创建用户组(MKGROUP,GROUPADD):dba,hagsuser,GROUPID在每个节点上相同。
创建用户(USERADD):oracle,USERID在每个节点上相同。
将root用户加入dba组。
2、修改用户启动脚本(.profile),加入如下内容
umask 022
ORACLE_BASE=/oracle
export ORACLE_BASE
ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
ORACLE_SID=orasid1 # 另一节点ORACLE_SID=orasid2
export ORA_CRS_HOME ORACLE_HOME ORACLE_SID
PATH=$ORACLE_HOME/bin:$ORACLE_CRS_HOME/bin:$PATH
export PATH
export AIXTHREAD_SCOPE=S
3、修改目录及裸设备文件属性
----------------------------------------------------------------
目录(含子目录)或文件 所有者 读写属性
----------------------------------------------------------------
/oracle oracle:dba 775
/dev/rrac_* oracle:dba 660
/dev/rrac_voting* oracle:dba 644
/dev/rrac_ocr* root:root 660
----------------------------------------------------------------
4、修改用户SHELL LIMITS参数(SMITTY CHUSER)
Soft FILE size -1
Soft CPU time -1
Soft DATA segment -1
Soft STACK size -1
或在/etc/security/limits文件中增加如下内容:
oracle:
fsize = -1
core = -1
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = -1
5、修改系统参数(SMITTY CHSYS)
Maximum Number of PROCESSES allowed for each user > 2048
6、修改网络参数(/USR/SBIN/NO)
执行下列语句,并重启系统。
/usr/sbin/no -p -o udp_sendspace=65536
/usr/sbin/no -p -o udp_recvspace=655360
/usr/sbin/no -p -o tcp_sendspace=65536
/usr/sbin/no -p -o tcp_recvspace=65536
/usr/sbin/no -p -o rfc1323=1
/usr/sbin/no -p -o sb_max=1310720
/usr/sbin/no -r -o ipqmaxlen=512
或在/etc/rc.net中加入上述语句,加入时去掉-p参数,并重启系统。
7、RLOGIN配置
在每个节点oracle主目录中,创建.rhost文件,文件中仅包含一个'+'字符。
使用rlogin命令测试,登录不需密码则为成功。
六、CLUSTERWARE安装(以oracle用户登录)
1、CLUSTERWARE安装环境验证
(1)./runcluvfy stage -pre crsinst -n RAC1,RAC2 -verbose
2、执行rootpre.sh
3、执行runInstaller
(1)在Specify Inventory directory and credential页面中指定Inventory目录为/oracle/oraInventory,指定操作系统组名称为dba。
(2)在Specify Home Details页面中指定名称为CRS_HOME1,路径为/oracle/product/10.2.0/crs。
(3)在需求检查通过后,点击下一步进入Specify Cluster Configuration页面。安装程序会自动找到集群节点,按照hosts文件中的配置进行修改,如下:
Public Node Name Private Node Name Virtual Host Name 9iRAC Present
rac1 rac1_private rac1_virtual no
rac2 rac2_private rac2_virtual no
(4)在Specify Network Interface Usage页面中,指定私有网络和公共网络接口。
Interface Name Subnet Interface Type
en0 10.120.50.0 Public
en1 192.168.0.0 Private
...... 其余都是Do not use
(5)在Specify OCR Location页面中,选择External Redundency,指定OCR路径为/dev/rrac_ocr01, 如果在点击下一步中出错,检查HACMP是否启动,指定的路径是否为共享设备,裸设备权限是否正确设置。
(6)在Specify Voting Disk Location页面中,选择External Redundency,在路径中输入/dev/rrac_voting01。
(7)在Summary页面中,检查参数是否都正确,然后点击下一步进行安装。
(8)软件安装后,弹出Execute Configuration Scripts页面,打开一个终端,以root登录,执行上述页面中指定的脚本文件,执行完毕后点击OK。
(9)脚本执行完毕后,进入Cofiguration Assistant页面,安装程序将进行虚拟地址的配置,如果网络接口实际地址采用10.*.*.*或192.168.*.*等私网地址,配置过程将会提示错误,那么先忽略该错误,安装程序执行完毕。
(10)如果上一步中Oracle Cluster Verification Utiliy没有执行成功,那么在安装完毕后使用vipca手工设置。修改VIP命令:
$ srvctl modify nodeapps -n node1 -A 192.168.0.1/255.255.255.0
4、验证CRS是否安装成功
$ runcluvfy.sh stage -post crsinst -n RAC1,RAC2 -verbose
七、数据库软件安装(以oracle用户登录)
1、DATABASE安装环境验证
runcluvft.sh stage -pre dbinst -n RAC1,RAC2 -osdba dba -verbose
2、执行runInstaller安装数据库
(1)执行runInstaller命令,在Welcome页面中点击下一步。
(2)在Select Installation Type页面中,选择Custom,下一步。
(3)在Specify Home Details页面中,进行如下设置:
Name:OUTHOME_DB
Path:/oracle/product/10.2.0/db_1
(4)在Specify Hardware cluster installation mode页面中,选择Cluster Installation,并且选中列表中的所有节点,然后下一步。
(5)在Available Product Components页面中,将Enterprise Edition Option目录下除Oracle Partitioning之外的都去除(按需求)。
(6)下一个页面为Product-specific Prerequisite Checks,检查系统安装要求是否满足,如果没有问题,则继续下一步。
(7)在Create Database页面中,选择Install Database Software Only,下一步。
(8)Summary页面,确认是否有误,无误则下一步。
(9)Install页面,等待安装完成。
(10)安装到一定时候,提示执行脚本,则按照提示信息实行相关脚本程序。
八、数据库补丁安装(升级到10.2.0.3,非滚动升级)
1、停止ORACLE进程
安装补丁前,停止crs中的所有服务:$ svrctl stop nodeapps -n nodename
补丁安装完毕后,再启动服务:$ svrctl start nodeapps -n nodename
(1)如果已经创建数据库实例,则运行首先停止所有可能访问数据库的进程
$ emctl stop dbconsole 或者
$ isqlplusctl stop
(2)如果已经创建数据库,关闭节点上所有可能访问数据库的服务:
$ srvctl stop service -d db_name [-s service_name_list [-inst_name]]
(3)如果数据库已创建,关闭节点上所有需升级的ORACLE RAC数据库实例
$ srvctl stop instance -d db_name -i inst_name
(4)如果安装有ASM,则关闭ASM实例。
$ srvctl stop asm -n node
(5)在需升级的节点上关闭所有的RAC应用。
$ srvctl stop nodeapps -n node
(6)以root用户登录,关闭CLUSTERWARE。
# CRS_HOME/bin/crsctl stop crs
补丁打完后,执行以下脚本将自动启动CLUSTERWARE:
# CRS_HOME/install/root102.sh
2、程序备份
10.2.0.3版本的补丁中,由于rawutl工具的问题,会导致创建数据库时无法识别裸设备,因此需恢复10.2.0.1中的rawutl工具,该程序在$ORACLE_HOME/bin目录中。
3、补丁包解压: $ unzip p5337014_10203_AIX64-5L.zip
4、设置环境变量
$ ORACLE_HOME=oracle_home_directory
$ ORACLE_SID=ora_sid
$ export ORACLE_HOME ORACLE_SID
ORACLE_HOME变量在安装CRS补丁时为CRS的HOME路径,在安装数据库时为数据库HOME路径。
5、从内存中删除不使用的模块:# /usr/sbin/slibclean
6、进行系统备份(如果数据库中有已有应用数据)
7、执行互动安装程序(CRS补丁和DATABASE补丁分别安装)
(1) 打开安装程序
$ export DISPLAY=host_addr:0.0
$ xhost + [remote_host_name]
$ cd patch_dir/Disk1
$ ./runInstaller
(2)在Welcome页面,点击下一步。
(3)在Specify Home Details页面,选择需要升级的Oracle主目录。安装CRS的时候选择CRS主目录,安装数据库是选择数据库的主目录。
(4)在节点选择页面,选择所有需要升级的节点。
(5)在Summary页面中,点击Install安装升级补丁。
(6)安装到最后提示执行root.sh脚本,打开一个终端以root登录,执行指定的root.sh脚本程序。
8、安装后数据库参数检查(如果数据库已创建)
(1) 启动数据库侦听器:
单机系统:$ lsnrctl start
集群:$ srvctl start listener -n node
(2) 启动但不加载数据库:SQL> STARTUP NOMOUNT
(3) 判断系统是使用初始化参数文件(initsid.ora)还是服务器参数文件(spfiledbname.ora): SQL> SHOW PARAMETER PFILE;
该命令显示文件路径。
(4) 显示下列参数值,并按要求修改。
SQL> SHOW PARAMETER SHARED_POOL_SIZE
SQL> SHOW PARAMETER JAVA_POOL_SIZE
如果使用的是服务器参数文件(spfile),
建议将SHARED_POOL_SIZE修改到至少150MB:
SQL> ALTER SYSTEM SET SHARED_POOL_SIZE='150M' SCOPE=spfile;
建议将JAVA_POOL_SIZE修改为至少150MB
SQL> ALTER SYSTEM SET JAVA_POOL_SIZE='150M' SCOPE=spfile;
如果使用初始化参数文件(initsid.ora),那么将该文件中的SHARED_POOL_SIZE和JAVA_POOL_SIZE参数修改到至少150MB。
9、执行下列命令和脚本(如果数据库已创建):
$ sqlplus /nolog
SQL> CONNECT SYS/SYS_PASS AS SYSDBA
SQL> STARTUP NOMOUNT
SQL> ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=spfile;
SQL> SHUTDOWN
SQL> STARTUP UPGRAGE
SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> SPOOL off
SQL> SHUTDOWN // 重启数据库
SQL> STARTUP
SQL> @?/rdbms/admin/utlrp.sh
SQL> ALTER SYSTEM SET CLUSTER_DATABASE=TRUE SCOPE=spfile;
SQL> SHUTDOWN // 重启数据库
SQL> STARTUP
$ srvctl start service -d db_name -s service_name
10、在节点上执行changePerm.sh修改文件目录权限(如果数据库已创建)
$ cd $ORACLE_HOME/install
$ ./changePerm.sh
九、数据库创建(使用DBCA)
1、验证DBCA运行要求
runclucfy.sh stage -pre dbcfg -n RAC1,RAC2 -d $ORACLE_HOME -verbose
2、使用NETCA创建侦听进程和配置listener.ora文件 $ORACLE_HOME/bin/netca
(1)提示Select the type of Oracle Net Services configuration时,选择Cluster configuration。
(2)在提示Select the nodes to config时,选择所有列出的节点。
(3)在Welcome页面中的Choose the configuration you would like to do下,选择Listener Configuration。
(4)在Listener Configuration页面中的Select what you want to do下,选择Add。
(5)在提示Listener Name时,填入侦听器名称,如LISTENER。
(6)在提示选择可用协议时,选择TCP。
(7)在提示选择TCP端口时,选择标准端口,或者根据实际需求制定端口号。
(8)在提示Would like to configure another listener时,选择no。
(9)在提示配置完成时,点击NEXT。
3、使用DBCA创建数据库 $ORACLE_HOME/bin/dbca
(1)在Welcome页面中提示选择Select the database type that you would like to create or administer时,选择Oracle Real Application Database。
(2)在Operations页面,提示Select the operation you want to perform时,选择Create Database。
(3)在Node Selection 页面中,选择所有节点。
(4)在Database Template页面中,选择Custom Database。
(5)在Database Identification页面中,设置如下:
Global Database Name: dbname
SID Prefix: dbname
(6)在Management Options页面中,选择Configure Database with Enterprise Manager。
(7)在Database Credentials页面中,选择Use the Same Password for All Accounts, 其下输入的口令均为oracle,或者根据现场情况确定。
(8)在Storage Options选项中,选择Raw Devices。除非有裸设备映射文件,否则Specify Raw Devices Mapping File出留空。
(9)在Recovery Configuration页面中,所有选项留空,归档日志Archive Log可在数据库建立完成后,使用Enterprise Manager设置。
(10)在Database Content页面中,选择按需要选择相应内容和功能,表空间都设置为SYSAUX。点击右下角Standard Database Components,在弹出窗口中选择Oracle JVM,表空间为SYSTEM。
(11)在Database Services页面中,点击左下角Add按钮,弹出Add a Service窗口中,填入数据库服务名称(dbname),点击OK后,在页面左栏Details for dbname中,选择prefered。
(12)在Initialization Parameters中,对参数做如下设置:
Sizing:Block Size = 8192 KB
Sizing:Processes = 400
char sets:Choose the list of char sets:db char sets:GBK
connection mode:dedicated server mode
parameter file:create server parameter file:/dev/rrac_spfile
(13)在Database Storate页面中,在左栏选择Storage:ControlFile,
右栏General也,其中Control File路径分别设置为
/dev/rrac_control01
/dev/rrac_control02
/dev/rrac_control03
右栏Options页,其中值设置为:
Maximum Datafiles = 1024
Maximum Instance = 32
Maximum Log History = 1
Maximum Redo Log Files = 192
Maximum Log Members = 3
并在Tablespaces、Datafiles、Redo Log Groups中,制定路径位置。
(14) 在Creation Options页中,选中Create Database。
如果需要保存配置模板和数据库创建脚本,那么选中“Save as database template”和“Generate Database creation scripts”,并制定名称和路径。
(15) 执行下一步,开始创建数据库。
4、创建表空间
数据库创建完毕后,使用SQLPLUS登录,并在其中使用CREATE TABLESPACE命令创建表空间,命令如下:
$ sqlplus /nolog
SQL> conn / as sysdba
SQL> CREATE TABLESPACE tbs_name
DATAFILE /dev/rrac_db01 size 200M
DATAFILE /dev/rrac_db01 size 200M;
表空间的创建过程将会花费一定的时间,具体由空间大小而定。
十、启动和停止CRS服务
默认情况下CRS自动跟随HACMP启动和停止。手动启动和停止如下:
启动CRS: $ ./crsctl start crs
停止CRS: $ ./crsctl stop crs
查看CRS状态: $ ./crs_stat -t
启动RAC1节点上的CRS应用服务:$ srvctl start nodeapps -n RAC1
停止RAC1节点上的CRS应用服务:$ srvctl stop nodeapps -n RAC1