MySQL复制以及调优原理的示例分析


这篇文章主要介绍MySQL复制以及调优原理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MySQL自带复制方案,带来好处有:数据备份。
负载均衡。
分布式数据
概念介绍:主机(master):被复制的数据库。
从机(slave):复制主机数据的数据库。复制步骤:
(1). master记录更改的明细,存入到二进制日志(binary log)。
(2). master发送同步消息给slave。
(3). slave收到消息后,将master的二进制日志复制到本地的中继日志(relay log)。
(4). slave重现中继日志中的消息,从而改变数据库的数据。下面放一张经典的图片来说明这一过程:
实现复制有以下步骤:1.设置MySQL主库的二进制日志以及server-idMySQL配置文件一般存放在/etc/my.cnfserver-id是数据库在整个数据库集群中的唯一标示,必须保持唯一。
重启MySQL。
注:如果MySQL配置文件中已经配置过此文件,则可以跳过此步。
2.新建复制账号在主库里面新建用于从库复制主库数据的账号,并授予复制权限。3.设置MySQL主库server-id和第二步配置一样,要注意的地方有两点:如果不需要从库作为别的从库的主库的话,则不需要配置二进制日志。很多时候复制并不需要复制主库的全部数据库(特别是mysql的信息配置库)。因此可以配置replicate_do_db来指定复制的数据库 4.从库初始化主库的数据如果数据量不算大的情况下,可以使用mysqldump工具导出主库数据,然后导入到从库里面。如果数据量大的情况下应该使用Xtrabackup去进行数据库的导出,此处不做介绍。
可能会有同学问,为什么不直接使用二进制日志进行初始化呢?如果我们主库运行了比较长的一段时间,并不太适合使用从库根据二进制日志进行复制数据,直接使用二进制日志去初始化从库会比较耗费时间和性能。更多的情况下,主库的二进制日志的配置项没有打开,因此也就不存在以前操作的二进制日志。 5.开启复制从库执行下面命令注意最后的两个命令:MASTER_LOG_FILE和MASTER_LOG_POS,表示从库的从哪个二进制文件开始读取,偏移量从那里开始,这两个参数可以从我们导入的SQL里面找到。开启复制这时候就完成了复制,在主库更新一个数据或者新增数据在从库都可以查询到结果。

在主库上也可以查询的到复制线程的状态。
MySQL复制的日志格式有三种,开发云主机域名根据主库存放数据的方式不同有以下三种:mysql5.7以前默认使用statement格式。
设置方式,可以在配置文件设置(首选):或临时设置全局变量(当前mysql连接有效):由于两个主从服务器一般都会放在同一个机房里面,两者之间同步的速度会会比较快,为保证强一致性,应该首选行的日志格式记录(row),保证传输素速度可以选择混合方式(mixed)。
而行的日志格式有下面三种记录方式:mysql默认是full,最好修改成minimal。由于主库和从库之间不在同一个主机上,数据同步之间不可以避免地具有延迟,解决的方法有添加缓存,业务层的跳转等待,如果非得从数据库层面去减缓延迟问题,可以从复制时候的三大步骤(主库产生日志,主从传输日志,从库还原日志内容)入手:
1.主库写入到日志的速度
控制主库的事务大小,分割大事务为多个小事务。
如插入20w的数据,改成插入多次5000行(可以利用分页的思路)2.二进制日志在主从之间传输时间
主从之间尽量在同一个机房或地域。
日志格式改用MIXED,且设置行的日志格式未minimal,原理详见上面的日志格式介绍。3.减少从库还原日志的时间
在MySQL5.7版本后可以利用逻辑时钟方式分配SQL多线程。
设置逻辑时钟:slave_parallel_type=‘logical_clock’;
设置复制线程个数:slave_parallel_workers=4;重启MySQL最好切换未MySQL用户再进行操作,不然文件启动后会有权限问题。搭建好MySQL的环境后就设置好配置里的log-bin选项,这样以后如果数据库需要从库的复制,就不需要重启数据库,打断业务的进行。需要打开主库的防火墙的对应的mysql端口。由于从库同步主库的方式,监听主库发送的信息,而不是轮询,因此如果出现通信出现了故障,重新连接后如果主库没有进行数据更改的操作,从库不会同步数据,因此可以通过插入空事务的方式同步数据。以上是“MySQL复制以及调优原理的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注开发云行业资讯频道!

相关推荐: 写出高性能sql的方法

小编给大家分享一下写出高性能sql的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先要搞明白什么叫执行计划?执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 06/19 21:56
Next 06/19 21:57

相关推荐