Hunter的大杂烩

January 17, 2018

mysql 5.6上由于外键约束导致关联表数据诡异消失的事件

Filed under: 技术话题 — hunter @ 2:37 pm

事件情况:

1.  业务经常发现某个表数据莫名消失,反复重新导入多次,还会重现,一开始以为是某人误操作

2. 直到当日上午刚导完数据,下午数据就消失了,这时call运维介入调查

运维介入调查过程:

1. 获取数据消失期间的binlog

2. 逐条分析日志,发现从上午导入完成后,直到介入调查为止,只有灵星几条删除日志;

3. 一开始以为是mysql 5.6的binlog日志比较特殊,row级别变更没有用sql记录,发现不是

4. 从mysql error日志中没有发现,系统错误日志中没有发现,排除因为系统故障导致数据回滚;

5. 从外键约束角度检查,发现关联表用 foreign key references 到主表 on delete cascade

6. 在关联表数据更新完毕时间点之后,发现有批量更新主表数据的sql,初步判断是因为批量更新主表时,导致关联表数据被自动删除;

结论:由于外键约束导致的关联表数据更新,不会有binlog产生

No Comments

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress