zoukankan      html  css  js  c++  java
  • mysql高可用探究(四)Heartbeat高可用Mysql主主同步方案


               Heartbeat高可用Mysql主主同步方案

    1.1  方案简介

    本方案使用heartbeat+mysql主主同步来实现mysql数据库的高可用, 当服务器或者masterheartbeat宕掉以后会自动切换到backup上,服务器或者masterheartbeat恢复以后可以自动切换回来,master继续提供服务。

    1.2  方案优缺点

    Ø  优点:

    配置简单、,可配置主机恢复后是否切换回master。不存在单点故障。

    Ø  缺点:

    mysql服务挂掉或者不可用的情况下不能进行自动切换,需要通过crm模式实现或者额外的脚本实现(比如shell脚本监测到mastermysql不可用就将主上的heartbeat停掉,这样就会切换到backup中去)

    默认启动以及切换后的backupmysql不会启动起来,因此这对于mysql复制是很不利的。因此需要做好监控,发生切换以后需要手动去启动。或者mysql之间不使用复制,而是用共享存储或者DRBD,这样能解决这个问题。

    不方便扩展。

    可能会发生脑裂问题。

    1.3  方案架构图

    1.4  适用场景

    该方案适合只有两台数据库的情况,访问量不大,不需要实现读写分离的情况。

    1.5  方案实战

    1.5.1 实战环境介绍

    服务器名

    IP

    VIP

    系统

    Mysql

    Master

    10.1.1.113

    10.1.1.176

    Centos 5.5 64bit

    5.1.63

    Backup

    10.1.1.75

    10.1.1.176

    Centos 5.5 64bit

    5.1.63

     

    1.5.2 Mysql的安装和配置

    Mysql的安装和配置相对来讲非常简单,这里就不做介绍,有兴趣的朋友可以查看我博客中关于mysql 5.1.63版本自动安装的文章http://blog.chinaunix.net/uid-20639775-id-3168737.html

    1.5.3 Mysql的主主同步配置

    Mysql的主主同步这里也不做介绍了,有兴趣的话可以看一下我博文中关于mysql主从同步管理的介绍,主主同步和主从同步差不多,只是互为主从而已,链接如下:http://blog.chinaunix.net/uid-20639775-id-3254611.html

    1.5.4 Heardbeat的安装

    Masterbackup服务器都需要安装heardheat软件。下面两种安装方式任选其一。

    Ø  Rpm包的安装方式

    yum -y install heartbeat-*

    Ø  源代码编译安装方式

    wget http://www.ultramonkey.org/download/heartbeat/2.1.3/heartbeat-2.1.3.tar.gz

    tar xzvf heartbeat-2.1.3.tar.gz

    cd heartbeat-2.1.3

    ./configure

     Make

     make install

    1.5.5 Heartbeat的配置

    Hearbeat的配置主要包括三个配置文件,authkeysha.cfharesources的配置,下面就分别来看!

    Ø  Hosts文件的配置

    需要在hosts文件中添加masterbackup主机,加快节点间的通信

    Masterbackuphosts节点添加的内容一样,我的配置添加如下内容:

    vim /etc/hosts

    #dbserverpuppet是我的masterbackup的主机名

    10.1.1.113 dbserver

    10.1.1.75 puppet

    Ø  Authkerys的配置

    这个文件用来配置密码认证方式,支持3种认证方式,crcmd5sha1,从左到右安全性越来越高,消耗的资源也越多。因此如果heartbeat运行在安全的网路之上,比如私网,那么可以将验证方式设置成crcmasterbackupauthkeys配置一样。我的authkeys文件配置如下:

    vim /etc/ha.d/authkeys

    auth 1

    1 crc

    Ø  ha.cf的配置

    masterha.cf的配置

    vim /etc/ha.d/ha.cf

    logfile /var/log/ha-log

    logfacility     local0

    keepalive 2

    deadtime 30

    warntime 10

    initdead 60

    udpport 694

    ucast eth0 10.1.1.75

    auto_failback on

    node    dbserver

    node    puppet

    ping 10.1.1.1

    respawn hacluster /usr/lib64/heartbeat/ipfail

    backupha.cf的配置

    vim /etc/ha.d/ha.cf

    logfile /var/log/ha-log

    logfacility     local0

    keepalive 2

    deadtime 30

    warntime 10

    initdead 60

    udpport 694

    ucast eth0 10.1.1.113

    auto_failback on

    node    dbserver

    node    puppet

    ping 10.1.1.1

    respawn hacluster /usr/lib64/heartbeat/ipfail

    Ø  haresources的配置

    haresources用来设置master的主机名、虚拟IP、服务以及磁盘挂载等,masterbackup的配置是一样的,下面的mysqld需要做成服务,放在/etc/rc.d/init.d/目录下,配置配置如下:

    vim /etc/ha.d/haresources

    dbserver  10.1.1.176/32/eth0 mysqld

    1.5.6 Heartbeat的启动

    在启动masterbackup上的mysqld启动以后,启动masterbackupkeepalived

    /etc/rc.d/init.d/heartbeat start

    并将此启动语句加入到masterbackup/etc/rc.local中去

    1.5.7 方案测试

    环境搭建好以后,就需要进行周密的测试,看是否实现了预期的功能:

    Ø  停掉master上的mysqld,看看是否切换(因为heartheat不检查服务的可用性,因此需要你通过而外的脚本来实现,方法前面已经描述)

    Ø  停掉masterheartheat看看是否能正常切换。

    Ø  停掉master的网络或者直接将master系统shutdown,看看能否正常切换。

    Ø  启动masterheartbeat看看是否能正常切换回来。

    Ø  重新启动master看看能否切换过程是否OK

    1.5.8 监控方案

    因为heartbeat不监控资源的可用性以及切换后会将资源停止,所以需要加强对资源和heartbeat的监控,推荐采用nagios软件来进行可用性的监控。

  • 相关阅读:
    java环境配置为1.7jdk为什么cmd java -version查看版本是1.8
    bulid path 引 jar包 步骤
    eclipse 报错
    PLSQL使用技巧
    Oracle sqlplus不是内部或外部命令
    SVN 插件安装到Myeclipse10 上(经典)
    socket学习
    Eclipse 配置 插件svn 包步骤
    如何在Eclipse中使用SVN(经典)
    linux 下搭建LAMP
  • 原文地址:https://www.cnblogs.com/feihongwuhen/p/7169793.html
Copyright © 2011-2022 走看看