首页 技术 正文
技术 2022年11月21日
0 收藏 675 点赞 2,409 浏览 4732 个字

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


         这里只做了 双主+keepalived  , 对于读写要求很大大的环境,推荐架构是,双主多从(可以通过集群管理软件MMM来实现高可用架构)读写分离,当然代价也是比较高的 。        读写分离实现方法:               1、程序实现:程序端预留接口,当对于已经在运行的环境,重新修改程序,貌似不大现实               2、Mysql_proxy :官方的一种实现方式,但是官方建议不要再生产环境中使用,所以不推荐               3、Amoeba 软件分离 (推荐使用)架构图: 企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)            一、环境要求:

服务器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-3310binlog_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-3310binlog_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;    企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)                    企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)          B服务器:show slave status\G; show processlist;          企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)          #show processlist;     企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)         企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创) 企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创) 


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服务器                    企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)               #配置B服务器                    企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)         企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)  3、# /etc/keepalived/change_mysql.sh 脚本内容为强杀死keepalived进程                    企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)                    企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)4、#配置好后开启两服务器 keepalived                          #/etc/init.d/keepalived start                         #ps aux | grep keepalived5、查看状态          # ip a          企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创) keepalived的工作机制是:每2秒检查一次real_server的监控状态,一旦发现数据库down了,此时VIP就会转移到另外一台上,从而实现故障快速切换,用户在通过VIP连接基本可以保持一直连接状态。 四、测试切换               先检查服务器A与服务器B上的Mysql实例与keepalived是否都为开启状态          1、此时VIP在服务器B上               企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)               在B服务器上将Mysql实例3310 stop               # /etc/init.d/mysqld_3310 stop      企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)                 可以看到VIP马上就切换到了服务器A 192.168.1.31这台上               企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)          2、客户端连接数据库                基本不会有影响               企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)  后续:欢迎评判!                

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,000
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,512
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,358
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,141
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,771
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,849