前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL中关于复制的一些知识点

MySQL中关于复制的一些知识点

作者头像
AsiaYe
发布2019-11-06 17:13:48
2930
发布2019-11-06 17:13:48
举报
文章被收录于专栏:DBA随笔
MySQL中关于复制的一些知识点

今天回家重新看了看《高性能MySQL》这本书里面复制一节,每次看都有不同的收获,这里把我自己觉得比较重要的一些点罗列出来,大家可以温故知新一下:

1、MySQL复制大部分是向后兼容的,高版本的服务器可以作为低版本服务器的备库。这个方法通常被用来在MySQL版本升级的时候用,例如一个5.5版本的mysql作为主库,可以搭建一个5.7版本的从库,待从库稳定运行之后,可以再来一个级联的5.7版本,形成5.5-->5.7--->5.7的复制关系,最后断掉第一个5.5,这就完成了版本迁移;

2、log_slave_update这个参数一般用来允许从库将自己的重做的事件也记录到自身的二进制日志中,从而可以成为新的主库。

3、主从关系确立之后,我们使用show processlist在主库上,可以看到一个dump线程,在从库上可以看见两个线程,一个IO线程一个SQL线程,注意这两个线程的time字段,IO线程的time字段指的是主从关系已经搭建的时间,而SQL线程的time字段指的是SQL线程目前空闲的时间。这两个线程在从库的用户都是system user;

4、推荐在复制的时候设置sync_binlog=1这个参数,这样MySQL在每次提交事务之前会将二进制日志同步到磁盘上,保证在服务器崩溃时候数据不会丢失。

5、从库上使用skip_slave_start参数能够阻止从库在崩溃后自动启动复制;

6、如果从库与主库的延迟比较大,从库的IO线程可能会写很多中继日志,可能会挤爆磁盘,这个时候可以通过配置relay_log_space_limit变量,如果中继日志的大小大于这个标量的值,会暂时停下IO线程;

7、如果不是必须,请不要使用binlog_do_db或者replicate_do_db以及binlog_ignore_db或者replicate_ignore_db之类的参数,这些参数在复制的过程中容易出现问题,例如:

use test;

delete from aaa.film;

当我们使用上面的参数控制aaa这个数据库,然后使用这样的一个SQL操作,其结果是都会在test数据库上过滤delete表,而不是在我们想要的aaa数据库里面,这里需要特别注意。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

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

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

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