mysql主从,slave_net_time参数,IO和SQL两个YES,seconds_behind_master=0,数据不同步

先了解mysql主从复制有关的3个参数的含义:

  1. slave_net_timeout

    mysql主从复制时,master和slave之间的网络中断,但是master和slave都没有察觉,slave会等待slave_net_timeout时间后(默认3600s),才能认为网络出现故障,然后才会重连并且追赶这段时间主从的数据。

2.master_connect_retry

    主从网络中断等待重连的时间,默认60s

3.master_retry_count

    检测到网络中断后,slave尝试重连master的次数。


设置在slave上的slave_net_timeout时间,在这个时间内slave没有收到master的更新binlog数据,slave才会判断网络故障或者主从之间的连接断开,并向主库发起重连请求,更新数据。


slave长时间同步master的数据,并且显示两个YES,SECONDS BEHIND MASTER=0,可以判断网络中断,解决办法:

  1. 重启slave    stop slave;    start slave;

  2. 等待slave_net_timeout之后,slave主动尝试重连master。


总结:

  1. slave_IO_running,slave_sql_running,seconds_behind_master,这三个状态值判断主从状态不一定准确。用pt-heartbea,更好。

  2. slave_net_timeout不要用默认值(3600s),设置一个能接受的延时时间(一般5s)


修改slave_net_timeout参数值

  1. 即时生效

    mysql -uroot -pxxx

    >set global slave_net_timeout=5

    >show variables like '%timeout%';



2.修改配置文件my.cnf

    [mysqld]

    slave-net-timeout=5


同时进行即时生效修改,和my.cnf配置文件修改,可以实现无需重启mysql服务,是该配置生效。



你可能感兴趣的:(mysql,master,slave,io_running,SQL_runnning)