前言:
         原理与思想
       这里选用GTID主从复制模式Mysql主从复制模式,是为了更加确保主从复制的正确性、健康性与易配性。这里做的是两服务器A,B各有Mysql实例3310,两个实例间互为主从
       主从复制模式采用GTID主从复制模式,在服务器A,B上配置keepalived负载均衡,通过VIP连接数据库,目的是一旦有某数据库宕机,keepalived 就会立即建VIP执行另外一台
       健康的数据库实例上,实现快速切换,避免单点故障,从而保证业务的正常运行。
 

 
        这里只做了 双主+keepalived  , 对于读写要求很大大的环境,推荐架构是,双主多从(可以通过集群管理软件MMM来实现高可用架构)读写分离,当然代价也是比较高的 。
        读写分离实现方法:
               1、程序实现:程序端预留接口,当对于已经在运行的环境,重新修改程序,貌似不大现实
               2、Mysql_proxy :官方的一种实现方式,但是官方建议不要再生产环境中使用,所以不推荐
               3、Amoeba 软件分离 (推荐使用)
架构图:
 
 
          
 
一、环境要求:
服务器A: 192.168.1.31 系统环境:CetnOS6.5、Mysql-5.6.19(主从)、Keepalived(master)
服务器B: 192.168.1.32 系统环境:CetnOS6.5、Mysql-5.6.19(从主)、Keepalived(back)

二、安装Mysql 与 主从配置
      (mysql安装步骤略)
     这里服务器A上配置实例为3310,服务器B上的实例也为3310 (双主同样端口号的好处是在故障切换的时候)
     安装好mysql后修改配置文件
 
1、修改A服务器上的mysql配置文件my.cnf
               在my.cnf文件里加入参数(注意不要重复定义参数)
                
server-id       = 201                    //这里的ID号与从库上或者主库上的ID必须保证不一样
log-bin=mysql-bin                    //可以自定义 这里定义为 log-bin=/data/log-bin/log-bin-3310
binlog_format=row                    //主从复制模式
log-slave-updates=true                 //slave 更新是否记入日志
gtid-mode=on                                   // 启用gtid类型,否则就是普通的复制架构

enforce-gtid-consistency=true          //强制GTID 的一致性 
master-info-repository=TABLE        //主服信息记录库=表 /文件
relay-log-info-repository=TABLE    //中继日志信息记录库

sync-master-info=1                         //同步主库信息
slave-parallel-workers=4                 //从服务器的SQL 线程数,要复制库数目相同
binlog-checksum=CRC32                   // 校验码 ,可以自定义
master-verify-checksum=1               //主服校验

slave-sql-verify-checksum=1             //从服校验

binlog-rows-query-log_events=1     //二进制日志详细记录事件
report-port=3310                               //提供复制报告端口,当前实例端口号
report-host=192.168.1.31                   //提供复制报告主机,本机的ip地址

2、修改B服务器上的mysql配置文件my.cnf
          在my.cnf文件里加入参数(注意不要重复定义参数)
                   
server-id       = 202                    //这里的ID号与从库上或者主库上的ID必须保证不唯一
log-bin=mysql-bin                    //可以自定义 这里定义为 log-bin=/data/log-bin/log-bin-3310
binlog_format=row                    //主从复制模式
log-slave-updates=true                 //slave 更新是否记入日志
gtid-mode=on                                   // 启用gtid类型,否则就是普通的复制架构

enforce-gtid-consistency=true          //强制GTID 的一致性 
master-info-repository=TABLE        //主服信息记录库=表 /文件
relay-log-info-repository=TABLE    //中继日志信息记录库

sync-master-info=1                         //同步主库信息
slave-parallel-workers=4                 //从服务器的SQL 线程数,要复制库数目相同
binlog-checksum=CRC32                   // 校验码 ,可以自定义
master-verify-checksum=1               //主服校验

slave-sql-verify-checksum=1             //从服校验

binlog-rows-query-log_events=1     //二进制日志详细记录事件
report-port=3310                              //提供复制报告端口,当前实例端口号
report-host=192.168.1.32                   //提供复制报告主机,本机的ip地址

replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=performance_schema.%

(可以在配置文件里加入,作用屏蔽要复制的库)


3、授权
     A服务器mysql实例3310:
    grant replication slave,replication client on *.* to slave@'192.168.1.32'identified by '123456';
 
     B服务器mysql实例3310:
    grant replication slave,replication client on *.* to slave@'192.168.1.32'identified by '123456';   
================================================================================
     A服务器mysql实例3310:
    change master to master_host='192.168.1.32',master_port=3310,master_user='slave',master_password='123456',master_auto_position=1;
           注意:这里要是不配置参数master_port=3311,默认的会去找3306
     B服务器mysql实例3310:
    change master to master_host='192.168.1.31',master_port=3310,master_user='slave',master_password='123456',master_auto_position=1;
==================================================================================
        A、B服务器上开启主从复制:start slave;
4、查看状态
          A服务器:show slave status\G;show processlist;
    
                    
          B服务器:show slave status\G; show processlist;
          
          #show processlist;
              
 
 

5、到这里A、B服务器间基于GTID主从复制模式已经配置好了,测试下
          在A服务器3310实例上:drop databse test;B服务器3310上查看状态:show databases;
          在B服务器3310实例上:create database wll_test;  A服务器上3310上查看状态:show databases;

三、安装配置Keepalived负载均衡器
 1、官网下载www.keepalived.org
          在A服务器和B服务器上安装keepalived
          #tar zxvf  keepalived-1.2.20.tar.gz
          #cd  keepalived-1.2.20.tar.gz     
          #./configure --sysconf=/etc --with-kernel-dir=/usr/local/src/kernels/2.6.32-573.el6.x86_64
          #make&&make install
          #ln -s /usr/local/sbin/keepalived /sbin/
          #ln -s /usr/local/keepalived-1.2.20 /usr/local/keepalived
          #chkconfig --level 35 keepalived on
 2、配置keepalived
 
                    #配置A服务器
                    
 
              #配置B服务器
                    
         
 
 
3、# /etc/keepalived/change_mysql.sh 脚本内容为强杀死keepalived进程
                    
                    
4、#配置好后开启两服务器 keepalived 
                         #/etc/init.d/keepalived start
                         #ps aux | grep keepalived
5、查看状态
          # ip a
          
 
keepalived的工作机制是:每2秒检查一次real_server的监控状态,一旦发现数据库down了,此时VIP就会转移到另外一台上,从而实现故障快速切换,用户在通过VIP连接
基本可以保持一直连接状态。
 
四、测试切换
               先检查服务器A与服务器B上的Mysql实例与keepalived是否都为开启状态
          1、此时VIP在服务器B上
               
               在B服务器上将Mysql实例3310 stop
               # /etc/init.d/mysqld_3310 stop
      
                 可以看到VIP马上就切换到了服务器A 192.168.1.31这台上
               
          2、客户端连接数据库
                基本不会有影响
               
 
 
后续:欢迎评判!
               
 

企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)的更多相关文章

  1. 【Keepalived+MySQL】MySQL双主互备+高可用

    一.基本信息说明 [DB1] IP: 192.168.102.144 hostname: LVS-Real1 [DB2] IP: 192.168.102.145 hostname: LVS-Real2 ...

  2. keepalived + haproxy 实现web 双主模型的高可用负载均衡--转

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xz159065974.blog.51cto.com/8618592/140581 ...

  3. haproxy + keepalived 实现web 双主模型的高可用负载均衡

    参考文章 http://xz159065974.blog.51cto.com/8618592/1405812 http://blog.chinaunix.net/uid-25266990-id-398 ...

  4. Mysql双主互备+keeplived高可用架构介绍

    一.Mysql双主互备+keeplived高可用架构介绍 Mysql主从复制架构可以在很大程度保证Mysql的高可用,在一主多从的架构中还可以利用读写分离将读操作分配到从库中,减轻主库压力.但是在这种 ...

  5. Mysql双主互备+keeplived高可用架构(部分)

    一.Mysql双主互备+keeplived高可用架构介绍 Mysql主从复制架构可以在很大程度保证Mysql的高可用,在一主多从的架构中还可以利用读写分离将读操作分配到从库中,减轻主库压力.但是在这种 ...

  6. Mysql+Keepalived双主热备高可用操作记录

    我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互为Mast ...

  7. 使用Keepalived实现Nginx的自动重启及双主热备高可用

    1.概述 之前我们使用Keepalived实现了Nginx服务的双机主备高可用,但是有几个问题没有解决,今天一起探讨一下. 1)在双机主备机制中,Keepalived服务如果宕了,会自动启用备机进行服 ...

  8. 搭建 Keepalived + Nginx + Tomcat 的高可用负载均衡架构

    1 概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最简单的部署方式,但是随着业务的不断扩大,系统的访问量逐渐的上升,单机部署的模式已无法承载现有的业务量 ...

  9. [转]搭建Keepalived+Nginx+Tomcat高可用负载均衡架构

    [原文]https://www.toutiao.com/i6591714650205716996/ 一.概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最 ...

随机推荐

  1. 【LOJ6436】【PKUSC2018】神仙的游戏(NTT)

    [LOJ6436][PKUSC2018]神仙的游戏(NTT) 题面 LOJ 题解 看到\(zsy\)从\(PKUSC\)回来就秒掉了这种神仙题 吓得我也赶快看了看\(PKUSC\)都有些什么神仙题 然 ...

  2. 纪念一个日子QAQ

    嗯事情是这样的 今天早上考试的时候不知道为什么特别累,精神并不是很好,T1半平面交裸题  T2当时没有仔细看题,T3想了一段时间后会正解(9:30),但是好像很难写的样子啊.. 但是似乎由于模拟考并不 ...

  3. SCWS中文分词,安装说明(以:Win32环境、utf8字符集为例)

    SCWS官方网站:http://www.xunsearch.com/scws/ 1. 根据您当前用的 PHP 版本,下载相应已编译好的 php_scws.dll 扩展库.    目前支持 PHP-5. ...

  4. 谷哥的小弟学前端(01)——HTML常用标签(1)

    探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架 ...

  5. 【bzoj2500】幸福的道路

    Portal -->bzoj2500 Description ​  给你一棵树,每条边有边权,有两个给给的人第\(i\)天会从编号为\(i\)的点出发走这个点的树上最长距离,现在要你求一个最长的 ...

  6. Linux用户创建及权限管理

    作业一: 1,新建用户natasha,uid为1000,gid为555,备注信息为“master” useradd natasha            vim /etc/passwd         ...

  7. discuz开发,登录次数过多,锁定解决方法

    到数据库里的表找到pre_common_failedlogin 和pre_ucenter_failedlogins清空里面的内容即可. truncate table pre_common_failed ...

  8. I/O多路复用和异步I/O

    一.I/O模式 对于一次IO访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间.所以说,当一个read操作发生时,它会经历两个阶段: ...

  9. java项目转换依赖等问题

    最近接手了一个原始的java项目,其实很久没有做了,自从两年前用maven,建立web项目,java project基本上就没有弄个,突然的接手,发现自己好多不足,可能对于一开始就做这样的容易,但是对 ...

  10. Idea工具常用技巧总结

    转自:https://www.jianshu.com/p/131c2deb3ecf Idea常用技巧总结 1.无处不在的跳转 注:这里的快捷键是自己定义的,并非大家的都一样,可以通过findActio ...