mysql高可用(heartbeat+nfs+mysql)
一、准备
三台服务器,分别为两台MYSQL,一台NFS
Mysql1 IP:192.168.1.251
Mysql2 IP:192.168.1.251
NFS IP:192.168.1.253
VIP IP:192.168.1.254
二、NFS安装
系统用的是centos5.5,默认安装的时候NFS已经安装了,现在做的,只是把NFS开启就OK 了,具体配置如下!
创建一个目录/web,把这目录当NFS的主目录
mkdir /web
配置主目录
vi /etc/exports
/web 192.168.1.*(rw,sync,no_root_squash)
exportfs -rv
/web目录,在192.168.1.0网段可读写,输出共享目录!
启动服务
chkconfignfs on
chkconfigportmap on
serviceportmap start
servicenfs start
三、MYSQL安装
在两台MYSQL上执行如下操作,两个一样就OK,等安装完成后修改配置就OK
wget
tar -zxvf mysql-5.1.31.tar.gz
cd mysql-5.1.31
./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-extra-charsets=all
--enable-assembler --enable-thread-safe-client --with-big-tables --with-readline --with-ssl
--with-embedded-server --enable-local-infile --with-plugins=innobase
make;make install
groupadd -g 4881 mysql
useradd -u 4881 -g mysqlmysql
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
sed -i 's/skip-federated/#skip-federated/g' /etc/my.cnf
/usr/local/mysql/bin/mysql_install_db --user=mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql/.
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
chkconfig --level 345 mysql on
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
ldconfig
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
servicemysql start
/usr/local/mysql/bin/mysqladmin -u root password root
servicemysql stop
加载nfs,把数据移到nfs,再修改启动脚本
mkidr–p /web
mount -t nfs 192.168.1.253:/web /web
cd /usr/local/mysql
cp–a var/ /web
修改启动文件,将
vi /etc/init.d/mysql
….
bindir=/usr/local/mysql/bin
if test -z "$datadir"
then
datadir=/usr/local/mysql/var
fi
修改成为
bindir=/usr/local/mysql/bin
if test -z "$datadir"
then
datadir=/web/var
fi
修改完成之后,再启动mysql看看有没有问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
,,没有问题就算是OK了,,第二台只有修改启动文件就OK了。
四、安装及配置heartbeat
wget
wget
orwget
tar -zxvf libnet.tar.gz
cdlibnet
./configure
make;make install
cd ..
groupaddhaclient
useradd -g haclienthacluster
tar -zxvf heartbeat-2.1.3.tar.gz
cd heartbeat-2.1.3
./configure --prefix=/usr/local/heartbeat
make;make install
cp doc/{ha.cf,haresources,authkeys} /usr/local/heartbeat/etc/ha.d/
修改hosts
vi /etc/hosts
192.168.1.251 jboss1.cluster
192.168.1.252 jboss2.cluster
配置authkeys
vi /usr/local/heartbeat/etc/ha.d/authkeys
auth 1
1 crc
配置ha.cf
vi /usr/local/heartbeat/etc/ha.d/ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
auto_failback on
node jboss1.cluster
node jboss2.cluster
udpport 694
ucast eth0 192.168.1.251 //主从互写Ip
ping_group group1 192.168.1.252 192.168.1.251
respawnhacluster /usr/local/heartbeat/lib/heartbeat/ipfail
apiauthipfailgid=haclientuid=hacluster
hopfudge
配置haresources
vi /usr/local/heartbeat/etc/ha.d/haresources
jboss1.clusterIPaddr::192.168.1.254 Filesystem::192.168.1.253:/web::/web::nfsmysql
主主机名VIP 网络文件系统启动的脚本
cp /etc/init.d/mysql/usr/local/heartbeat/etc/ha.d/resource.d
两台都启动heartbeat服务
chkconfig heartbeat on
service heartbeat start
五、测试
等服务器启动的时候,在主上NFS和MYSQL就会起来!如果禁用网线,他会切换到从
服务器上,等主服务器启动的时候,会重新切换到主服务器上!
PS:
如果只启动主服务器的话,好像训动会很慢,不知道是什么原因,现在没找出来,如果你也只启动主的话,那要等,好像中间时候是三分钟!