MaxScale Binlog Server理想架构图

要点提示:

1、MX只能适合Mariadb自家的版本作为BINLOG ROUTER,其他DB都不适合

2、开通IPTABLES,避免端口呗过滤

3、使用MX服务收集BINLOG减少了M的IO压力

4、MX到SLAVE的数据同步延迟

5、Master到MX在大数据下写入有一定的延迟

安装过程:

1、已经有mariadb的MS架构

2、安装maxscale

a、yum -y install maxscale-2.0.1-2.CentOS.6.x86_64.rpm

b、添加用户useradd maxscale

c、添加从主库拷贝过来的binlog目录,并授权为maxscale

d、配置文件vim /etc/maxscale.cnf

[maxscale]

threads=16  ##根据CPU的物理核数来确定

[Replication]

type=service

router=binlogrouter

user=dlan

password=root123  #作为MAXSCALE的登录用户及maxscale同步主库的binlog日志

router_options=server_id=15575308,heartbeat=30,binlogdir=/home/maxscale,transaction_safety=1,mariadb10-compatibility=1,send_slave_heartbeat=1

[Replication Listener]

type=listener

service=Replication

protocol=MySQLClient

port=5308

[CLI]

type=service

router=cli

[CLI Listener]

type=listener

service=CLI

protocol=maxscaled

port=6603

[MaxAdmin Service]

type=service

router=cli

[MaxAdmin Listener]

type=listener

service=MaxAdmin Service

protocol=maxscaled

port=336677

##部分参数介绍

# server_id设置maxscale的,记得不能与主和从库重复,要唯一

#  heartbeat=30秒,意思为当maxscale在30秒内没有接收到主库推送的binlog日志,发送心跳检查

#  binlogdir设置接收binlog的存放路径,目录属性chown -R maxscale.maxscale  /data/binlog

# transaction_safety=1此参数用于启用binlog日志中的不完整事务检测。  当MariaDB MaxScale启动时,如果当前binlog文件已损坏或找到不完整的事务,则可能会出现错误消息。  在正常工作期间,binlog事件不会分配到从库,直到事务已经提交。 默认值为off,设置transaction_safety = on以启用不完全事务检测。

#  send_slave_heartbeat=1开启心跳检查

3、在maxscale服务器上执行收集BINLOG信息,确保在主库上已经存在用户dlan的信息,不存在添加用户

mysql -udlan -proot123 -h192.168.1.251 -P5308

CHANGE MASTER TO MASTER_HOST='192.168.15.104',MASTER_USER='dlan',MASTER_PASSWORD='root123',MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=4;

mysql> start slave ;

Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Binlog Dump

Master_Host: 192.168.15.104

Master_User: dlan

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000005

Read_Master_Log_Pos: 10851096

Relay_Log_File: mysql-bin.000005

Relay_Log_Pos: 10823989

Relay_Master_Log_File: mysql-bin.000005

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 10823989

Relay_Log_Space: 10823989

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 221023306

Master_UUID: 452ee7b4-bb7e-11e6-97da-f04da23ed470

Master_Info_File: /home/maxscale/master.ini

SQL_Delay: 0

SQL_Remaining_Delay: NULL

Slave_SQL_Running_State: Slave running

Master_Retry_Count: 1000

Master_Bind:

Last_IO_Error_TimeStamp:

Last_SQL_Error_Timestamp:

Master_SSL_Crl:

Master_SSL_Crlpath:

Retrieved_Gtid_Set:

Executed_Gtid_Set:

Auto_Position:

1 row in set (0.02 sec)

#同时在本地文件配置的收集BINLOG目录可以看到当前从主库收集过来的BINLOG日志及同步用户的信息

4、配置从库同步数据从MAXSCALE服务器获取,这里的master_log_file master_log_pos使用全备后的文件记录的信息,和MX同步的MASTER_LOG_FILE当前FILE不冲突

CHANGE MASTER TO MASTER_HOST='192.168.15.57',MASTER_USER='dlan',MASTER_PASSWORD='root123',MASTER_PORT=5308,MASTER_LOG_FILE='mysql-bin.000005', MASTER_LOG_POS=168680168;

###测试过程:

1、主库写入100W数据,到MX也有一定的延迟。

转载于:https://blog.51cto.com/dbaspace/1880012

MaxScale Binlog Server相关推荐

  1. MaxScale Binlog Server实践

    MaxScale Binlog Server实践 简介 Part1:写在最前 在之前的博文中有说到MaxScale,作为中间件,配合MHA使用或者主从使用可实现读写分离和负载均衡,今天简单介绍下Max ...

  2. MySQL链式复制加速神器: MaxScale Binlog Server(附视频)

    本文根据DBAplus社群第83期线上分享整理而成 讲师介绍 贺春旸 普惠金融MySQL专家 <MySQL管理之道>第一版.第二版作者,曾任职于中国移动飞信.机锋安卓市场,拥有丰富的数据库 ...

  3. binlog复制的灾备设计

    2019独角兽企业重金招聘Python工程师标准>>> [导读]本文主要介绍Booking网站在业务发展过程中碰到MySQL主库挂载几十甚至上百个从库时探索的解决方案:使用Binlo ...

  4. Mysql日志-RedoLog、UndoLog和BinLog的关系捋顺

    一条查询语句的执行过程一般是经过连接器.分析器.优化器.执行器等功能模块,最后到达存储引擎. 那么,一条更新语句的执行流程又是怎样的呢?以及MySQL可以恢复到半个月内任意一秒的状态,这是怎样做到的呢 ...

  5. mysqlbinlog查看日志_一个分布式 MySQL Binlog 存储系统的架构设计

    1. kingbus简介 1.1 kingbus是什么? kingbus是一个基于raft强一致协议实现的分布式MySQL binlog 存储系统.它能够充当一个MySQL Slave从真正的Mast ...

  6. mysql binlog sql统计_mysql的binlog详解

    binlog是mysql记录操作的二进制日志文件,有三种格式可选,但是老旧的SBR已经不适合现在大多数业务需求,所以大多数都建议用MBR和RBR,即mixed或row,而解析他的原因,几乎都只有一个, ...

  7. 基于MaxScale中间件的MySQL读写分离

    基于MaxScale中间件的MySQL读写分离 概述 maxscale 基于keepalived的高可用,通过VIP提供服务 maxscale官网:https://mariadb.com/downlo ...

  8. 阴沟翻船之 MYSQL MHA 故障 SSH timeout 与 Binlog not found

    MYSQL MHA 的安装估计很多地方都是自动化安装的了,流水线方式.个人安装的MHA 的集群虽然没有几百台,但基本上已经突破了三位数,按理说安装应该是不会出什么奇怪的事情,但实际上每天都有新鲜事. ...

  9. mysql 数据库集群搭建:(四)pacemaker管理三台maxscale集群,搭建mariadb读写分离中间层集群...

    为什么80%的码农都做不了架构师?>>>    <mysql 数据库集群搭建:(一)VirtualBox中多台CentOS虚拟机间和windows主机间互通以及访问互联网设置& ...

最新文章

  1. CDMA模块上网设置的过程
  2. BZOJ2244 [SDOI2011]拦截导弹 【cdq分治 + 树状数组】
  3. UA MATH523A 实分析3 积分理论例题 Fubini定理证明积分不等式
  4. ksql 数量大于2_A股史上唯一能暴涨200%的买卖铁则:内盘大于外盘股价必跌,外盘大于内盘股价必涨,堪称绝技...
  5. oem模式是什么_OEM的完整形式是什么?
  6. 显式(静态)调用: LIB + DLL + .H
  7. 利用virt-manager,xmanager, xshell启动界面来管理虚拟机
  8. python常用算法包_Python中常用的包--sklearn
  9. Linux进阶之LAMP和LNMP动态网站搭建
  10. 用时间序列的方法处理数据
  11. 关于AndroidStudio结合百度地图Api开发的SHA1获取
  12. 获取打印机分辨率_喵喵机体验——爱不释手的错题打印机
  13. 陈越c语言自学攻略,C语言自学攻略——陈越姥姥
  14. c语言 统计素数并求和
  15. 让XP系统支持GPT硬盘
  16. 腾讯云搭建代理服务器全部内容
  17. 免费申请 HTTPS 证书,开启全站 HTTPS
  18. 下列选项中、不是python语言保留字的是_以下选项中,不是Python语言保留字的是:()...
  19. 学交互设计要懂什么:交互设计师的知识体系
  20. C#连接Kepserver OPC与PLC通讯程序源码教程

热门文章

  1. 认识基于中间件的软件开发方法
  2. python编程怎么建立工程_教你如何用Python脚本快速创建项目
  3. python自动化测试判断方法_python接口自动化测试之根据excel中的期望结果是否存在于请求返回的响应值中来判断用例是否执行成功...
  4. Python OOP总结
  5. Mac git 终端使用
  6. NSException异常处理
  7. C# 串口编程 — MVVM MVVM Light 实例
  8. 模式识别新研究:微软OCR两层优化提升自然场景下的文字识别精度
  9. 在Project 2010中添加自定义任务窗格
  10. 安装jupyter后,使用时显示找不到命令(command not found)