一张思维导图纵观MySQL数据安全体系
《一张思维导图纵观MySQL数据安全体系》要点:
简介和团队内部的同事一起沟通,讨论了MySQL数据库系统数据安全性问题,主要针对MySQL丢数据 、主从不一致的场景,还有业务层面使用不得当导致主备库数据结构不一样的情况,本文是基于以上的讨论和总结做的思维导图. 思维导图内容展示OS
单机(1)redo log innodb_flush_log_at_timeout < 5.6.6: 每隔一秒将redo log buffer中的数据刷新到磁盘 >= 5.6.6:每隔innodb_flush_log_at_timeout秒将数据刷新到磁盘中去 (2)binlog sync_binlog? =1 (3)innodb buffer data 不同的flush mathod刷数据的图形展示.图片来自hatemysql.com. (4)InnoDB 落盘 MySQL数据落盘的路径,图片来自李春hatemysql.com. 主从不一致
业务架构常见的双写 “丢”数据的场景(1)slave_skip_counter 不合理 slave_skip_counter =1 (2)DB Crash,OS正常 innodb_flush_log_at_trx_commit=0 innodb_flush_log_at_trx_commit=1 innodb_flush_log_at_trx_commit=2 (3)DB正常,OS Crash 带有 BBU innodb_flush_log_at_trx_commit=0 (4)slave非实时写redo和binlog丢失数据 在slave机器上会存在三个文件来保证事件的正确重放:relay log、 relay log info、 master info. (5)异步模式
(6)semi sysnc after_commit 比如主库操作update t1 set val=1 where id=10将val从5修改为1 .
分析:
|