码迷,mamicode.com
首页 > 其他好文 > 详细

MHA+Atlas架构搭建

时间:2018-07-05 16:00:51      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:nsis   date   dir   manager   复制配置   tar   init.d   type   .com   

  • 一、基于普通主从复制的弊端;MHA能做到在10~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。

  • 二、架构

  •               

    技术分享图片

    三、软件介绍

    MHA软件由两部分组成,Manager工具包和Node工具包

    Manager工具包

    masterha_check_ssh                 #检査 MHA 的 ssh-key^

    masterha_check_repl                 #检査主从复制情况

    masterha_manger                      #启动MHA

    masterha_check_status             #检测MHA的运行状态^

    masterha_mast er_monitor        #检测master是否宕机一

    masterha_mast er_switch          #手动故障转移—

    masterha_conf_host                  #手动添加server倍息一

    masterha_secondary_check     #建立TCP连接从远程服务器v

    masterha_stop                          #停止MHA

    Node工具包主要包括以下几个工具:

    save_binary_1ogs       #保存宕机的master的binlog

    apply_diff_relay_logs   #识别relay log的差异

    filter_mysqlbinlog           #防止回滚事件一MHA已不再使用这个工具

    purge_relay_logs           #清除中继曰志一不会阻塞SQL线程


    四、 MHA的优点

    1、自动故障转移

    2、主库崩溃不存在数据不一致的情况

    3、不需要对当前的mysql环境做重大修改

    4、不需要添加额外的服务器

    5、性能优秀,可以工作再半同步和异步复制框架

    6、只要replication支持的存储引擎mha都支持

    五、环境说明

    db01主机(master

    [root@db01 ~]# cat /etc/redhat-release

    CentOS release 6.9 (Final)

    [root@db01 ~]# uname -r

    2.6.32-696.el6.x86_64

    [root@db01 ~]# /etc/init.d/iptables status

    iptables: Firewall is not running.

    [root@db01 ~]# getenforce

    Disabled

    [root@db01 ~]# hostname -I

    10.0.0.51 172.16.1.51

    db02主机(slave1

     [root@db02 ~]# cat /etc/redhat-release

     CentOS release 6.9 (Final)

     [root@db02 ~]# uname -r

     2.6.32-696.el6.x86_64

     [root@db02 ~]# /etc/init.d/iptables status

     iptables: Firewall is not running.

     [root@db02 ~]# getenforce

     Disabled

     [root@db02 ~]# hostname -I

     10.0.0.52 172.16.1.52

     

    db03主机(slave1MHA ManagesAtlas节点)

     [root@db03 ~]# cat /etc/redhat-release

     CentOS release 6.9 (Final)

     [root@db03 ~]# uname -r

     2.6.32-696.el6.x86_64

     [root@db03 ~]# /etc/init.d/iptables status

     iptables: Firewall is not running.

     [root@db03 ~]# getenforce

     Disabled

     [root@db03 ~]# hostname -I

     10.0.0.53 172.16.1.53

    三台服务器上都全新安装mysql 5.6.38

    [root@db01 ~]# mysql --version

    mysql  Ver 14.14 Distrib 5.6.38, for Linux (x86_64) using  EditLine wrapper


    五、基于GTID的主从复制配置

    主库和从库都要开启binlog

    主库和从库server-id必须不同

    要有主从复制用户


    5.1、配置主从复制

    db01 my.cnf文件

    [mysqld]

    basedir=/application/mysql

    datadir=/application/mysql/data

    socket=/tmp/mysql.sock

    log-error=/var/log/mysql.log

    log-bin=/application/mysql/mysql-bin

    binlog_format=row

    secure-file-priv=/tmp

    server-id=51

    skip-name-resolve  # 跳过域名解析

    gtid-mode=on    # 启用gtid类型,否则就是普通的复制架构

    enforce-gtid-consistency=true    #强制GTID的一致性

    log-slave-updates=1     # slave更新是否记入日志(5.6必须的)

    relay_log_purge = 0

    [mysql]

    socket=/tmp/mysql.sock

    db02 my.cnf文件

    [root@db02 ~]# cat /etc/my.cnf

    [mysqld]

    basedir=/application/mysql

    datadir=/application/mysql/data

    socket=/tmp/mysql.sock

    log-error=/var/log/mysql.log

    log-bin=/application/mysql/mysql-bin

    binlog_format=row

    secure-file-priv=/tmp

    server-id=52

    skip-name-resolve

    gtid-mode=on

    enforce-gtid-consistency=true

    log-slave-updates=1

    relay_log_purge = 0

    [mysql]

    socket=/tmp/mysql.sock

    db03 my.cnf文件

    [root@db03 ~]# cat /etc/my.cnf

     [mysqld]

     basedir=/application/mysql

     datadir=/application/mysql/data

     socket=/tmp/mysql.sock

     log-error=/var/log/mysql.log

     log-bin=/application/mysql/mysql-bin

     binlog_format=row

     secure-file-priv=/tmp

     server-id=53

     skip-name-resolve

     gtid-mode=on

     enforce-gtid-consistency=true

     log-slave-updates=1

     relay_log_purge = 0

     skip-name-resolve

     [mysql]

     socket=/tmp/mysql.sock


    创建复制用户 (51作为主节点,5253为从)

    GRANT REPLICATION SLAVE ON *.* TO repl@'172.16.1.%' IDENTIFIED BY '123';

    从库开启复制

    change master to

    master_host='172.16.1.51',

    master_user='repl',

    master_password='123',

    MASTER_AUTO_POSITION=1;

    启动从库复制

    start slave;









    MHA+Atlas架构搭建

    标签:nsis   date   dir   manager   复制配置   tar   init.d   type   .com   

    原文地址:http://blog.51cto.com/11882122/2136608

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!