在多种情况下,MySQL主从节点之间可能存在延迟。比如,主库的写入能力强于从库的写入能力、从库单线程复制、从库复制出错导致相关进程停止。为了保证数据的时效性,OneProxy提供了复制时效性检查,用于自动剔除延迟节点。

  OneProxy提供两种时效性检查方式

  A)运行show slave status\G,获得Seconds_Behind_Master值,即为延迟大小。

    该方法好处是直接使用了MySQL自身提供的功能,只需查询从节点即可知道延迟。缺点在于该值在某些情况下不准确。

B) 针对第一个方法的缺点,Percona公司提供了pt-heart-beat,可以准确的检测主从延迟。OneProxy吸收了pt-heart-beat的设计原理。

假设主(192.168.15.128:3319)

   从1(192.168.15.128:3318)

   从2(192.168.15.128:3316) 

针对A)方案,在proxy.conf中增加如下配置项,其中用户名和密码的设置请参考http://www.cnblogs.com/youge-OneSQL/p/4579881.html

[oneproxy]
keepalive = 1
event-threads = 4
log-file = log/oneproxy.log
pid-file = log/oneproxy.pid
lck-file = log/oneproxy.lck

mysql-version = 5.7.12
proxy-address = :3307
proxy-master-addresses.1 = 192.168.15.128:3319@server1
proxy-slave-addresses.2 = 192.168.15.128:3318@server1
proxy-slave-addresses.3 = 192.168.15.128:3316@server1

proxy-user-list = test/1378F6CC3A8E8A43CA388193FBED5405982FBBD3@test

proxy-charset = gbk_chinese_ci
proxy-group-policy = server1:read-slave

proxy-secure-client = 127.0.0.1
proxy-sequence.1 = default
proxy-httpserver =:8080

repadmin-username =test
repadmin-password =1378F6CC3A8E8A43CA388193FBED5405982FBBD3
proxy-group-slavedelay=server1:2
proxy-license = 9244B81320619F1C

针对B)方案,即是在A方案的基础上增加proxy-replication-check = 1

keepalive = 1
event-threads = 4
log-file = log/oneproxy.log
pid-file = log/oneproxy.pid
lck-file = log/oneproxy.lck

mysql-version = 5.7.12
proxy-address = :3307
proxy-master-addresses.1 = 192.168.15.128:3319@server1

#如果是两个master的话,比如双机房可以把下面的注释去掉

#proxy-master-addresses.2 = 192.168.15.128:3320@server1

proxy-slave-addresses.2 = 192.168.15.128:3318@server1
proxy-slave-addresses.3 = 192.168.15.128:3316@server1

proxy-user-list = test/1378F6CC3A8E8A43CA388193FBED5405982FBBD3@test

proxy-charset = gbk_chinese_ci
proxy-group-policy = server1:read-slave

proxy-secure-client = 127.0.0.1
proxy-sequence.1 = default
proxy-httpserver =:8080

repadmin-username =test
repadmin-password =1378F6CC3A8E8A43CA388193FBED5405982FBBD3
proxy-group-slavedelay=server1:2
proxy-license = 9244B81320619F1C

proxy-replication-check = 1

该方案会在默认的数据库test中创建一个表oneproxy_replication_check

select * from oneproxy_replication_check;
+----+------------+
| id | col2 |
+----+------------+
| 1 | 1475049446 |
+----+------------+
1 row in set (0.00 sec)

通过比较主从节点间的时间戳大小,即可计算出延迟。

OneProxy自动剔除延迟节点的更多相关文章

  1. Redis 哨兵节点之间相互自动发现机制(自动重写哨兵节点的配置文件)

    Redis的哨兵机制中,如果是多哨兵模式,哨兵节点之间也是可以相互感知的,各种搜索之后出来的是千篇一律的一个基础配置文件,在配置当前哨兵节点的配置文件中,并没有配置其他哨兵节点的任何信息.如下是一个哨 ...

  2. linux驱动开发(四) 字符设备驱动框架(自动创建设备节点)

    代码如下 #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> # ...

  3. I.MX6 linux eGalaxTouch 自动获取设备节点

    I.MX6 linux eGalaxTouch 自动获取设备节点 \\\\\\\\\\\\\\-*- 目录 -*-///////////// | 一. 需求: | 二. /proc/bus/input ...

  4. platform型设备在/dev目录下自动创建设备节点的分析【转】

    转自:http://blog.csdn.net/rockrockwu/article/details/7357648 系统启动过程中platform设备.驱动注册完毕,为什么在/dev目录下就自动创建 ...

  5. ceph脚本-自动部署计算机节点

    依然还在加班中,最近确实忙的脚打后脑勺! 又花了些时间丰富ceph脚本,可以连带着自动部署计算机节点了. 这一部分内容是后加的.可以关注我的公众号获取更多的项目代码和讲解!波神与你同行哦,加油!!!

  6. easyui Tree模拟级联勾选cascadeCheck,节点选择,父节点自动选中,节点取消,父节点自动取消选择,节点选择,所有子节点全部选择,节点取消,所有子节点全部取消勾选

    最近项目中用到easyui tree,发现tree控件的cascadeCheck有些坑,不像miniui 的tree控件,级联勾选符合业务需求,所以就自己重新改写了onCheck事件,符合业务需求.网 ...

  7. Spring Cloud Config 自动刷新所有节点

    全局刷新 详细参考:<Sprin Cloud 与 Docker 微服务架构实战>p160-9.9.2节 1.使用Spring Cloud Config 客户端时,可以使用 /refresh ...

  8. cassandra集群缩容与剔除问题节点

    今天在操作cassandra集群数据迁移时发生了一些意料之外的事情,服务器迁移前与迁移后同样为5台,但是不知道是什么原因导致的,迁移过后的节点居然多出了一台cassandra节点,个人瞬间感觉莫名其妙 ...

  9. [Elixir002]节点启动后自动连接其它节点

    问题: 如何指定一个节点在启动后自动连接到别的节点上? 这个我们要使用到sys.config,这是erlang的配置文件,这个文件一般都是$ROOT/releases/Vsn下 1. 首先我们要先启动 ...

随机推荐

  1. Android Monkey测试(转载)

    Monkey是一款通过命令行来对我们APP进行测试的工具,可以运行在模拟器里或真机上.它向系统发送伪随机的用户事件流,实现对正应用程序进行压力测试. 官方介绍 :https://developer.a ...

  2. Java连接SqlServer2008数据库(转)

    Java连接SqlServer2008数据库 首先下载JDBC:下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=21599 下 ...

  3. Samsung S4卡屏卡在开机画面的不拆机恢复照片一例

    大家好!欢迎再次来到我Dr.wonder的世界, 今天我给你们带来Samsung S4 I9508 卡屏开在开机画面的恢复!非常de经典. 首先看图 他开机一直卡在这里, 然后 ,我们使用专业仪器,在 ...

  4. 电脑装的是office2013,右键新建却是2007,或者右键新建菜单中没有excel2013问题解决办法。

    我的office出现了两个问题,因为工作比较忙,也没有着急解决,今天实在受不了了,花费一下午才找到解决方法. 原来万恶之源都是可恶的wps,以后千万不安装kingsoft了. 第一个问题:excel打 ...

  5. iperf交叉编译:

    下载:http://sourceforge.net/projects/iperf 1. 先把iperf-2.0.4.tar.gz解压到你的目录下.2. cd iperf-2.0.43. ./confi ...

  6. C# DllImport“调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配 ”

    调用外部dll时,出现如下问题 C# DllImport“调用导致堆栈不对称.原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配.请检查 PInvoke 签名的调用约定和参数与非托管的目标 ...

  7. ABAP代码编辑器设置--界线

    ABAP编辑器每行允许的最大字符数: Utilities->Settings打开选项卡: 勾选:Downward-Compat.line Length(72) 设置后看到的效果: 设置步骤:

  8. treetable 前台 累计计算树值 提交后台

    treetable   累计计算树值 效果图 html  代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E ...

  9. 在Excel中制作雷达图

    雷达图的作用 雷达图是专门用来进行多指标体系比较分析的专业图表.从雷达图中可以看出指标的实际值与参照值的偏离程度,从而为分析者提供有益的信息.雷达图一般用于成绩展示.效果对比量化.多维数据对比等等,只 ...

  10. 19-ES6(2)

    Promise 概念 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果. 特点 对象的状态不受外界影响.Promise 对象代表一个异步操作,有三种 ...