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-retry-count 命令行参数指定. 默认值3600s.

查看和修改

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上做如下操作:

  1. 设置slave_net_timeout为6000
  2. 执行stop slave停止复制
  3. 使用change master to 将heartbeat修改为180s,connect_retry修改为50s

    sql change master to MASTER_CONNECT_RETRY=50,MASTER_HEARTBEAT_PERIOD=180;

  4. 执行start slave开启复制

在slave上使用show processlist,确认I/O线程,SQl线程已经启动成功。

在master上同样使用show processlist,确认Binlog Dump进程已启动成功。

接着,在master上做如下操作:

  1. 清除iptables所有规则,排除干扰

     iptables -F 
  2. 设置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

原文地址:https://www.cnblogs.com/lanyangsh/p/10200278.html

时间: 2024-10-01 06:39:31

mysql 主从复制参数slave_net_timeout的相关文章

MySQL主从复制参数注解

MySQL主从复制参数注解 master所有参数 1 log-bin=mysql-bin  1.控制master的是否开启binlog记录功能: 2.二进制文件最好放在单独的目录下,这不但方便优化.更方便维护. 3.重新命名二进制日志很简单,只需要修改[mysqld]里的log_bin选项, 如下例子:要重新调整logbin的路径为“/home/mysql/binlog” [mysqld] log_bin=/home/mysql/binlog/binlog.log ll /home/mysql/

mysql主从复制-CHANGE MASTER TO 语法详解

1 简介    配置mysql主从复制时,在从机上需要进行CHANGE MASTER TO操作,以确定需要同步的主机IP,用户名,密码,binlog文件,binlog位置等信息. 2 基本语法与实例    2.1 CHANGE MASTER TO的语法如下: CHANGE MASTER TO option [, option] ...   option:       MASTER_BIND = 'interface_name'      MASTER_HOST = 'host_name'    

MySQL主从复制的常见拓扑、原理分析以及如何提高主从复制的效率总结

一.主从复制搭建方法参考 1.MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解请参考: http://blog.csdn.net/xlgen157387/article/details/51331244#comments 2.使用mysqlreplicate命令快速搭建 Mysql 主从复制: http://blog.csdn.net/xlgen157387/article/details/52452394 二.Mysql 主从复制的常用拓扑结构 2.1.一主一从 是最

[转]MySQL主从复制原理介绍

MySQL主从复制原理介绍 一.复制的原理 MySQL 复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等等).每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以便从服务器可以对其数据拷贝执行相同的更新. MySQL 使用3个线程来执行复制功能,其中1个在主服务器上,另两个在从服务器上.当发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句.主服务器创建一个线程将二进制日志中的内容发送到从服务器.该线程

(转)MySQL主从复制的常见拓扑、原理分析以及如何提高主从复制的效率总

二.Mysql 主从复制的常用拓扑结构 2.1.一主一从 是最基础的复制结构,用来分担之前单台数据库服务器的压力,可以进行读写分离.<喎?"/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxoMiBpZD0="22一主多从">2.2.一主多从 一台 Slave 承受不住读请求压力时,可以添加多台,进行负载均衡,分散读压力. 还可以对多台 Slave 进

MySQL主从复制原理及配置过程

一.Mysql数据库的主从复制原理过程: Mysql的主从复制是一个异步的复制过程,数据将从一个Mysql数据库(master)复制到另一个Mysql数据库(slave),在Master和Slave之间实现整个主从复制的过程是由三个线程参与完成的.其中有两个线程(SQL线程和I/O线程)在Slave端,另外一个线程(I/O线程)在Master端 ,要实现Mysql的主从复制,首先必须打开Master端的binlog记录功能,否则就无法实现.因为整个复制过程实际上就是Slave从Master获取b

Mysql 配置文件参数详解

#客户端设置,即客户端默认的连接参数 [client] #默认连接端口 port = 3306 #用于本地连接的socket套接字 socket = /data/mysqldata/3306/mysql.sock #编码 default-character-set = utf8mb4 #服务端基本设置 [mysqld] #MySQL监听端口 port = 3307 #为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件 socket = /data/mysqldata/3307/mys

mysql主从复制与读写分离

MySQL主从复制与读写分离 MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面. 因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部

MySQL主从复制介绍

1.1 MySQL主从复制原理介绍 MySQL的主从复制是一个异步的复制过程(虽然一般情况下感觉是实时的),数据将从一个MySQL数据库(我们称之为Master)复制到另一个MySQL数据库(我们称之为Slave),在Master与Slave之间实现整个主从复制的过程是由三个线程参与完成的,其中有两个线程(SQL线程和IO线程)在Slave端,另外一个线程(I/O线程)在Master端. 要实现MySQL的主从复制,首先必须打开Master端的binlog记录功能,否则就无法实现.因为整个复制过