第 1 页 共 10 页
在ROSE HA中配置Oracle服务的注意事项
在ROSEHA中配置Oracle服务,
1. 选择 Oracle类型(TYPE)
2. SID的值指的是Oracle数据库实际的环境变量ORACLE_SID的值, 也就是在创建Oracle数据库时指定的SID的值, 这里两者必须完全相同,严格区分大小写.
3. Active IP 地址指的是Oracle数据库提供给客户端访问的IP地址,这也是需要在oracle的
listener.ora和tnsnames.ora中需要配置的IP地址,这个地址不能是主机的IP地址.; Active
Ethernet一项为空; Active Subnetmask 按照实际需要的掩码填写
4. Active Volume 指的是磁盘阵列上安装Oracle数据库的共享盘, 在主机(Active)上对应的设
备名称; Backup Volume 指的是磁盘阵列上安装Oracle数据库的共享盘, 在备机(Backup)上对应的设备名称; 实际上Active Volume和Backup Volume都指的是磁盘阵列上的同一个共享盘(安装Oracle的设备); MOUNT POINT指的是这个安装有数据库的共享盘对应的mount
点(目录), 该目录结构在两台主机上必须完全相同. 说明: 通常这三项可以为空, 也就是不填写任何内容, 在这种情况下, 关于共享盘的mount 操作可以通过在ora_start.sh 和 ora_stop.sh 编写对应的mount 和 umount 语句来完成.
5. RESTART TIMES指的是oracle服务出错以后,在本地尝试重新启动oracle服务的次数,如果
该数值为0, 则当本地oracle服务失败后,ROSEHA会直接切换该服务到备机,而不会在本地
尝试重启.
6. SERVICE NAME 是在ROSEHA中区分识别各个服务的名称,其名称可任意取,但每个服务
(在有多个服务时)的名称必须唯一.
7. IP HOLDING NIC,指的是两台主机上分别用来支持Active IP的网卡, 鼠标点击网卡名称后,
该项标识为黑色,表示该网卡已被选择. 8. AGENT LICENSE 填写ROSE公司提供的license,全部大写。
9. AGENT SCRIPT 保持缺省值,这里缺省是ROSE提供的检测Oracle的Agent程序
ha_ag_oracle.x, 该文件存放在 /opt/roseha/bin/ 目录下, 该文件是二进制执行文件,用户直接使用,无须修改 10. START / STOP Script 指的是启动脚本文件和停止脚本文件. 缺省模板文件是 ora_start.sh
和 ora_stop.sh文件, 这两个文件也存放在/opt/roseha/bin/ 目录下. 在实际工作中,是一定要根据实际情况对这两个脚本文件进行修改的, 而且是每台主机上的这两个文件都必须根据本地主机的实际情况进行本地化之后才能使用 11. 点击create按钮完成本服务的创建.
第 2 页 共 10 页
关于修改ora_start.sh 和 ora_stop.sh 脚本文件的说明
在本实际案例中,磁盘阵列为A1000,卷管理软件是 RAID Manager 6.1. 通过RAID Mnamager管理的卷可以在主机上当作普通的本来硬盘一样处理,可以直接作mount等动作,而不必先执行一些专门的激活卷的动作.因此在本案例的脚本中, 将看不到特别的卷处理步骤, 如果是采用的Volume Manager 或 disk suit 作为卷管理软件, 则在这两个脚本中将会有相应的处理步骤在mount动作之前执行, 使得共享盘可以在本地主机上象普通硬盘一样可以作mount等动作.
脚本中红色部分需要根据实际情况,修改为实际的真实的值
ora_start.sh 脚本文件实例 #!/bin/sh
out=$HAHOME/bin/APIOUT.x JOBNAME=$2
# 指定实际oracle数据库使用的共享盘的设备名称 (语句组一)
# 如果在这里处理共享盘的mount等动作, 则可以让GUI 配置界面中的 Active Volume, # Backup Volume, 以及 Mount Point 三项保持空 #
DISKDEV=/dev/dsk/c1b0t0d0s1
第 3 页 共 10 页
MOUNTPOINT=/oracle
# 判断是否需要对共享盘作fsck动作, 需要才作fsck #
fsck -m $DISKDEV if test $? -eq 32 then
${out} \ fsck -y $DISKDEV
fi
# mount共享盘到指定的mount 点目录, 这里需要指定实际的mount点目录 #
mount -F vxfs $MOUNTPOINT $DISKDEV
# 判断 mount共享盘的操作是否成功, 如果不成功终止脚本的执行 #
grep $DISKDEV on $MOUNTPOINT >/dev/null 2>&1 if test $? -ne 0 then
${out} \
exit fi
# 判断oracle 数据库是否已经启动过, 如果已经启动则结束本次启动动作; 如果没有启动 # 则启动
#
/opt/roseha/bin/ha_ag_oracle.x $JOBNAME 0 if test $? -eq 1 then
${out} \ exit else ${out} \
# su 到 实际的 oracle 用户,
# 首先根据实际的安装路径调用 svrmgrl 程序来启动数据库, # 命令中使用到的命令文件 oraclstart.cmd需要现场手工编写. # 然后根据实际的安装路径调用 lsnrctl 程序来启动 listener 进程
#
第 4 页 共 10 页
su - oracle -c \/oracle/bin/svrmgrl < /opt/roseha/bin/oraclestart.cmd\
su - oracle -c \/oracle/bin/lsnrctl start\
# 启动Oracle数据库的另外一种写法,直接将命令写在shell中,不需单独创建命令文件
# su - oracle -c \/oracle/bin/svrmgrl <
connect internal startup exit !\
# su - oracle -c \/oracle/bin/lsnrctl stop LISTENER\
# 启动 Oracle 9i 的脚本命令写法
# su - oracle -c \/export/home/oracle/app/oracle/product/9.2.0/bin/sqlplus \\\# # #
startup exit !\
/ as sysdba \\\<
# su - oracle -c \/export/home/oracle/app/oracle/product/9.2.0/bin/lsnrctl
start\
fi
# 补充说明:
# 在连接到 Oracle 数据库时, # 在 Oracle 8i 中使用命令 # svrmgrl
# 在 Oracle 9i 中使用命令
# sqlplus “ / as sysdba “
# 报告脚本执行完成
#
${out} \
ora_start.sh 脚本文件实例 中调用到的 oracle启动命令文件 oraclestart.cmd (本文件缺省没有,
需要现场手工编写, 内容如下)
connect internal startup
exit
脚本中红色部分需要根据实际情况,修改为实际的真实的值
ora_stop.sh 脚本文件实例
第 5 页 共 10 页
#!/bin/sh
out=$HAHOME/bin/APIOUT.x JOBNAME=$2
# 指定实际oracle数据库使用的共享盘的设备名称 (语句一)
# 如果在这里处理共享盘的mount等动作, 则可以让GUI 配置界面中的 Active Volume, # Backup Volume, 以及 Mount Point 三项保持空 #
DISKDEV=/dev/dsk/c1b0t0d0s1 MOUNTPOINT=/oracle
# 停止oracle数据库, 先停listener, 然后停数据库, oraclestop.cmd文件需要手工编写 #
/opt/roseha/bin/ha_ag_oracle.x $JOBNAME 0 if test $? -ne 0
then ${out} \ su - oracle -c \/oracle/bin/lsnrctl stop\
su - oracle -c \/oracle/bin/svrmgrl < /opt/roseha/bin/oraclestop.cmd\
# 停止Oracle数据库的另外一种写法,直接将命令写在shell中,不需单独创建命令文件
# su - oracle -c \/oracle/bin/lsnrctl stop LISTENER\# su - oracle -c \/oracle/bin/svrmgrl <
connect internal shutdown abort exit !\
# 停止 Oracle 9i 的脚本命令写法
# su - oracle -c
\/export/home/oracle/app/oracle/product/9.2.0/bin/lsnrctl stop\# su - oracle -c
\/export/home/oracle/app/oracle/product/9.2.0/bin/sqlplus \\\sysdba \\\#
# shutdown immediate
# shutdown abort # exit # !\