安装heartbeat时先要进行规划:
节点 服务ip 通讯ip 主机名
nod1 192.168.1.188/24 100.100.100.100/24 tianlong1.network
nod2 192.168.1.189/24 100.100.100.110/24 tianlong2.network
vip:192.168.1.190
软件的安装:
heartbeat-2.0.4-2.1.i386.rpm
heartbeat-devel-2.0.4-2.1.i386.rpm
heartbeat-ldirectord-2.0.4-2.1.i386.rpm(并非必要的文件)
heartbeat-pils-2.0.4-2.1.i386.rpm
heartbeat-stonith-2.0.4-2.1.i386.rpm
ipvsadm-1.24-6.i386.rpm
libnet-1.1.2.1-2.1.i386.rpm
方法:用rpm命令分别将软件安装
修改两台机器的/etc/hosts文件主要是将
nod1 192.168.1.188/24 100.100.100.100/24 tianlong1.network
nod2 192.168.1.189/24 100.100.100.110/24 tianlong2.network
保证两台机器的/etc/hosts文件一样
并且每台机器均有vip 可以用netconfig 进行配置。注意:虚拟vip一定要和服务ip在同一网段的,vip一定要在最后培植可以减少很
多麻烦。
软件安装完成后把../usr/share/doc/heartbeat-2.0.4目录下的ha.cf haresources authkeys这三个文件拷到/etc/ha.d/目录下面。
把/usr/lib64目录下的heartbeat-2.0.4这个目录拷到/usr/lib目录下面。
下面进行配置:首先是对启动服务的配置本例中是针对oracle 这个服务所以先编辑oracle这个服务脚本
#!/bin/sh
#
# chkconfig: 2345 99 01
# description: oracle 9 Server
#[ -d /u01/app/oracle/9.1.0/db_1 ] || exit 0
if [ ! -d /u01/app/oracle/9.1.0/db_1 ];
then
echo "The /u01/app/oracle/9.1.0/db_1 dirtory isn't exists"
exit 1
fi
# killproc
#oracle_env
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.1.0
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=charge
export ORACLE_TERM=vt100
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
oracle_user=oracle
start(){
echo -n $"Starting Oracle server: "
su - "$oracle_user"< lsnrctl start
sqlplus /nolog < connect /as sysdba
startup
EOS
EOO
}
stop(){
echo -n $"Stoping Oracle server: "
su - "$oracle_user"< lsnrctl stop
sqlplus /nolog < connect /as sysdba
shutdown immediate
EOS
EOO
}
case "$1" in
start)
#start listener and database
start
touch /var/lock/subsys/orad
;;
stop)
#stop listener and database
stop
rm -f /var/lock/subsys/orad
;;
restart)
#Restart listener and database
stop
sleep 3
start
;;
status)
#watch oracle run status
status oracle
;;
*)
echo "Usage: {post.content} [start|stop|restart|status]"
echo
;;
esac
。具体的变量设置可以在/home/oracle/.bash-profile这个文件中查看切记不可盲目照抄。
编好后可以进行保存然后赋权限chmod 755 /etc/init.d/oracle
然后对heartbeat进行配置:
首先在/etc/ha.d/下面对authkeys进行认证配置
auth 1
1 crc(本例中用第一种认证方式具体可以根据实际要求自行选择认证方式)
修改authkeys的权限改为600
ha.cf的配置文件:logfile /var/log/ha-log # Log file address
keepalive 2 # Heartbeat interval
deadtime 20 # dead time
warntime 10 # warning timez
udpport 694 # Heartbeat port
bcast eth1 # Linux Heartbeat interface
auto_failback off # the failure node automatic comes back automaticly
node ha1 # list node
node ha2 # list node
ping 192.168.1.1 #check the node health status可以选择一个经常开机的主机的ip 尽量不要用客户机的ip这样可以减少很多不
必要的麻烦;
respawn hacluster /usr/lib/heartbeat/ipfail
(3) haresources. 配置资源文件,这个是heartbeat提供服务的关键
nod1 IPaddr::192.168.1.190 oracle
如果是通过共享磁盘的 话那么我们要设置数据库监听和tnsnames.ora
两节点上的Listener.ora 中IP可以配置成Active ip,这样在各个tnsnames.ora里面就需要使用这个Active ip,在本例为
192.168.18.200.
也可以两节点上Listener.ora 中IP仍然使用各自真实IP,这样tnsnames.ora需要配置connect-time failover策略,如下:
HA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.188)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.189)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ha)
)
)
。
然后启动服务即可进行测试。
停掉主节点的服务网卡然后用客户端连接如果仍然能连接成功那么我们成功了。
注意启动服务时虚拟ip的激活是要一段时间的当用ifconfig可以看到虚拟ip的时候说明虚拟ip已经启动成功了。
注意:在/etc/ha.d/resource 目录下有个文件filesystem这个是设置设备随heartbeat启动而挂载的命令这个命令要写在heartbeat的配置文件中的否则不会随服务的启动而挂载
有任何疑问请联系qq:1091262364
filesystem::/dev/sda::/XXXX/:: server名
(在heartbeat上挂载文件系统)
阅读(1612) | 评论(0) | 转发(1) |