文章目录
如何开启mysql的binlog日志
cat /etc/my.cnf
[mysqld]
server-id=1 #这个id全局唯一,slaves上的id不能与之冲突
log-bin=mysql-bin #必须开启二进制日志功能
binlog_format = ROW # 设置binlog日志的类型
binlog基础介绍
# mysql binlog的三种工作模式
statement格式:不建议生产场景使用
row格式:建议生产场景使用
mixed格式:不建议生产场景使用(mysql5.1版本的过渡版本)
# binlog文件类型
二进制索引文件(后缀名为.index)
日志文件(后缀名为.0000*),记录数据库所有的DDL和DML(除查询语句select)语句事件
binlog相关查询和重置操作
# 查看binlog时候开启
mysql> show variables like 'log_bin%';
# 查看binlog的工作模式
mysql> show variables like 'binlog_format';
# 查看binlog过期天数自动清理,建议全备周期2被
mysql> show variables like 'expire_logs_days';
# 查看binlog日志文件所在点,最后一个为当前binlog日志文件
mysql> show master logs;
# 重新生产一个binlog日志(慎用哦)
mysql> flush logs;
# 重置(清空)所有binlog日志(慎用)
mysql> reset master;
mysqlbinlog用法
# 打印drop误删前后各10行,选择要恢复的结束位点 # at xxoo
mysqlbinlog -vv mysql-bin.000001 |grep "DROP xxoo" -A 10 -B 10
# 基于时间点恢复,指定结束和开始时间点,注意格式
mysqlbinlog --np-defaults --stop-datetime='2023-08-23 08:32:35' /data/mysql-bin.000001 | mysql -uroot -proot
mysqlbinlog --np-defaults --start-datetime='2023-08-23 08:32:35' /data/mysql-bin.000001 | mysql -uroot -proot
# 基于位置点恢复,指定结束和开始的位置点
mysqlbinlog --np-defaults --stop-position='853396' /data/mysql-bin.000001 | mysql -uroot -proot
mysqlbinlog --np-defaults --start-position='853396' /data/mysql-bin.000001 | mysql -uroot -proot
# 模拟oracle的闪回(前提是row格式的binlog)
额外介绍binlog解析工具 my2sql
项目地址:https://github.com/liuhr/my2sql
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论