memory引擎表在主从复制过程中为什么会导致sql线程中断

1、对memory引擎的操作会不会记录到binlog里,并传到slave进行回放?

首先创建一个memory引擎表:

然后在表中插入一条记录

让我们看看对memory引擎的表进行的操作会不会记录到binlog里

可见对memory引擎的表进行的操作会记录到binlog,这里记录的binlog有点奇怪,有#号,像是被注释掉了一样,让我们再看看从库上会不会这条insert语句会不会在从库进行回放。下图为在从库执行的select语句,可见这条insert语句会在从库进行回放。

2、为什么memory引擎的表会造成主从中断

假设存在这样一种场景,先在数据库1上创建memory引擎的表test,然后在其中插入一条记录10,之后对数据库1进行物理备份。因为表test为memory引擎,所以物理备份过程中只会拷贝test的表结构文件test.frm。之后把这个物理备份导入到数据库2中,然后让数据库2成为数据库1的从库,之后在数据库1(主库)上执行delete from test where i=10,因为从库上没有10这条记录(因为物理备份中只包含test.frm,也就是表结构,没有包含10这条数据),所以会导致从回放这条binlog的时候报错。(这里没有进行过测试,待之后测试)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值