仿站工具在线,百度快速排名用什,石青网站推广软件,电商网站 知名案例文章目录 1.binlog相关配置是否开启binlogbinlog日志格式 2.导出binlog日志mysqlbinlog指令updateinsertdeletebinlog中的事件 3.数据恢复4.特别注意的坑为什么bash脚本执行mysqlbinlog#xff0c;无法找到指令为什么执行mysqlbinlog#xff0c;无法数据恢复 1.binlog相关配置… 文章目录 1.binlog相关配置是否开启binlogbinlog日志格式 2.导出binlog日志mysqlbinlog指令updateinsertdeletebinlog中的事件 3.数据恢复4.特别注意的坑为什么bash脚本执行mysqlbinlog无法找到指令为什么执行mysqlbinlog无法数据恢复 1.binlog相关配置
binlog会记录mysql的增、删、改操作通过binlog可以实现数据恢复、数据备份。 是否开启binlog
show variables like %log_bin%;#查询是否开启binlogmysql8默认开启binlog.index是binlog索引目录记录生成的binlog日志日志内容在对应的binlog下通过后缀区分。 binlog日志格式
show global variables like %binlog_format%;#查询binlog格式必须是row格式2.导出binlog日志
可以通过mysqlbinlog指令对binlog进行操作通常我们使用这个指令将binlog导出为文本或sql。
mysqlbinlog指令
# 使用 mysqlbinlog 增量备份数据库
mysqlbinlog -v --start-datetime2023-12-04 21:40:00 --stop-datetime2023-12-05 00:00:00 $log_path --base64-outputdecode-rows $backup_file
# 使用 mysqlbinlog 增量备份数据库通过position
mysqlbinlog -v --start-position258879782 --stop-position258880137 $log_path --base64-outputdecode-rows $backup_file-v 用于显示伪sql语句-datetime时间条件-position位置条件$log_pathbinlog日志所在的绝对路径根据实际情况修改–base64-outputdecode-rows将Base64编码的输出解码为可读的格式$backup_file输出内容位置根据实际情况修改
update 打开输出的binlog可以看到伪sql通过这些我们可以找到想要的日志和操作。
insert delete binlog中的事件
在binlog中begin和commit对应事务的开始和提交 show BINLOG EVENTS in binlog.000037;#显示binlog中的事件完整的一条update操作delete、insert类似
3.数据恢复
在binlog中找到对应需要恢复的日志就可以进行数据恢复 数据恢复需要从begin位置开始到commit位置注意区分是使用End_log_pos这个作为起始 例如在原有数据为
然后update某一个字段 现在想要回到之前的数据那么可以查询binlog找到刚刚update的上一条日志 找到错误操作的上一条事务操作使用begin到commit的End_log_pos作为条件那么恢复指令为
mysqlbinlog --no-defaults --start-position267706997 --stop-position267707266 binlog.000037 | mysql -uroot -p123456填写对应的start和end位置在后面加上账号密码执行发现数据已经恢复
4.特别注意的坑
为什么bash脚本执行mysqlbinlog无法找到指令
需要使用mysqlbinlog的绝对地址 whereis mysqlbinlog # 获取绝对地址改为
/usr/local/mysql/bin/mysqlbinlog --no-defaults --start-position267705701 --stop-position267705953 binlog.000037 | mysql -uroot -p为什么执行mysqlbinlog无法数据恢复
mysqlbinlog恢复数据需要使用同一表的pos信息进行恢复如果跨表操作可以通过查看伪sql进行辅助恢复