本项目添加的脚本主要用于控制集群切换时Oracle数据库监听器和实例的起停。RHCS集群对于脚本有专门的格式要求,通常需要有start、stop等函数进行自动调用。脚本应当先分别保存在/etc/init.d目录下并赋予可执行权限,如本项目脚本名为dbora,使用root账户创建并授权:
# chmod 755 /etc/init.d/dbora
dbora脚本内容如下:
#!/bin/bash export ORACLE_HOME=/oracle/oracle11g #之前配置好的ORACLE_HOME和ORACLE_SID,保险起见在脚本中export一次 export ORACLE_SID=zxbank start() { su - oracle<<EOF echo "Starting Listener...." $ORACLE_HOME/bin/lsnrctl start echo "Starting Oracle11g Server... " sqlplus / as sysdba startup exit; EOF } stop() { su - oracle<<EOF echo "Shutting down Listener......" $ORACLE_HOME/bin/lsnrctl stop echo "Shutting down Oracle11g Server..." sqlplus / as sysdba shutdown immediate; exit EOF } restart() { stop start } status() { ps -ef |grep -v grep |grep ora_smon_${ORACLE_SID} if [ $? = 0 ]; then exit 0 fi } case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status ;; *) echo "Usage: $0 {start|stop|restart|status}" ;; esac
资源添加中选择添加Script:
至此资源全部添加完成,如图所示:
PS:
1、本项目中的共享存储是作为Oracle数据库的Data Area,实例运行其中,因此不能将共享存储同时挂在两个节点上。我们选择了使用HA LVM作为集群资源的方式进行挂载。事实上,我们也可以直接使用脚本来控制/dev/oraclevg/oraclelv的挂载,而不用将其添加到集群资源中。
2、如果项目中使用的共享存储是基于NFS方式共享的(NAS),我们可以直接将存储资源同时挂载在集群节点上,而不用在集群中添加资源。但RHCS也可以直接将NFS添加到集群资源中由集群动态控制NFS挂载在哪个节点。这里再介绍一下NFS文件系统加入集群资源的方法。假设在主机35.1.1.10上有NFS目录/nas,集群节点服务器上有空目录/share。在集群中添加该资源的方法为,“Add”选择NFS/CIFS Mount:
Name:给NFS挂载取个名字;
Mount Point:挂载到集群节点的位置,这里为/share;
Host:远程NFS服务器地址,这里为35.1.1.10;
NFS Export Directory Name or CIFS Share:远程NFS服务器上的NFS共享目录;
其他默认即可,Force Unmount同样建议勾选。
5、创建资源组集群资源需要加入资源组中才能真正被集群中的节点所使用。
点击“Add”创建资源组:
Service Name:给资源组取个名字;
Automatically Start This Service:自动启动集群资源组服务,勾选;
Run Exclusive:集群服务独占方式运行,拒绝其他集群服务运行在节点服务器上,这里是否勾选都行,建议不勾选;
Failover Domain:指定刚才配置的失败转移域;
Recovery Policy:恢复策略,选择Relocate迁移,一旦节点失效立刻迁移到其他节点。
Restart Options:节点重启策略,默认即可。
然后我们需要为资源组添加资源,依次添加之前已经配置好的IP Address,HA LVM和Script资源即可。注意Filesystem资源是添加到HA LVM的子资源而不是直接作为资源组的资源的。完成后如图:
至此,RHCS集群配置完成,可以通过重启节点设备验证集群是否正常工作。