MYSQL 二进制日志

Mysql 二进制日志

   Mysql 服务层日志

      mysql 二进制日志 慢查日志 通用日志
         二进制日志:记录了所有对Mysql数据库的修改事件,包括增删改查事件和对表结构的事件
         二进制日志的格式:
                show :  show VARIABLES like 'binlog_format';(查看二进制日志格式)
                set :  set SESSION binlog_format=statement;(设置位段的 5.7为row)
            基于段的格式 binlog_format=STATEMENT (5.7之前默认使用的格式)
               优点:
                  日志记录量相对较小,节省磁盘及网络I/O
               缺点;
                  必须要记录上下文的信息    保证语句在从服务器上执行的结果在主服务器上相同
                  特定函数如 UUID(),user()
                  这样非确定性函数还是无法复制
                  可能造成MySQL复制的主备服务器数据不一致
                基于行的格式 binlog_format=ROW
                    show : show VARIABLES like 'binlog_format';
                    set : set session binlog_format=row;
                    Row格式可以避免MySQL复制中出现得主从不一致问题
                    同一SQL语句修改了10000条数据的情况下,基于段的日志格式只会记录这个sql语句,而基于行的日志会有10000条记录分别记录每一行
                    的数据修改
                    *优点:
                        1.使mysql主从复制更加安全
                        2.对每一行数据对修改比基于段对复制高效,降低主从复制的时间
                        3.误操作而修改了数据库中的数据,同时有没有备份可以恢复时,我们可以通过分析二进制日志,对日志中记录的数据修改操作
                        做反向的处理方式来达到恢复数据的目的
                    *缺点:
                        1.记录日志量大。
                            show: show variables like 'binlog_row_image'
                            binlog_row_image = [FULL|MINIMAL|NOBLOB](提供了三种日志方式)
                混合日志格式
                    binlog_format=NIXED
                    特点 
                        1.根据SQL语句由系统决定在基于段和基于行段日志格式中进行选择
                        2.数据量大小由所执行段sql语句决定
                            
    Mysql 存储引擎层日志

      innodb重做日志,回滚日志等

 

posted @ 2022-06-09 22:45  phpwyl  阅读(23)  评论(0编辑  收藏  举报