[转载]Heartbeat_2.0.3配置MySQL5.0.18为高可用集群(工作记录)
<P><SPAN style="FONT-SIZE: 13px">信息來源:邪惡八進製信息安全團隊</SPAN></P><P><SPAN style="FONT-SIZE: 13px">测试环境为:rehdat linux 9.0<BR>hostname eth0 eth1 <BR>mysql5 192.168.0.50/24 10.4.66.35/24<BR>mysql6 192.168.0.60/24 10.4.66.36/24<BR><BR>heartbeat interface eth0, with crosscab<BR>service ip 10.4.66.88/24, by eth1, default gateway 10.4.66.2<BR><BR>共享存储采用NAS服务器,数据访问地址为10.4.66.251:/data<BR>在服务器本地的挂在目录也是/data<BR><BR>1. 安装MySQL5.0,安装到默认目录<BR>清除准备安装MySQL的服务器上linux自带的mysql-server,<BR>[root@c0101 bin]# rpm -e mysql-server<BR>[root@c0101 bin]# rpm -qa|grep mysql<BR>mysql-3.23.54a-11<BR><BR>[root@c0101 bin]# userdel mysql<BR>[root@c0101 bin]# mv /etc/my.cnf /etc/my.cnf.bak<BR><BR>(1)首先在第一台服务器(HA系统的主节点服务器),<BR>开始安装<BR>1056useradd mysql<BR>1057tar xzvf mysql-max-5.0.18-linux-i686-glibc23.tar.gz<BR>1059mv mysql-max-5.0.18-linux-i686-glibc23 /usr/local/mysql<BR>1060cd /usr/local/mysql<BR>1088chown -R root .<BR>1089chown -R mysql ./data/<BR>1090chgrp -R mysql .<BR><BR>设置数据路径,把数据库数据文件放在共享的NFS目录下(NAS服务器),<BR>PID和innioDB文件要放到服务器本地目录上,才能正常启动、停止服务:<BR>1125vi /etc/my.cnf<BR>[mysqld]<BR>#Where to install a database data<BR>datadir=/data/mysqldata<BR><BR>#Where to install a innoDB engine<BR>innodb_data_home_dir = /usr/local/mysql/data<BR>innodb_log_group_home_dir= /usr/local/mysql/data<BR>innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend<BR><BR>1106cp ./support-files/mysql.server /etc/rc.d/init.d/<BR>vi /etc/rc.d/init.d/mysql.server<BR>编译第222开始的相关的两行,把PID文件放在服务器本地目录上:<BR>pid_file=/usr/local/mysql/data/mysqlmanager-`/bin/hostname`.pid<BR>server_pid_file=/usr/local/mysql/data/`/bin/hostname`.pid<BR><BR>安装MySQL的基本数据库:<BR>1123mount 10.4.66.251:/data /data<BR>1124mkdir /data/mysqldata<BR>1127./scripts/mysql_install_db --user=mysql<BR>1145chown -R mysql.mysql /data/mysqldata/<BR><BR>如果正常的话,可以看到mysql正常启动了;<BR><BR>1146/etc/rc.d/init.d/mysql.serverstart<BR>1146/etc/rc.d/init.d/mysql.serverstop<BR><BR>配置HA高可用,不要设置NFS挂载和mysql服务在启动服务器时自动运行;<BR><BR><BR>(2)然后在第二台服务器(HA系统的备份节点服务器),<BR><BR>1090tar xzvf mysql-max-5.0.18-linux-i686-glibc23.tar.gz<BR>1092mv mysql-max-5.0.18-linux-i686-glibc23 /usr/local/mysql<BR>1093cd /usr/local/mysql/<BR>1095chown -R root .<BR>1096chown -R mysql ./data/<BR>1097chgrp -R mysql .<BR><BR>设置数据路径,把数据库数据文件放在共享的NFS目录下(NAS服务器),<BR>PID和innioDB文件要放到服务器本地目录上,才能正常启动、停止服务:<BR>1125vi /etc/my.cnf<BR>[mysqld]<BR>#Where to install a database data<BR>datadir=/data/mysqldata<BR><BR>#Where to install a innoDB engine<BR>innodb_data_home_dir = /usr/local/mysql/data<BR>innodb_log_group_home_dir= /usr/local/mysql/data<BR>innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend<BR><BR>1106cp ./support-files/mysql.server /etc/rc.d/init.d/<BR>vi /etc/rc.d/init.d/mysql.server<BR>编译第222开始的相关的两行,把PID文件放在服务器本地目录上:<BR>pid_file=/usr/local/mysql/data/mysqlmanager-`/bin/hostname`.pid<BR>server_pid_file=/usr/local/mysql/data/`/bin/hostname`.pid<BR><BR>在NFS目录/data/下,已经有了基本数据库,所以只需要<BR>设置一下,就可以启动了,<BR>1123mount 10.4.66.251:/data /data<BR>1149/etc/rc.d/init.d/mysql.server start<BR><BR>如果首次启动失败,察看一下日志,<BR>使用ps -A命令查看进程,杀掉失败的进程,应该可以正常启动的;<BR>killall -9 mysqld_safe<BR>killall -9 mysqld<BR><BR>(3)保证在两台服务器上,都可以正常启动、停止MySQL服务,<BR>由于数据共享的原因,要注意保证,同时只有1台服务器启动MySQL服务<BR>/etc/rc.d/init.d/mysql.server start<BR>/etc/rc.d/init.d/mysql.server stop<BR><BR>2.安装Heartbeat HA,安装到默认目录,<BR>两台服务器安装方法相同:<BR><BR>(1)安装libnet,这是编译Heartbeat HA需要的:<BR>1046tar xzvf libnet.tar.gz<BR>1047cd libnet<BR>1048ls<BR>1049./configure<BR>1051make<BR>1052make install<BR><BR>(2)编译安装Heartbeat HA<BR>1019groupadd haclient<BR>1020useradd hacluster -g haclient<BR>1058tar xzvf heartbeat-2.0.3.tar.gz<BR>1059ls<BR>1060cd heartbeat-2.0.3<BR>1061ls<BR>1062./ConfigureMe configure<BR>1063make<BR>1064make install<BR><BR>3. 编辑Heartbeat HA的三个配置文件,配置MySQL的HA服务<BR>两台服务器配置方法相同:<BR><BR>1067cd /etc/ha.d<BR>1068cp /root/heartbeat-2.0.3/doc/ha.cf .<BR>1069vi ha.cf<BR>logfile /var/log/ha-log # Log file<BR>keepalive 2 # Heartbeat interval<BR>deadtime 30 # How long to say the server's death<BR>warntime 10<BR><BR>udpport 694 # Heartbeat port<BR>bcast eth0 # Linux Heartbeat interface<BR><BR>auto_failback on # How to do when the failure server comes back<BR>node mysql5 # How many servers in the HA system<BR>node mysql6<BR>ping 10.4.66.2 #ping a robust server to ensure the server's health;<BR> #here is the default gateway<BR>respawn hacluster /usr/lib/heartbeat/ipfail<BR><BR>配置心跳的加密,本次测试因为采用交叉电缆,所以采用最简单的crc方式:<BR>1076cp /root/heartbeat-2.0.3/doc/authkeys .<BR>1077vi authkeys<BR>auth 1<BR>1 crc<BR><BR>1078chmod 600 authkeys<BR><BR>1073cp /root/heartbeat-2.0.3/doc/haresources .<BR><BR>配置资源,本次测试mysql服务的迁移,配置资源文件是关键<BR>1074vi haresources<BR>mysql5 IPaddr::10.4.66.88/24/eth1 Filesystem::10.4.66.251:/data::/data::nfs mysql.server<BR>这一行配置了3个资源,第一个是IP地址,第二个是NFS共享数据,<BR>第三个是mysql.server服务,文件在/etc/rc.d/init.d/目录,<BR>可以使用mysql.server start或stop来启动或停止服务。<BR><BR>4.设置Heartbeat HA服务自动启动,<BR>heartbeat会自动把/data目录挂载,会自动启动MySQL Server;<BR>配置HA高可用,不要设置NFS挂载和mysql服务在启动服务器时自动运行,<BR>也就是说,把与HA相关资源交给Heartbeat HA去自动管理,<BR>cd /etc/rc.d/rc0.d ; ln -s ../init.d/heartbeat K05heartbeat<BR>cd /etc/rc.d/rc3.d ; ln -s ../init.d/heartbeat S75heartbeat<BR>cd /etc/rc.d/rc5.d ; ln -s ../init.d/heartbeat S75heartbeat<BR>cd /etc/rc.d/rc6.d ; ln -s ../init.d/heartbeat K05heartbeat<BR><BR>可以拔掉主节点服务器的网线,看看有什么情况发生,测试是否正常?<BR>然后再把网线插回去,看看HA服务是否运行,MySQL服务能否自动切换回来?<BR><BR>各位网友如有指点之处,请发送邮件<A href="mailto:younglee.cn@gmail.com"><FONT color=#000000>younglee.cn@gmail.com</FONT></A></SPAN> <BR></P>
页:
[1]
