rhcs

更新时间:2024-05-26 14:46:01 阅读量: 综合文库 文档下载

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

Rhcs安装

简介:RHCS (RedHat Cluter Suite, RHCS)是一套综合的软件组件,可以通过在部署时采用不同的配置,以满足对高可用性,负载均衡,可扩展性,文件共享和节约成本的需要。(redhat最多支持16个节点)

1.软件安装:

yum install cman rgmanager system-config-cluster luci ricci ipmitool –y

2.ilo设置:

(此为两台Hp DL580 G7设备)

1>.开机按F8进入界面,先将dhcp关闭

2>.设置ilo

分别将两台机器重启按F8进入,把ip和netmask、gateway,然后保存退出。 将两台ilo用网线连接到交换机。

3.IP信息

[root@Nms ~]# cat /etc/hosts

# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6

10.10.13.27 Nms 10.10.13.26 Web 10.10.13.31 oraserver 10.10.13.23 Web-1 10.10.13.24 Nms-1

《节点1》 《节点2》

《vip》

《节点2上的ilo》 《节点1上的ilo》

两台机/etc/hosts配置同步

4.存储信息

磁阵DS4300划分两个lvm分别为:

/dev/mapper/ORA_VG-ORAARCH 挂载点 /oraarch /dev/mapper/ORA_VG-ORADATA 挂载点 /oradata 两个节点都需创建挂载点/oraarch /oradata

5.RHCS配置

只需在一台节点上配置,将配置文件复制到另外一节点即可。例如我在26上配置:

输入命令:system-config-cluster即可调出配置界面

1>.第一次运行时会提示建立一个新的配置文件。

2>.给双机起名字:

这里我命名为ora-ha。注意一个局域网内不能有两个重名的Cluster。

3>.建立两个节点:

选定左端的Cluster Nodes,按Add a Cluster Node来添加cluster节点Web 和Nms。注意这里添加的节点名需要能被正确解析,在/etc/hosts文件中添加相关记录,解析的IP地址为心跳IP。

4>.添加fence设备

先建立好Fence Device,然后再编辑节点的失效设备配置.在配置主界面选择?Fence Device 再点击右下角的 “Add a Fence Device”,如下图所示选择IPMI fence。添加两个fence

Name:Web-1 和/etc/hosts匹配。 IP Address:为开机按F8设置的ilo ip。 Login:ilo的登录名,默认为Administration Password:为ilo密码,在机器前方卡片显示 Auth Type:PASSW0RD (中间是数字零)

5>.建立fence设备和节点的对应关系

使每个节点可以通过fence设备对节点的开关机、重启进行管理或对节点的状态进行查询。

6>.创建一个失效域:

1).只有两个节点

选择Restrict Failover To This Domains Members,表示只允许在这两个节点进行服务轮换。

2).若两台以上节点

选择Prioritized List 用于设定轮换的优先级。

7>.创建资源

1).先选择 IP Address 创建的浮动ip 10.10.13.31

Monitor link 链路控制器须选上。

2).再选择File System创建文件系统资源

Name:oraarch 共享文件资源的名字

File System Type:ext3 我这里的文件是ext3格式 Mount point : /oraarch 文件挂载到26节点的路径

Device:/dev/mapper/ORA_VG-ORADATA 磁阵上面须挂载的lvm路径名称 Options:执行mount指令时的特殊参数,与mount指令的\参数相同

Force unmount:一旦服务要求切换,在进行umount操作时使用-f参数

Reboot host node if unmount fails: 若umount失败,则尝试对此系统进行重启操作。

Check file system before mounting : 挂载文件系统前通过fsck命令对文件系统进行检查,这可以更好地保证文件系统的完整性,但对于大文件系统来说,这将花费很长的时间。

3).创建数据库启动脚本的名臣以及脚本存放的路径

8>.创建集群服务

点击Failover Domain:将创建的失效域oraserver 添加进来。

点击 Add a share Resource to thisi service 将刚才在 《source》里创建的vip 、system、script添加进来。

Recover Policy 表示当发现节点失效时,系统如何操作: Restart:表示重启资源 《Resource》。 Relocate:表示切换资源到另外一个节点。 Disable:表示需要手工切换节点,没有实际意义。 根据实际情况选择。

保存退出。然后将两个节点/etc/cluster/cluster.conf同步

6.创建脚本

在两个节点/etc/init.d/ora_script 创建oracle启动脚本并给予权限。具体脚本如下: [root@Web ~]# cat /etc/init.d/ora_script #!/bin/bash #

# /etc/init.d/dbora #

# chkconfig: 2345 02 98

# description: oracle is meant to run under Linux Oracle Server # Source function library. . /etc/rc.d/init.d/functions

ORACLE_HOME=/home/oracle/product/10.2 ORACLE_SID=ora10ha ORACLE_NAME=oracle

LOCKFILE=\RESTART_RETRIES=3 DB_PROCNAMES=\LSNR_PROCNAME=\

#RETVAL=0

#Start the oracle Server

#The following command assumes that the oracle login will not prompt the password start() {

echo \

tmpfile=/home/oracle/`basename $0`-start.$$ logfile=/home/oracle/`basename $0`-start.log #

# Set up our sqlplus script. Basically, we're trying to # capture output in the hopes that it's useful in the case # that something doesn't work properly. #

echo \echo \

su - $ORACLE_NAME -c \

if [ $? -ne 0 ]; then

echo \echo \return 1 fi #

# If we see:

# ORA-.....: failure, we failed #

rm -f $tmpfile

grep -q \if [ $? -eq 0 ]; then rm -f $tmpfile

echo \echo \return 1 fi

echo \

((su - $ORACLE_NAME -c \2>&1) || return 1 #return $?

if [ -n \touch $LOCKFILE fi

#/usr/local/tomcat/bin/catalina.sh start return 0 }

stop() {

echo \

declare tmpfile declare logfile

tmpfile=/home/oracle/`basename $0`-stop.$$ logfile=/home/oracle/`basename $0`-stop.log if [ -z \echo \else

echo \return 0 fi

# Setup for Stop ...

echo \echo \

su - $ORACLE_NAME -c \if [ $? -ne 0 ]; then

echo \echo \return 1 fi #

# If we see 'failure' in the log, we're done. #

rm -f $tmpfile

grep -q failure $logfile if [ $? -eq 0 ]; then echo

echo \echo \return 1 fi

status $LSNR_PROCNAME if [ $? -ne 0 ] ; then if [ -n \rm -f $LOCKFILE fi

return 0 # Listener is not running fi

((su - $ORACLE_NAME -c \2>&1) || return 1

if [ -n \rm -f $LOCKFILE fi return 0 }

get_lsnr_status() {

declare -i subsys_lock=$1

status $LSNR_PROCNAME

if [ $? == 0 ] ; then

return 0 # Listener is running fine elif [ $subsys_lock -ne 0 ]; then return 3

elif [ $? -ne 0 ] ; then return 1 fi }

get_db_status() {

declare -i subsys_lock=$1 declare -i i=0 declare -i rv=0 declare ora_procname

for procname in $DB_PROCNAMES ; do

ora_procname=\

status $ora_procname if [ $? -eq 0 ] ; then

# This one's okay; go to the next one. continue

elif [ $subsys_lock -ne 0 ]; then return 3

elif [ $? -ne 0 ] ; then return 1 fi

done }

update_status() {

declare -i old_status=$1 declare -i new_status=$2

if [ -z \return $old_status fi

if [ $old_status -ne $new_status ]; then return 1 fi

return $old_status }

status_ias() {

declare -i subsys_lock=1 declare -i last #

# Check for lock file. Crude and rudimentary, but it works #

if [ -z \subsys_lock=0 fi

# Check database status get_db_status $subsys_lock

update_status $? # Start last=$?

# Check & report listener status get_lsnr_status $subsys_lock update_status $? $last last=$?

# Check & report opmn / opmn-managed process status #get_opmn_status $subsys_lock #update_status $? $last #last=$? #

# No lock file, but everything's running. Put the lock # file back. XXX - this kosher? #

if [ $last -eq 0 ] && [ $subsys_lock -ne 0 ]; then touch $LOCKFILE fi

return $last }

restart() {

echo -n \stop start echo }

case \start) start exit $? ;; stop) stop exit $? ;; status) status_ias exit $? ;;

restart|reload) stop start ;; *)

echo \exit 1 ;; esac exit 0

7.最终配置文件:

#cat /etc/cluster/cluster.conf

《如果直接在配置文件里修改将版本config_version +1》

ipaddr=\

ipaddr=\

Top