前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >再讲Mysql主从延迟(外赠MySQL异地多活的数据双向复制经验.pdf)

再讲Mysql主从延迟(外赠MySQL异地多活的数据双向复制经验.pdf)

作者头像
老七Linux
发布2018-05-31 12:46:42
1.2K0
发布2018-05-31 12:46:42
举报

数据库的集群架构都不陌生了,最熟悉也是应用最广泛的就是咱们熟知的主从,今天大概的回味下:

主从复制

MySQL复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。因此,要进行复制,必须在主服务器上启用二进制日志。

每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以便从服务器可以对其数据拷贝执行相同的更新。

从架构图中我们可以分析,在大并发量较大的情况下,会出现主从复制延迟这种问题,如何解决?目前已经有了比较成熟的方案。

主从复制原理图:
mark
mark

步骤1: 所有数据更新都会被主库记录到主库的二进制日志。

步骤2: 与此同时从库的IO线程会从主库上读取二进制日志,写入到从库的中继日志上。

步骤3: 从库的SQL线程读取中继日志上的内容来更新从库。

造成延迟的原因

1、并发较大的情况下,master产生的DDL和DML数量大于salve的可接受数。从库的Slave_SQL_Running是单线程作业,不能并发执行,所以当主库的TPS并发较高时,就容易产生延迟。

2、slave将主库的DDL和DML操作在slave实施。DML和DDL的IO操作是随即的,不是顺序的,成本高很多,还可能可slave上的其他查询产生lock争用,所以一个DDL卡主了,需要执行10分钟,那么所有之后的DDL会等待这个DDL执行完才会继续执行,这就导致了延时。

<DML(data manipulation language): 
它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。 

DDL(data definition language): 
DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。

DCL(Data Control Language): 
是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL >
如何解决?

1、减少slave同步延时的方案就是在架构上做优化,尽量让主库的DDL快速执行

2、主库写对数据安全性较高,比如sync_binlog=1,innodb_flush_log_at_trx_commit = 1 之类的设置,而slave则不需要这么高的数据安全,完全可以将sync_binlog设置为0或者关闭binlog,innodb_flushlog也可以设置为0来提高sql的执行效率

3、使用比主库更好的硬件设备作为slave

4、使用mysql5.7 参看 《MySQL 5.7 并行复制实现原理与调优

5、分库分表 http://www.cnblogs.com/hackxhao/p/5496254.html

这两篇文章写的很好,需要好好拜读!!

pdf获取链接:http://pan.baidu.com/s/1pLwRf4n

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017/12/15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 主从复制
  • 主从复制原理图:
  • 造成延迟的原因
  • 如何解决?
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档