zoukankan      html  css  js  c++  java
  • slave_net_timeout, MASTER_HEARTBEAT_PERIOD, MASTER_CONNECT_RETRY,以及 MASTER_RETRY_COUNT设置和查看

    在主从复制中,有几个参数是非常重要的,包括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可以使用如下方式:

    mysql> select @@global.slave_net_timeout;
    +----------------------------+
    | @@global.slave_net_timeout |
    +----------------------------+
    |                         60 |
    +----------------------------+
    1 row in set (0.00 sec)
    

    或者

    mysql> show variables like 'slave_net_timeout';
    +-------------------+-------+
    | Variable_name     | Value |
    +-------------------+-------+
    | slave_net_timeout | 50    |
    +-------------------+-------+
    1 row in set (0.00 sec)
    

    设置slave_net_timeout:

    mysql> set global slave_net_timeout=50;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> show variables like 'slave_net_timeout';
    +-------------------+-------+
    | Variable_name     | Value |
    +-------------------+-------+
    | slave_net_timeout | 50    |
    +-------------------+-------+
    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_HEARTBEAT_PERIOD 设置的比slave_net_timeout大,当主库没有数据发送到从库时,从库就会频繁重连主库。
    • 如果MASTER_HEARTBEAT_PERIOD设置为0,表示禁用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的存放位置。

    >show slave statusG
    *************************** 1. row ***************************
                   Slave_IO_State: Waiting for master to send event
                      Master_Host: xr-dba-mysql-hazyytest-test01
                      Master_User: XXXX
                      Master_Port: 5002
                    Connect_Retry: 10
                  Master_Log_File: mysql-bin.000001
              Read_Master_Log_Pos: 488
                   Relay_Log_File: relay.000002
                    Relay_Log_Pos: 698
            Relay_Master_Log_File: mysql-bin.000001
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
                  Replicate_Do_DB:
              Replicate_Ignore_DB:
               Replicate_Do_Table:
           Replicate_Ignore_Table:
          Replicate_Wild_Do_Table:
      Replicate_Wild_Ignore_Table:
                       Last_Errno: 0
                       Last_Error:
                     Skip_Counter: 0
              Exec_Master_Log_Pos: 488
                  Relay_Log_Space: 892
                  Until_Condition: None
                   Until_Log_File:
                    Until_Log_Pos: 0
               Master_SSL_Allowed: No
               Master_SSL_CA_File:
               Master_SSL_CA_Path:
                  Master_SSL_Cert:
                Master_SSL_Cipher:
                   Master_SSL_Key:
            Seconds_Behind_Master: 0
    Master_SSL_Verify_Server_Cert: No
                    Last_IO_Errno: 0
                    Last_IO_Error:
                   Last_SQL_Errno: 0
                   Last_SQL_Error:
      Replicate_Ignore_Server_Ids:
                 Master_Server_Id: 48201050
                      Master_UUID: 10035945-ddeb-11e9-89f3-0022ac533a2f
                 Master_Info_File: mysql.slave_master_info
                        SQL_Delay: 0
              SQL_Remaining_Delay: NULL
          Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
               Master_Retry_Count: 86400
                      Master_Bind:
          Last_IO_Error_Timestamp:
         Last_SQL_Error_Timestamp:
                   Master_SSL_Crl:
               Master_SSL_Crlpath:
               Retrieved_Gtid_Set: 10035945-ddeb-11e9-89f3-0022ac533a2f:1-2
                Executed_Gtid_Set: 10035945-ddeb-11e9-89f3-0022ac533a2f:1-2
                    Auto_Position: 1
    1 row in set (0.00 sec)
    

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

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

    >select * from mysql.slave_master_infoG
    *************************** 1. row ***************************
           Number_of_lines: 23
           Master_log_name: mysql-bin.000001
            Master_log_pos: 488
                      Host: xr-dba-mysql-hazyytest-test01
                 User_name: XXX
             User_password: XXXX
                      Port: 5002
             Connect_retry: 10
               Enabled_ssl: 0
                    Ssl_ca:
                Ssl_capath:
                  Ssl_cert:
                Ssl_cipher:
                   Ssl_key:
    Ssl_verify_server_cert: 0
                 Heartbeat: 8
                      Bind:
        Ignored_server_ids: 0
                      Uuid: 10035945-ddeb-11e9-89f3-0022ac533a2f
               Retry_count: 86400
                   Ssl_crl:
               Ssl_crlpath:
     Enabled_auto_position: 1
    1 row in set (0.00 sec)
    

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

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

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

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

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

    > select * from performance_schema.replication_connection_configurationG
    *************************** 1. row ***************************
                     CHANNEL_NAME:
                             HOST: 10.23.66.88
                             PORT: 5002
                             USER: repl
                NETWORK_INTERFACE:
                    AUTO_POSITION: 1
                      SSL_ALLOWED: NO
                      SSL_CA_FILE:
                      SSL_CA_PATH:
                  SSL_CERTIFICATE:
                       SSL_CIPHER:
                          SSL_KEY:
    SSL_VERIFY_SERVER_CERTIFICATE: NO
                     SSL_CRL_FILE:
                     SSL_CRL_PATH:
        CONNECTION_RETRY_INTERVAL: 60
           CONNECTION_RETRY_COUNT: 86400
               HEARTBEAT_INTERVAL: 60.000
                      TLS_VERSION:
    1 row in set (0.01 sec)
    

    3.参考

    slave_net_timeout

    change master to

    replication-connection-configuration-table

  • 相关阅读:
    三菱Q系列PLC MC协议通讯
    相机常用属性配置简介[转]---Labview IMAQ 修改相机曝光等参数的方法
    数码显微镜的实际放大倍数的正确计算方法【转载】
    VS2012 C# 配置log4net
    CHM格式帮助文档无法打开的问题
    win10 下安装win7虚拟机
    杂记:使用RawCap和Wireshark对 127.0.0.1或localhost 进行抓包
    杂记:01
    linux应用编程一:文件IO和目录操作
    QTableWidget常用函数及注意事项
  • 原文地址:https://www.cnblogs.com/lanyangsh/p/12375274.html
Copyright © 2011-2022 走看看