计算机网络/计算机科学与应用/系统/运维/开发

MySQl 二进制日志

BINLOG 记录所有DDL 数据定义语言和DML数据操纵语言 但不包括数据查询

SELECT SHOW语句


作用:

灾难时的数据恢复

mysql的主从复制 mysql8版本中 默认二进制是开启的

show variables like '%log_bin%'


日志格式:

STAEMENT  基于sql语句的日志记录,对数据修改的sql都会记录在日志文件中

ROW 基于行的日志记录 记录的是每一行的数据变更(默认)

MIXED 混合前面2种格式,默认采用STATEMENT 


show variables like '%binlog_format%';


日志查看:

由于日志是二进制方式存储的,不能直接读取,需要通过二进制日志查询工具

mysqlbinlog查看


mysqlbinlog [选项] logfilename


选项:

 -d  指定数据库名称 只列出指定的数据库相关操作

 -o 忽略掉日志中的前n行命令

 -v 将行事件(数据变更)重构为sql语句

 -w 将行事件(数据变更) 重构为sql语句 并输出注释信息


日志删除:

如果业务庞大,每天会生成很多binlog数据巨大,太多会占用磁盘空间


reset master 删除全部binlog日志 删除之后 日志编号 从binlog.000001重新开始

purge master logs to 'binlog.****' 删除****编号之前的所有日志

purge master logs before 'yyyy-mm-dd hh24:mi:ss' 删除日志为yyyy-mm-dd hh24:mi:ss之前产生的所有日志


也可以在mysql的配置文件中配置二进制日志的过期时间,自动过期:

show variables like '%binlog_expire_logs_seconds%';

2592000 s 为 30天


泰山崩于前而色不变,麋鹿兴于左而目不瞬,然后可以制利害,可以待敌。--心术

评论

^