略,我使用的CentOS5.5
网卡连接以及配置
1. 网线连接
主机与备机都有两块网卡,分别是eth0和eth1,首先将主机与备机的eth0都接入网络环境,然后再将主机eth1与备机的eth1用联机线直接相连。
2.设置IP
2.1. 设置eth0
主机和备机都需要根据网络环境实际分配的IP进行设置。
2.2. 设置eth1
主机:输入以下命令设置IP
ifconfig eth1 192.168.1.98 netmask 255.255.255.0 route add default gw 192.168.1.1 |
备机:输入以下命令设置IP
ifconfig eth1 192.168.1.99 netmask 255.255.255.0 route add default gw 192.168.1.1 |
3. 更改Hostname
双机的实现需要主机和备机的Hostname不一致,为了操作方便需要更改Hostname。
主机:首先输入命令:
vi /etc/sysconfig/network |
将该文件的内容修改为以下内容:
HOSTNAME=server1 |
然后修改hosts文件
输入命令:
vi /etc/hosts |
将该文件的内容修改为以下内容:
127.0.0.1 server1 |
备机:输入命令:
vi /etc/sysconfig/network |
将该文件的内容修改为以下内容:
HOSTNAME=server2 |
然后修改hosts文件
输入命令:
vi /etc/hosts |
将该文件的内容修改为以下内容:
127.0.0.1 server2 |
数据库配置
1. 双机同步配置
主机:
配置前先停止MySQL服务
/etc/init.d/mysql stop |
首先更改mysql配置
vi /root/HA-install/ EMA2000-server1/my.cnf |
找到下面这行文字,将password设置成访问数据库的真实密码。
master-password =password |
然后执行下列命令
cp /root/HA-install/ EMA2000-server1/my.cnf /etc/ -rf --reply=yes |
配置完成以后重起MySQL
/etc/init.d/mysql start |
备机:
配置前先停止MySQL服务
/etc/init.d/mysql stop |
首先设置数据库访问密码
vi /root/HA-install/ EMA2000-server2/my.cnf |
找到下面这行文字,将password设置成访问数据库的真实密码。
master-password =password |
然后执行下列命令
cp /root/HA-install/ EMA2000-server2/my.cnf /etc/ -rf --reply=yes |
配置完成以后重起MySQL
/etc/init.d/mysql start |
2. 同步功能测试
首先登入MySQL
mysql -u root -p password: |
1. 查看master状态
show master status; |
显示类似以下内容表示正常
+------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000003 | 5581 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec) |
4.2.2. 查看slave状态
show slave status/G; |
若显示类似如下内容表示正常:
*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.1.99 Master_User: root Master_Port: 3306 Connect_Retry: 30 Master_Log_File: mysql-bin.000002 Read_Master_Log_Pos: 29067 Relay_Log_File: EMA2000-server1-relay-bin.000019 Relay_Log_Pos: 1291 Relay_Master_Log_File: mysql-bin.000002 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: dhemoadb Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 29067 Relay_Log_Space: 1291 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0 1 row in set (0.00 sec) |
4.2.3. 停止slave进程
如果需要停止数据同步,则可以执行以下命令。
stop slave; |
注:在主进程挂起的时候,停止slave应该不影响主进程。
4.2.4. 开始slave进程
如果恢复数据同步,可以执行以下命令。
start slave; |
注:在主进程挂起时,开启副进程应该能够恢复数据同步。
5. HeartBeat以及文件同步
5.1. 安装
推荐使用一下命令安装Heartbeat:
yum -install libnet yum -install OpenIPMI yum -install heartbeat |
安装完成以后修改配置,进行如下操作:
主机:拷贝配置文件
cp /root/HA-install/EMA2000-server1/ha.d/* /etc/ha.d/ -rf --reply=yes cp /root/HA-install/EMA2000-server1/ha-debug /var/log/ -rf --reply=yes cp /root/HA-install/EMA2000-server1/ha-log /var/log/ -rf --reply=yes cp /root/HA-install/EMA2000-server1/tomcatd /etc/rc.d/init.d/ -rf --reply=yes cp /root/HA-install/EMA2000-server1/tomcat-stop.sh /opt/tomcat/bin/ -rf –reply=yes cp /root/HA-install/checkshell/* /etc/ -rf --reply=yes cp /root/HA-install/ EMA2000-server1/ rsyncdshell/* /etc/ -rf --reply=yes |
备机:拷贝配置文件
cp /root/HA-install/EMA2000-server2/ha.d/* /etc/ha.d/ -rf --reply=yes cp /root/HA-install/EMA2000-server2/ha-debug /var/log/ -rf --reply=yes cp /root/HA-install/EMA2000-server2/ha-log /var/log/ -rf --reply=yes cp /root/HA-install/EMA2000-server1/tomcatd /etc/rc.d/init.d/ -rf --reply=yes cp /root/HA-install/EMA2000-server1/tomcat-stop.sh /opt/tomcat/bin/ -rf –reply=yes cp /root/HA-install/checkshell/* /etc/ -rf --reply=yes cp /root/HA-install/ EMA2000-server2/ rsyncdshell/* /etc/ -rf –reply=yes |
5.2. 配置
5.2.1. 配置文件权限
为authkeys文件附权限
chmod 600 /etc/ha.d/authkeys |
为tomcatd附上可执行权限
chmod a+x /etc/rc.d/init.d/tomcatd |
为rsync相关文件附上权限
chmod 600 /etc/rsync.* chmod a+x /etc/rsyncd-run.sh |
5.2.2. 配置心跳资源:haresources
主机和备机:运行以下命令
vi /etc/ha.d/haresources |
然后将红色内容修改为自己需要的浮动IP,浮动IP只能有一个,并且主机和备机要一致,注意浮动IP必须与eth0的IP是同一IP段。
EMA2000-server1 IPaddr::192.168.0.200 |
5.2.3. 配置脚本执行策略
主机:运行以下命令
vi /etc/crontab |
在打开的文件尾追加以下内容:
*/1 * * * * /etc/CheckMysql.sh */1 * * * * /etc/CheckNetWork.sh |
备机:运行以下命令
vi /etc/crontab |
在打开的文件尾追加以下内容:
*/1 * * * * /etc/CheckMysql.sh */1 * * * * /etc/CheckNetWork.sh */10 * * * * /etc/rsyncd-run.sh |
Tomcat不能随机自启,应该从自启列表中除去:
vi /etc/rc.local |
删除Tomcat自启行。
5.2.4. 配置开机自启服务
主机和备机:运行下列命令
vi /etc/init.d/boot.local |
在打开的文件末尾追加下列内容:
rsync --daemon service heartbeat start |
5.2.5. 配置文件同步相关文件
主机:运行以下命令
vi /etc/rsyncd.secrets |
文件内容如下,请将红色文字改为备机root帐户密码。
root:password |
备机:运行以下命令
vi /etc/rsyncd.secrets |
文件内容如下,请将红色文字改为主机root帐户密码。
root:password |
5.3. 运行以及检查
启动HA
service heartbeat start |
停止HA
service heartbeat stop |
检查心跳是否正常可根据抓取eth1的数据包判断
在实际操作中也遇到了些问题,比如 Mysql不同步,Slaver机状态显示NO,如何操作?
请检查心跳先链接是否正常,可以互相ping,检验链路通畅,如果链路通畅,请检查配置文件是否正常,如果正常,请首先停止mysql服务,找到Mysql的data目录,一般情况下在/var/lib/mysql中,删除所有缓存文件。重启mysql。如果依然不能解决问题,请联系相关运维人员。