二十四、二进制日志截取与恢复
截取二进制日志
1、按照位置截取二进制日志
#使用>导出
$ mysqlbinlog --start-position=219 --stop-position=335 mysql-bin.000004 >/tmp/a.sql
2、按照时间截取二进制日志
#使用-r参数导出
$ mysqlbinlog \
--start-datetime="2021-03-30 17:14:15" \
--stop-datetime='2021-03-30 17:15:15' \
mysql-bin.000004 -r /tmp/b.sql
通过binlog恢复数据
只能作为辅助修复方法,如果数据太多日志数量也就越多不方便查找。
#模拟数据
mysql> create database haoge charset utf8mb4;
mysql> use haoge;
mysql> create table t1(id int);
mysql> insert into t1 values(1);
mysql> commit;
#模拟故障
mysql> drop database haoge;
#确认使用的日志文件
mysql> show master status;
#查看事件
mysql> show binlog events in 'mysql-bin.000004';
#如果事件太多可导出结果进行查找
$ mysql -e "show binlog events in 'mysql-bin.000004'; " > /tmp/mysql-bin.txt
#找到起点和终点,进行截取
$ mysqlbinlog --start-position=823 --stop-position=1420 /data/binlog/mysql-bin.000004 >/tmp/bin.sql
#恢复binlog
mysql> set sql_log_bin=0; #临时关闭二进制日志记录以防恢复时产生的新日志
mysql> source /tmp/bin.sql
mysql> set sql_log_bin=1;
学习来自:老男孩深标DBA课程 第六章 日志管理
今天的学习是为了以后的工作更加的轻松!