Binlog(二进制日志)
数据库管理中不可或缺的重要工具,记录了数据库中的所有变更操作,为数据恢复、主从复制和审计等关键功能提供了基础
- 是MySQL 服务器层维护的一种二进制格式的日志文件,记录了所有DDL(数据定义语句)和DML(数据操作语句),但不包括 select 和 show 等
作用:
- 数据恢复:某些场景下的数据恢复工作需要借助 Bin log 完成
- 主从复制:在 master 端开启 Binlog ,Slave 端通过读取 Master 端的Binlog 实现数据同步
- 审计: 用户可以通过 Binlog 中的信息来进行审计,判断是否有对数据库进行注入攻击
Binlog 在数据恢复中的应用
1.确定恢复点
2.提取相关事件
3.应用Binlog
4.验证恢复结果
开启Binlog
- 在 MySQL 配置文件中添加 log-bin
- log-bin 是日志文件的路径
关闭Binlog
- 注释掉 log-bin ,或删除 log-bin 这一行
- 然后添加一行 skip_log_bin
查看Binlog状态
- 使用 show master status; 和 show binary logs; 命令查看Binlog状态和Binlog文件列表
查看是否开启 bin_log
- log-bin 的值为ON即为开启状态,OFF即为关闭状态
show golbal variables like 'log_bin';
查看Binlog 日志
show binary logs;
常用配置
#启用二进制日志
#log_bin 指定了二进制日志文件的前缀名称。日志文件将以这个前缀开始,后跟一个数字后缀
[mysqld]
log_bin = mysql-bin
#设置日志格式
#ROW每行变化都记录在日志中。
#statement 记录执行的SQL语句
#MIXED 结合ROW和STATEMENT,根据情况选择最合适的模式
[mysqld]
binlog_format = ROW | STATEMENT | MIXED
#指定日志文件大小,max_binlog_size指定了单个binlog 文件的最大尺寸。当达到这个大小时,MySQL将创建一个新的日志文件
[mysqld]
max_binlog_size = 100M
#二进制日志缓存大小,binlog_cache_size指定了事务日志的大小,用于ROW 格式的binlog
[mysqld]
binlog_cache_size = 32K