绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
MySQL从库生成大量小的relay log案例模拟
2019-10-22 16:25:23
近看到"八怪"写的《MySQL:产生大量小relay log的故障一例》,因之前也遇到类似的情况,一直没搞懂原理及复现,看完此文章后,本着实践是检验真理的标准的原则,决定自己也手动模拟一番,加深印象。其中的模拟步骤与原文中不一致,感兴趣的小伙伴也可以自己动手模拟。
 
1.  案例模拟
原理啥的原文已介绍,此处不再赘述,只是直接进行案例模拟。
1.1  修改参数
从库上查看
mysql> select Heartbeat from mysql.slave_master_info;+-----------+| Heartbeat |+-----------+|         5 |+-----------+1 row in set (0.00 sec)
从库上修改
/**   先查看slave_net_timeout参数 */mysql> show variables like '%slave_net_timeout%';+-------------------+-------+| Variable_name     | Value |+-------------------+-------+| slave_net_timeout | 10    |+-------------------+-------+1 row in set (0.00 sec)
/** 修改参数slave_net_timeout * /mysql> set global slave_net_timeout =2;Query OK, 0 rows affected (0.00 sec)
因设置的值比较小,所以效果很明显。

1.2  主从同步调整
/**  先停止同步 */mysql> stop slave;Query OK, 0 rows affected (0.00 sec)
/** 调整为延迟60s ,此步骤可以不设置也可以复现,亲测 */mysql> change master to master_delay=60;Query OK, 0 rows affected (0.01 sec)
/** 开启同步 */mysql> start slave;Query OK, 0 rows affected (0.01 sec)
1.3  查看relay log
会发现每秒生产1个很小的relay log
-rw-r----- 1 mysql mysql  200 Oct 22 15:59 relay_34.000001-rw-r----- 1 mysql mysql  366 Oct 22 15:59 relay_34.000002-rw-r----- 1 mysql mysql  366 Oct 22 15:59 relay_34.000003-rw-r----- 1 mysql mysql  366 Oct 22 15:59 relay_34.000004-rw-r----- 1 mysql mysql  366 Oct 22 15:59 relay_34.000005-rw-r----- 1 mysql mysql  366 Oct 22 15:59 relay_34.000006-rw-r----- 1 mysql mysql  366 Oct 22 15:59 relay_34.000007-rw-r----- 1 mysql mysql  366 Oct 22 15:59 relay_34.000008-rw-r----- 1 mysql mysql  366 Oct 22 15:59 relay_34.000009-rw-r----- 1 mysql mysql  366 Oct 22 15:59 relay_34.000010-rw-r----- 1 mysql mysql  366 Oct 22 15:59 relay_34.000011-rw-r----- 1 mysql mysql  366 Oct 22 15:59 relay_34.000012-rw-r----- 1 mysql mysql  366 Oct 22 15:59 relay_34.000013-rw-r----- 1 mysql mysql  366 Oct 22 15:59 relay_34.000014-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000015-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000016-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000017-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000018-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000019-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000020-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000021-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000022-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000023-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000024-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000025-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000026-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000027-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000028-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000029-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000030-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000031-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000032-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000033-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000034-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000035-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000036-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000037-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000038-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000039-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000040-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000041-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000042-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000043-rw-r----- 1 mysql mysql  366 Oct 22 16:00 relay_34.000044-rw-r----- 1 mysql mysql  366 Oct 22 16:01 relay_34.000045-rw-r----- 1 mysql mysql  366 Oct 22 16:01 relay_34.000046-rw-r----- 1 mysql mysql  366 Oct 22 16:01 relay_34.000047-rw-r----- 1 mysql mysql  366 Oct 22 16:01 relay_34.000048-rw-r----- 1 mysql mysql  366 Oct 22 16:01 relay_34.000049-rw-r----- 1 mysql mysql  366 Oct 22 16:01 relay_34.000050-rw-r----- 1 mysql mysql  366 Oct 22 16:01 relay_34.000051-rw-r----- 1 mysql mysql  366 Oct 22 16:01 relay_34.000052-rw-r----- 1 mysql mysql  320 Oct 22 16:01 relay_34.000053-rw-r----- 1 mysql mysql 2.3K Oct 22 16:01 relay_34.index
至此也就模拟出相应的现象。
 
2.  搬点原理过来
如果满足下面三个条件,将会出现案例中的故障:
1)主从中的MASTER_HEARTBEAT_PERIOD的值大于从库slave_net_timeout2)主库当前压力很小持续slave_net_timeout设置时间没有产生新的Event3) 之前主从有一定的延迟

按照这个标准去模拟就可以复现了。

如果文章对你有用,请小伙伴们点个"在看",或转发,谢谢。


精彩推荐:

1. MySQL不停地自动重启怎么办

2. 升级python,就是这么简单

3. MySQL里trx_mysql_thread_id为0 的事务导致大量锁等待超时该咋整

4. mysql8.0新增用户及加密规则修改的那些事

5.Postgresql部署及简单操作

6.比hive快10倍的大数据查询利器-- presto

7. 国产数据库部署初体验

8. 监控利器出鞘:Prometheus+Grafana监控MySQL、Redis数据库

9.   PostgreSQL主从复制--物理复制

10. PostgreSQL主从复制--逻辑复制


分享好友

分享这个小栈给你的朋友们,一起进步吧。

数据库干货铺
创建时间:2021-12-13 09:36:52
致力于分享数据库、大数据、运维等方面相关知识,并通过生产环境遇到的实战案例分享排坑技巧等
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 数据库干货铺
    栈主

小栈成员

查看更多
  • miemieMIA
  • janefengwang
戳我,来吐槽~