mysql binlog 知识

如何开启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
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/1296.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2024/2/18作者: 辣条①号

目标:网络规划设计师、系统工程师、ceph存储工程师、云计算工程师。 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录