标题: mysql 主从复制参数slave_net_timeout [打印本页] 作者: admin 时间: 2020-6-5 17:58 标题: 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。