mysql 主从复制参数slave_net_timeout
slave_net_timeout
slave_net_timeout表示slave在slave_net_timeout时间之内没有收到master的任何数据(包括binlog,heartbeat),slave认为连接断开,会进行重连。
超时后,立刻重连,后续重连的时间间隔由 CHANGE MASTER TO 命令的MASTER_CONNECT_RETRY 参数指定。
重连次数上限由MASTER_CONNECT_RETRY定义,默认值3600s.
可以通过change master to 设置,也可以通过--master-retry-count 命令行参数指定.
查看和修改
mysql >show variables like 'slave_net_timeout';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| slave_net_timeout | 60 |
+-------------------+-------+
1 row in set (0.00 sec)
将slave_net_timeout修改为6000
mysql >set global slave_net_timeout=6000;
mysql >show variables like 'slave_net_timeout';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| slave_net_timeout | 6000 |
+-------------------+-------+
1 row in set (0.00 sec)
测试
一个master,一个slave,都已经正常启动。
首先,在slave上做如下操作:
- 设置slave_net_timeout为6000
- 执行stop slave停止复制
- 使用change master to 将heartbeat修改为180s,connect_retry修改为50s
change master to MASTER_CONNECT_RETRY=50,MASTER_HEARTBEAT_PERIOD=180;
- 执行start slave开启复制
在slave上使用show processlist,确认I/O线程,SQl线程已经启动成功。
在master上同样使用show processlist,确认Binlog Dump进程已启动成功。
接着,在master上做如下操作:
清除iptables所有规则,排除干扰
iptables -F
设置iptables规则,禁止发送数据到slave
iptables -A OUTPUT -p tcp -d 192.4.222.202 -j DROP
其中,192.4.222.202是slave的IP地址。这条规则的含义表示丢弃所有master发往slave的数据包,确保没有任何数据(binlog和heartbeat)从master发送给slave。
这样,slave应该在超过slave_net_timeout的时间后,开始重连master。
但是从slave打印的错误日志看,却是在master开启iptables后47s,就开始重连,这个值跟slave_net_timeout设置的6000s没有对应关系。
这是个奇怪的问题。
参考
16.1.6.3 Replication Slave Options and Variables
mysql 主从复制参数slave_net_timeout的更多相关文章
- Mysql主从复制参数详解
目录 一.简介 二.例子 同步 修改 三.参数 一.简介 change master to配置和改变slave服务器用于连接master服务器的参数,以便slave服务器读取master服务器的bin ...
- MySQL 主从复制相关参数
列举了MySQL主从复制主要的相关参数 binlog server_id 服务器在集群中唯一标识符 log_bin[=binlog_name] 启动二进制日志 log_bin_index 二进制日志索 ...
- [转]MySQL主从复制原理介绍
MySQL主从复制原理介绍 一.复制的原理 MySQL 复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等等).每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以 ...
- mysql 主从复制以及binlog 测试
###mysql查看binlog日志内容 https://blog.csdn.net/nuli888/article/details/52106910 mysql的binlog日志位置可通过show ...
- MySQL主从复制原理及配置过程
一.Mysql数据库的主从复制原理过程: (多实例的安装请参考我的另一篇文章:https://www.cnblogs.com/Template/p/9258500.html) Mysql的主从复制是一 ...
- MySQL相关参数总结
保留个原文链接,避免被爬虫爬了过去,以便后续更正补充:https://www.cnblogs.com/wy123/p/11273023.html MySQL参数繁多,是一个需要根据具体业务.软硬件环境 ...
- 14、mysql主从复制实战
14. 1.服务器准备: 一台服务器,多实例,客户端编码是utf8,服务端编码是utf8; [root@backup 3308]#netstat -tunlp | grep 330 tcp 0 0 0 ...
- Linux下MySQL主从复制(Binlog)的部署过程
什么是 MySQL 的主从复制 Mysql内建的复制功能是构建大型高性能应用程序的基础, 将Mysql数据分布到多个系统上,这种分布机制是通过将Mysql某一台主机数据复制到其它主机(slaves)上 ...
- Linux下MySQL主从复制(GTID)+读写分离(ProxySQL)-实施笔记
GTID概念: GTID( Global Transaction Identifier)全局事务标识.GTID 是 5.6 版本引入的一个有关于主从复制的重大改进,相对于之前版本基于 Binlog 文 ...
随机推荐
- DRF-Rest_Framework 学习文档
序列化器(serializer) 定义Serializer 1. 定义方法 Django REST framework中的Serializer使用类来定义,须继承自rest_framework.ser ...
- IntelliJ IDEA总是提示Cannot resolve symbol
之前还用得好好的,不知道是点了工具栏位置的包路径还是哪里,然后几乎工程每个Java文件都在报Cannot resolve symbo错误,即使像String这样的语句也报错,我可以保证所有该引用的包都 ...
- Linux下的shell与make
Linux下的shell与make 一.shell 1.1 什么是shell ● 用户与Linux的接口 ● 命令解释器 ● 支持多用户 ● 支持复杂的编程语言 ● Shell有很多种,如:csh,t ...
- 微信公众号开发遇到simplexml_load_string 未定义
1.Go to /etc/php/7.0/fpm and edit php.ini 取消注释: extension=php_xmlrpc.dll 2. sudo apt-get update ...
- phpcms 新建模块安装
1.安装配置---小问题: 估计就我这么傻 T-T ,改成自己的目录名. 2.模块的目录: 模块存放在modules文件夹里,打开这个文件夹,里面的一个文件夹代表一个模块. 3.建立模块以及其基本目 ...
- 标准I/O读写文件
一.函数原型 1.FILE *fopen(const char *path, const char *mode); path:要打开文件路径及文件名: mode: r 打开只读文件,该文件必须存在. ...
- Python学习笔记第十二周
目录: 数据库介绍 mysql 数据库安装使用 mysql管理 mysql 数据类型 常用mysql命令事务 索引 创建数据库 外键 增删改查表 权限 python 操作mysql ORM sqla ...
- 查看Windows端口及端口关闭方法
一.查看已开放的端口: 1.借助系统自带MS-DOS命令查看开放的端口(Win2000/XP/server2003) 在开始-运行-输入cmd,打入netstat -an(注意-前有个小空格),在IP ...
- base标签对svg的影响
页面地址:http://127.0.0.1:8080/fullLink_node.html?project_id=2 base:<base href="http://127.0.0.1 ...
- 一天掌握python爬虫
一天掌握python爬虫日记: (小爬虫,NO 我们是大蜘蛛 ) 数据抓取: requests:requests 的底层实现其实就是 urllib开源地址:https://github.com/ken ...