MHA+Atlas架构搭建-创新互联

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

    成都创新互联是一家业务范围包括IDC托管业务,网站空间、主机租用、主机托管,四川、重庆、广东电信服务器租用,重庆服务器托管,成都网通服务器托管,成都服务器租用,业务范围遍及中国大陆、港澳台以及欧美等多个国家及地区的互联网数据服务公司。
  2. 二、架构

MHA+Atlas架构搭建

三、软件介绍

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主机(slave1,MHA Manages、Atlas节点)

 [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作为主节点,52、53为从)

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;

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:MHA+Atlas架构搭建-创新互联
网页路径:http://csdahua.cn/article/dpiioc.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流