在ROSE HA中配置Oracle服务的注意事项

更新时间:2024-07-06 21:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第 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 # !\

第 6 页 共 10 页

fi

sync

# 卸载共享盘, 这里用到的是ROSEHA通过的大小的UMOUNT命令, 其后跟两个参数: # 一个是 设备名称, 另一个是 该设备对应的mount 点目录

#

/opt/roseha/bin/UMOUNT $DISKDEV $MOUNTPOINT

# 判断是否卸载共享盘成功, 如果不能卸载共享盘, 则强行reboot本机, # 以确保对方主机能够接管成功

#

grep $DISKDEV on $MOUNTPOINT >/dev/null 2>&1 if test $? -eq 0 then

${out} \ARNING] Cannot umount ${DISKDEV}.\ FatalExit fi

# 报告脚本执行完成

#

${out} \

ora_stop.sh 脚本文件实例 中调用到的 oracle停止命令文件 oraclestop.cmd (本文件缺省没有,

# 补充说明:

# 在连接到 Oracle 数据库时, # 在 Oracle 8i 中使用命令 # svrmgrl

# 在 Oracle 9i 中使用命令

# sqlplus “ / as sysdba “

需要现场手工编写, 内容如下)

connect internal shutdown abort exit

第 7 页 共 10 页

关于手工测试ora_start.sh 和 ora_stop.sh 脚本的方法步骤

通常情况下, 在ROSEHA中的配置步骤为: 1. 安装ROSEHA, 准备基本环境

2. 在ROSEHA中配置服务, 点击create完成. 3. 修改启动/停止脚本. 4. 手工测试脚本

5. 在RSOEHA中执行操作及测试

在这里需要说明的是, 在create了一个服务之后, 该服务处于灰色bring out状态,也就是未启动状态. 这时选中该服务, 再点击bing in 按钮,则可以调用ora_start.sh 启动oracle数据库.但是,在刚刚创建好ora这个服务(JOB)的情况下,通常不要先在GUI中执行BringIn的动作,这时应该先单独测试ora_start.sh 和 ora_stop.sh.

1. 在完成JOB的创建后, 离开GUI, 回到终端窗口, 首先确保每台主机的ora_start.sh 和 ora_stop.sh已经编写修改完成.

2. 单独手工测试ora_start.sh 和 ora_stop.sh脚本. 具体方法如下:

a) 确保本机和另外一台主机都没有启动oracle数据库, 没有使用共享卷(没有mount), 没

有挂上 Ative IP地址

b) 在本地先挂上Active IP地址. 因为Oracle 需要的Active IP地址在实际使用时是通过

ROSEHA来挂上的, 而不是通过OS来自动挂上. 因此在手工试验脚本时,需要先手工挂上Active IP地址. 启动oracle的listener需要该Active IP地址.如果Active IP地址是 192.200.200.99, 则可以使用命令: # ifconfig net0 alias 192.200.200.99 up

第 8 页 共 10 页

c) 然后进入到目录/opt/roseha/bin, 可以手工执行 ora_start.sh 来启动oracle数据库, 命令

格式为: # ./<脚本文件名> <参数一: test> <参数二: 该脚本文件对应的服务(在ROSEHA中的JOB)的名称> 例如:

# ./ora_start.sh test ora

其中 ora 是oracle这个服务在ROSEHA中的JOB名称, 出现在服务齿轮图标的下方. 判断ora_start.sh的执行是否正常, 共享盘是否正常mount, oracle数据库是否正常启动, listener是否正常启动. 如果发现有问题则可以及时修改脚本文件 d) 执行 ora_stop.sh 来停oracle数据库, 命令使用方法及格式同上:

# ./ora_stop.sh test ora

其中 ora 是oracle这个服务在ROSEHA中的JOB名称, 出现在服务齿轮的下方 判断 ora_stop.sh 是否执行正常. 如有必要则进行修改

e) 最后手工释放Active IP地址, 即执行ifconfig将Active IP地址down掉 f) 在另外一台主机上 执行 a) 到 e)

g) 当脚本手工测试没有问题后, 先让系统处于a) 状态, 然后则可以继续在ROSEHA中执

行BingIn和BingOut等动作,以及其它的测试项目

在上述的手工测试中,对于发现脚本中的错误,比较有帮助.在实际操作中一定要特别小心仔细.

Oracle数据库配合ROSEHA双机容错的注意事项

在双机中安装oracle数据库, 至少数据库部分需要创建(安装)在共享磁盘阵列上,至于Oracle的应用程序部分则可以安装在两台主机各自的本地硬盘上,也可以安装在共享磁盘阵列上, 但是两台主机的 oracle 用户 以及相应的 dba 组的 ID号均应该保持相同, oracle的安装路径, profile文件的配置, mount 点以及权限等等,均应该相同

listener.ora 和 tnsname.ora 中的HOST一项要设置成虚拟IP地址,这个地址是客户端访问Oracle数据库时用到的IP地址,也就是在ROSEHA中配置的Active IP Address, 此IP地址与两台主机本地的IP地址不同.

listener.ora

# LISTENER.ORA

File:/u01/oracle/app/oracle/product/8.1.6/network/admin/listener.ora # Generated by Oracle configuration tools.

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

Configuration

第 9 页 共 10 页

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.9.10.211)(PORT = 1521)) ) )

(DESCRIPTION = (PROTOCOL_STACK = (PRESENTATION = GIOP) (SESSION = RAW)

)

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.9.10.211)(PORT = 2481)) ) )

SID_LIST_LISTENER = (SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /u01/oracle/app/oracle/product/8.1.6) (PROGRAM = extproc) )

(SID_DESC =

(GLOBAL_DBNAME = jitong)

(ORACLE_HOME = /u01/oracle/app/oracle/product/8.1.6) (SID_NAME = ora8) ) )

tnsnames.ora #

TNSNAMES.ORA

Configuration

File:/u01/oracle/app/oracle/product/8.1.6/network/admin/tnsnames.ora # Generated by Oracle configuration tools.

JITONG =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.9.10.211)(PORT = 1521)) )

(CONNECT_DATA =

(SERVICE_NAME = jitong)

)

)

EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) )

(CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) )

hosts #

# Internet host table #

127.0.0.1 localhost

192.9.10.209 dbe4501 loghost 192.9.10.210 dbe4502

# oracle active IP address 192.9.10.211 oracle

第 10 页 共 10 页

本文来源:https://www.bwwdw.com/article/7dm.html

Top