技术开发 频道

通过Heartbert2 让Mysql Replication 具有HA

  1、网络设置

  2、磁盘设置

  3 mysql 安装

  3.1 到官方网址http://dev.mysql.com/downloads/mysql/5.1.html 下载最新版本,mysql5.1.31,找到对应的包。在ha1,ha2 分别安装。

  # cd /usr/local/

  # tar -xzvf mysql-5.1.31-linux-x86_64-glibc23.tar.gz

  # mv mysql-5.1.31-linux-x86_64-glibc23 mysql

  # groupadd mysql

  # useradd -g mysql mysql

  #passwd mysql

  3.2 修改/etc/my.cf,数据文件路径设置在共享磁盘,修改相关参数,这3 个参数在ha1,ha2上必须一样。

  datadir=/u01/data #数据文件路径

  server-id = 180 #数据库ID

  log-bin=/u01/data/master # binlog 路径

  3.3 下面步骤先在ha1 上执行,然后在ha2 执行

  先在ha1 把磁盘mount:

  [root@ha1 mysql]# mount /dev/sdb /u01

  [root@ha1 u01]# mkdir data

  [root@ha1 u01]# chown -R mysql.mysql data/

  安装mysql:

  [root@ha1 u01]# cd /usr/local/mysql

  # ./scripts/mysql_install_db --user=mysql

  # cp support-files/mysql.server /etc/rc.d/init.d/mysqld

  # chmod +x /etc/rc.d/init.d/mysqld

  # chkconfig --add mysqld

  # /etc/rc.d/init.d/mysqld start

  3.4 在ha1 把共享磁盘umount,在ha2 上mount,把上面的数据删除后执行3.3 步骤,完成后ha2 也umount。

  3.5 在slave 上安装mysql,数据放在slave 本地,过程略。

  4、heartbeat 安装

  4.1 官方网址http://www.linux-ha.org,分别在ha1,ha2 安装,确认下列包安装。

  [root@ha1 ~]# rpm -ivh libnet-1.1.2.1-2.1.x86_64.rpm

  [root@ha1 ~]# rpm -ivh heartbeat-pils-2.1.4-4.1.x86_64.rpm

  [root@ha1 ~]# rpm -ivh heartbeat-stonith-2.1.4-4.1.x86_64.rpm

  [root@ha1 ~]# rpm -ivh perl-TimeDate-1.16-6.el4.noarch.rpm

  [root@ha1 ~]# rpm -ivh heartbeat-2.1.4-4.1.x86_64.rpm

  [root@ha1 ~]# rpm -ivh heartbeat-devel-2.1.4-4.1.x86_64.rpm

  4.2 开始编辑配置文件(ha1,ha2 都执行)

  [root@ha1 local]# cp /usr/share/doc/packages/heartbeat/ha.cf /etc/ha.d/

  [root@ha1 local]# cp /usr/share/doc/packages/heartbeat/authkeys /etc/ha.d/

  编辑/etc/ha.d/authkeys,使用的是第1 种认证方式(crc),接着把文件的权限改为600:

  cat /etc/ha.d/authkeys

  显示

  auth 1

  1 crc

  更改文件权限

  chmod 600 /etc/ha.d/authkeys

  [root@ha1 ~]# cat /etc/ha.d/ha.cf

  debugfile /var/log/ha-debug

  logfile /var/log/ha-log

  logfacility local0

  keepalive 1

  deadtime 10

  warntime 5

  udpport 694

  crm yes

  node ha1 ha2

  bcast eth0

  auto_failback off

  apiauth cibmon uid=hacluster

  respawn hacluster /usr/lib64/heartbeat/cibmon –d

  配置资源,共享IP,共享磁盘,MYSQL3 个服务组成1 组资源。

  [root@ha1 ~]# cat /etc/ha.d/haresources2

  ha1 10.0.0.180 Filesystem::/dev/sdb::/u01::ext3 mysqld

  启动的时候从左到右依次运行脚本,关闭的时候从右到左依次关闭。

  这个文件原名为haresources 在1.x 上使用,不过为了区别使用此名称。

  将资源文件转换成cib.xml,2.x 里编译好后自带有转换脚本

  [root@ha1 ~]# cd /var/lib/heartbeat/crm/

  [root@ha1 crm]# rm -rf cib.xml*

  [root@ha1 crm]#

  /usr/lib64/heartbeat/haresources2cib.py -stout -c /etc/ha.d/ha.cf /etc/ha.d/haresources2

  [root@ha1 crm]# cat cib.xml|grep mysql

  <primitive class="lsb" id="mysqld_3" provider="heartbeat" type="mysqld">

  <op id="mysqld_3_mon" interval="120s" name="monitor" timeout="60s"/>

  即每120 秒检测资源运行情况,如果发现资源不在,则尝试启动资源,如果60s 后还未启动

  成功,则资源切换向另节点,可根据业务进行修改。

  4.3 启动heartbeat,在ha1 和ha2 都启动

  [root@ha1 ~]# /etc/init.d/heartbeat start

  查看资源情况

  ============

  Last updated: Tue Feb 24 16:12:10 2009

  Current DC: ha2 (0c267980-de77-4421-bcb5-9bb6b0743eef)

  2 Nodes configured.

  1 Resources configured.

  ============

  Node: ha2 (0c267980-de77-4421-bcb5-9bb6b0743eef): online

  Node: ha1 (ab30057d-03f6-4be8-a787-98c5fc7f4c64): online

  Resource Group: group_1

  IPaddr_10_0_0_180 (ocf::heartbeat:IPaddr): Started ha1

  Filesystem_2 (ocf::heartbeat:Filesystem): Started ha1

  mysqld_3 (lsb:mysqld): Started ha1

  4.4 将heartbeat 设置成开机自动重启

  [root@ha1 ~]# chkconfig --add heartbeat

  [root@ha1 ~]# chkconfig --level 345 heartbeat on

  [root@ha1 ~]# chkconfig --list heartbeat

  heartbeat 0:off 1:off 2:on 3:on 4:on 5:on 6:off

0
相关文章