在主从复制中,有几个参数是非常重要的,包括slave_net_timeout, MASTER_HEARTBEAT_PERIOD, MASTER_CONNECT_RETRY,以及 MASTER_RETRY_COUNT。

  • slave_net_timeout表示slave在slave_net_timeout时间之内没有收到master的任何数据(包括binlog,heartbeat),slave认为连接断开,需要重连。默认值60s。

  • MASTER_HEARTBEAT_PERIOD表示心跳的周期。当MASTER_HEARTBEAT_PERIOD时间之内,master没有binlog event发送给slave的时候,就会发送心跳数据给slave。

  • MASTER_CONNECT_RETRY表示重连的时间间隔。

    slave_net_timeout超时后,立刻重连,后续重连的时间间隔由 CHANGE MASTER TO 命令的MASTER_CONNECT_RETRY 参数指定。默认值60s。

  • MASTER_CONNECT_RETRY表示重连的最大次数。默认值86400次。

下面就介绍下这些参数的如何查看和设置。

1.slave_net_timeout的查看和设置

查看slave_net_timeout可以使用如下方式:

  1. mysql> select @@global.slave_net_timeout;
  2. +----------------------------+
  3. | @@global.slave_net_timeout |
  4. +----------------------------+
  5. | 60 |
  6. +----------------------------+
  7. 1 row in set (0.00 sec)

或者

  1. mysql> show variables like 'slave_net_timeout';
  2. +-------------------+-------+
  3. | Variable_name | Value |
  4. +-------------------+-------+
  5. | slave_net_timeout | 50 |
  6. +-------------------+-------+
  7. 1 row in set (0.00 sec)

设置slave_net_timeout:

  1. mysql> set global slave_net_timeout=50;
  2. Query OK, 0 rows affected (0.00 sec)
  3. mysql> show variables like 'slave_net_timeout';
  4. +-------------------+-------+
  5. | Variable_name | Value |
  6. +-------------------+-------+
  7. | slave_net_timeout | 50 |
  8. +-------------------+-------+
  9. 1 row in set (0.00 sec)

2.MASTER_HEARTBEAT_PERIOD, MASTER_CONNECT_RETRY,以及 MASTER_RETRY_COUNT

2.1设置

MASTER_HEARTBEAT_PERIOD

MASTER_HEARTBEAT_PERIOD通过change master to 命令设置。

change master to 不带heartbeat参数,默认被设置成slave_net_timeoute的一半。当slave_net_timeoute改变时,不会修改heartbeat。

MASTER_RETRY_COUNT

MASTER_RETRY_COUNT可以通过命令行参数--master-retry-count 设置,也可以通过change master to的方式设置。

不推荐使用前者,鼓励使用change master to。

MASTER_CONNECT_RETRY

MASTER_CONNECT_RETRY 通过change master to 命令设置。

2.2 查看

从库上 执行show slave status,可以查看Master_Retry_Count,Connect_Retry等,以及更多主从复制信息Master_Info_File的存放位置。

  1. >show slave status\G
  2. *************************** 1. row ***************************
  3. Slave_IO_State: Waiting for master to send event
  4. Master_Host: xr-dba-mysql-hazyytest-test01
  5. Master_User: XXXX
  6. Master_Port: 5002
  7. Connect_Retry: 10
  8. Master_Log_File: mysql-bin.000001
  9. Read_Master_Log_Pos: 488
  10. Relay_Log_File: relay.000002
  11. Relay_Log_Pos: 698
  12. Relay_Master_Log_File: mysql-bin.000001
  13. Slave_IO_Running: Yes
  14. Slave_SQL_Running: Yes
  15. Replicate_Do_DB:
  16. Replicate_Ignore_DB:
  17. Replicate_Do_Table:
  18. Replicate_Ignore_Table:
  19. Replicate_Wild_Do_Table:
  20. Replicate_Wild_Ignore_Table:
  21. Last_Errno: 0
  22. Last_Error:
  23. Skip_Counter: 0
  24. Exec_Master_Log_Pos: 488
  25. Relay_Log_Space: 892
  26. Until_Condition: None
  27. Until_Log_File:
  28. Until_Log_Pos: 0
  29. Master_SSL_Allowed: No
  30. Master_SSL_CA_File:
  31. Master_SSL_CA_Path:
  32. Master_SSL_Cert:
  33. Master_SSL_Cipher:
  34. Master_SSL_Key:
  35. Seconds_Behind_Master: 0
  36. Master_SSL_Verify_Server_Cert: No
  37. Last_IO_Errno: 0
  38. Last_IO_Error:
  39. Last_SQL_Errno: 0
  40. Last_SQL_Error:
  41. Replicate_Ignore_Server_Ids:
  42. Master_Server_Id: 48201050
  43. Master_UUID: 10035945-ddeb-11e9-89f3-0022ac533a2f
  44. Master_Info_File: mysql.slave_master_info
  45. SQL_Delay: 0
  46. SQL_Remaining_Delay: NULL
  47. Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
  48. Master_Retry_Count: 86400
  49. Master_Bind:
  50. Last_IO_Error_Timestamp:
  51. Last_SQL_Error_Timestamp:
  52. Master_SSL_Crl:
  53. Master_SSL_Crlpath:
  54. Retrieved_Gtid_Set: 10035945-ddeb-11e9-89f3-0022ac533a2f:1-2
  55. Executed_Gtid_Set: 10035945-ddeb-11e9-89f3-0022ac533a2f:1-2
  56. Auto_Position: 1
  57. 1 row in set (0.00 sec)

从上面结果可以看到,Master_Info_File存放在数据表中:

Master_Info_File: mysql.slave_master_info

接着通过查询数据表,查看这几个参数:

  1. >select * from mysql.slave_master_info\G
  2. *************************** 1. row ***************************
  3. Number_of_lines: 23
  4. Master_log_name: mysql-bin.000001
  5. Master_log_pos: 488
  6. Host: xr-dba-mysql-hazyytest-test01
  7. User_name: XXX
  8. User_password: XXXX
  9. Port: 5002
  10. Connect_retry: 10
  11. Enabled_ssl: 0
  12. Ssl_ca:
  13. Ssl_capath:
  14. Ssl_cert:
  15. Ssl_cipher:
  16. Ssl_key:
  17. Ssl_verify_server_cert: 0
  18. Heartbeat: 8
  19. Bind:
  20. Ignored_server_ids: 0
  21. Uuid: 10035945-ddeb-11e9-89f3-0022ac533a2f
  22. Retry_count: 86400
  23. Ssl_crl:
  24. Ssl_crlpath:
  25. Enabled_auto_position: 1
  26. 1 row in set (0.00 sec)

这里,Connect_retry为10,Heartbeat为8,Retry_count 为86400。

  1. >select Connect_retry,Heartbeat, Retry_count from mysql.slave_master_info;
  2. +---------------+-----------+-------------+
  3. | Connect_retry | Heartbeat | Retry_count |
  4. +---------------+-----------+-------------+
  5. | 10 | 8 | 86400 |
  6. +---------------+-----------+-------------+
  7. 1 row in set (0.00 sec)

另外,这几个参数是配置在从库上的,主库上执行查询命令,结果是空的。

  1. >select Connect_retry,Heartbeat, Retry_count from mysql.slave_master_info;
  2. Empty set (0.00 sec)

在MySQL5.7版本中,还可以在replication-connection-configuration-table中查看这几个参数。

  1. > select * from performance_schema.replication_connection_configuration\G
  2. *************************** 1. row ***************************
  3. CHANNEL_NAME:
  4. HOST: 10.23.66.88
  5. PORT: 5002
  6. USER: repl
  7. NETWORK_INTERFACE:
  8. AUTO_POSITION: 1
  9. SSL_ALLOWED: NO
  10. SSL_CA_FILE:
  11. SSL_CA_PATH:
  12. SSL_CERTIFICATE:
  13. SSL_CIPHER:
  14. SSL_KEY:
  15. SSL_VERIFY_SERVER_CERTIFICATE: NO
  16. SSL_CRL_FILE:
  17. SSL_CRL_PATH:
  18. CONNECTION_RETRY_INTERVAL: 60
  19. CONNECTION_RETRY_COUNT: 86400
  20. HEARTBEAT_INTERVAL: 60.000
  21. TLS_VERSION:
  22. 1 row in set (0.01 sec)

3.参考

slave_net_timeout

change master to

replication-connection-configuration-table

slave_net_timeout, MASTER_HEARTBEAT_PERIOD, MASTER_CONNECT_RETRY,以及 MASTER_RETRY_COUNT设置和查看的更多相关文章

  1. Linux命令 — 设置或查看网络配置命令ifconfig

    ifconfig命令用于设置或查看网络配置,包括IP地址.网络掩码.广播地址等.它是linux系统中,使用频率最高的关于网络方面的命令. 1. 命令介绍 命令格式: ifconfig [interfa ...

  2. php禁用函数设置及查看方法详解

    这篇文章主要介绍了php禁用函数设置及查看方法,结合实例形式分析了php禁用函数的方法及使用php探针查看禁用函数信息的相关实现技巧,需要的朋友可以参考下 本文实例讲述了php禁用函数设置及查看方法. ...

  3. 【命令】Ubuntu设置和查看环境变量

    转自[Ubuntu]Ubuntu设置和查看环境变量 查看环境变量 env env命令是environment的缩写,用于列出所有的环境变量 export 单独使用export命令也可以像env列出所有 ...

  4. [转载]linux下core文件设置与查看

    转自:https://blog.csdn.net/dingqinghui/article/details/77855330?locationNum=9&fps=1 linux下core文件设置 ...

  5. (转)Linux下设置和查看环境变量

    原文地址:<Linux下设置和查看环境变量> Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1. 永久的:需要修改配置文件,变量永久生效. 2. 临时的:使用e ...

  6. 【Ubuntu】Ubuntu设置和查看环境变量

    [Ubuntu]Ubuntu设置和查看环境变量    转载 https://blog.csdn.net/White_Idiot/article/details/78253004 1. 查看环境变量 查 ...

  7. Redis 密码设置和查看密码

    Redis 密码设置和查看密码 redis没有实现访问控制这个功能,但是它提供了一个轻量级的认证方式,可以编辑redis.conf配置来启用认证. 1.初始化Redis密码: 在配置文件中有个参数: ...

  8. Redis 密码设置和查看密码(二)

    Redis 密码设置和查看密码 redis没有实现访问控制这个功能,但是它提供了一个轻量级的认证方式,可以编辑redis.conf配置来启用认证. 1.初始化Redis密码: 在配置文件中有个参数: ...

  9. redis设置、查看和校验密码

    Redis没有实现访问控制这个功能,但是它提供了一个轻量级的认证方式(密码),可以通过编辑[redis.conf]配置文件来启用认证,这里简单介绍一下Redis中如何设置.查看和校验密码(登录验证和操 ...

随机推荐

  1. ROS学习笔记9-创建ros消息和服务

    该节内容主要来自于官方文档的两个小节:1.使用rosed来编辑2.创建ros消息的服务 先来看rosed: rosedrosed命令是rosbash的一部分,使用rosed可以直接编辑包中的一个文件, ...

  2. linux零散知识

    1.Linux的“| ”管道符用法 上一条命令的输出,作为下一条命令参数 方式:command1 | command2 Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符 ...

  3. AngularJS1.X指令

    <!DOCTYPE html> <html ng-app='myApp'> <head> <meta charset="utf-8"> ...

  4. 「HNOI/AHOI2018」道路

    传送门 Luogu 解题思路 考虑树形 \(\text{DP}\) 设状态 \(dp[u][i][j]\) 表示从首都走到点 \(u\) ,经过 \(i\) 条公路,\(j\) 条铁路的最小不方便值. ...

  5. 091、Java中String类之使用“==”比较

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  6. java字符集编码乱码问题

    博客分类: web javajspservlet  最近做网页这块时碰到了正文字符乱码问题.别看这小小的一个问题,对我来说却花费了好长一段时间.现在让我慢慢分析它吧(说实话.这些有部分是从网上找的,但 ...

  7. JavaScript 环境污染

    定义全局变量有 3 种方式: 在任何函数体外直接使用 var 语句声明. var f = 'value1'; 直接添加属性到全局对象上.在 Web 浏览器中,全局作用域对象为 window. wind ...

  8. 安装双版本python2 和 python 3 所产生得问题 解决yum对python依赖版本问题

    错误 解决办法 一是升级yum  直接使用python3以上版本 二是修改yum的解释器为旧版本python2.7,即将连接文件   /usr/bin/python    软连接回   /usr/bi ...

  9. vue axios 数据请求实现

    1.安装nginx npm install axios --save-dev cnpm install axios --save-dev 使用淘宝镜像 保存依赖文件到本地 装好了.packjson.j ...

  10. P1075 链表元素分类

    P1075 链表元素分类 转跳点: