Mysql - 关于relay_log_recovery参数的测试 (3)

[root@mysqlb relaybin]# mysqlbinlog -vv slave-relay-bin.000013

image


从库照例又生成了一个slave-relay-bin.000013,不过这个依然是个空日志

启动从库的slave线程
(root@localhost)[hello]> start slave;

查看从库的状态

image


可以看到Exec_Master_Log_Pos没变,Read_Master_Log_Pos增长了,我就在这里不明白,为什么sql线程不去执行日志呢,而且还多了一个线程System lock?

查看relay log

image

[root@mysqlb relaybin]# mysqlbinlog -vv slave-relay-bin.000014

image

可以看到启动slave线程后,又生成了一个新的relay log,而且之前没有执行的relay log条目的确又进到这个新的relay log中了。但是此刻sql线程并没有执行relay log,应该就是system lock在作怪。

放大招,重启从库来达到释放锁的目的,再启动slave线程

image

可以看到现在Slave_SQL_Running_State已经不是System lock了。

在从库查看t2表的数据

image


可以看到数据并没有任何丢失,由此证明在从库中将relay_log_recovery设置为ON,能避免由于从库relay log损坏导致的主从不一致的情形。


四、总结

在从库中最好将relay_log_recovery设置为ON。如果有哪位高手知道system lock是个什么情况,期待您的留言。写作不易,如果帮到了你,希望你点个赞,鼓励下博主。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzpyw.html