|
先了解mysql主从复制有关的3个参数的含义:
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,可以判断网络中断,解决办法:
重启slave stop slave; start slave;
等待slave_net_timeout之后,slave主动尝试重连master。
总结:
slave_IO_running,slave_sql_running,seconds_behind_master,这三个状态值判断主从状态不一定准确。用pt-heartbea,更好。
slave_net_timeout不要用默认值(3600s),设置一个能接受的延时时间(一般5s)
修改slave_net_timeout参数值
即时生效
mysql -uroot -pxxx
>set global slave_net_timeout=5
>show variables like '%timeout%';
2.修改配置文件my.cnf
[mysqld]
slave-net-timeout=5
同时进行即时生效修改,和my.cnf配置文件修改,可以实现无需重启mysql服务,是该配置生效。
|
|
|
|
|
|
|