测试MySQL8从库的relay_log_recovery参数

2023年 10月 19日 60.6k 0

版本:

 8.0.34 

relay_log_recovery – > OFF

表:

测试MySQL8从库的relay_log_recovery参数-1

从状态:

测试MySQL8从库的relay_log_recovery参数-2

主日志:

测试MySQL8从库的relay_log_recovery参数-3

关闭relay_log_recovery 实验

  1. 停止SQL slave 应用,主库插入,查询从库

测试MySQL8从库的relay_log_recovery参数-4

可见数据未同步

  1. 观测从库log状态 数据状态

测试MySQL8从库的relay_log_recovery参数-5

  1. 观测relay日志

测试MySQL8从库的relay_log_recovery参数-6

可见已经写入

模拟断电后消除该log再次观测log情况

测试MySQL8从库的relay_log_recovery参数-7

模拟丢失这个log

测试MySQL8从库的relay_log_recovery参数-8

打开mysql服务器

测试MySQL8从库的relay_log_recovery参数-9

可见生成一个新的relay日志且没有之前内容,观测slave状态

测试MySQL8从库的relay_log_recovery参数-10

可见主从状态是正常的,但是EXEC_MASTER_LOG_POS并没有和Read_MASTER_LOG_POS相等于,尝试切换主机log,发现从库表数据没有更新,丢失了两条插入数据。

测试MySQL8从库的relay_log_recovery参数-11

符合预期。

实验2:打开参数relay_log_recovery

测试MySQL8从库的relay_log_recovery参数-12

Log情况

测试MySQL8从库的relay_log_recovery参数-13

停止sqlthread

测试MySQL8从库的relay_log_recovery参数-1

插进去数据:

测试MySQL8从库的relay_log_recovery参数-15

中继日志已经存在插入

测试MySQL8从库的relay_log_recovery参数-16

模拟服务器崩溃丢失中继日志

测试MySQL8从库的relay_log_recovery参数-17

开启服务器可 见重新生成了个空的,和一个新的

测试MySQL8从库的relay_log_recovery参数-18

旧的日志破坏后生成了一个旧的和+1序号的新的log

测试MySQL8从库的relay_log_recovery参数-19

观测新的log可以发现,旧的为空,而内容追加到了新的日志里面,进入数据库观测

反复卡在这个等待事件,尝试重启…

Waiting for handler commit

测试MySQL8从库的relay_log_recovery参数-20

测试MySQL8从库的relay_log_recovery参数-21

重启后发现日志到了07号,且数据已经加载到备库表

测试MySQL8从库的relay_log_recovery参数-22

观察中继日志7,发现存在insert,且Read_Master_Log_Pos已经和Exec_Master_Log_Pos相等

测试MySQL8从库的relay_log_recovery参数-23

测试MySQL8从库的relay_log_recovery参数-24

为什么会出现那个等待事件呢?

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论