标签:文本 alt 开始 cto from 状态 out base64 pre
基于时间点与位置恢复利用二进制日志可以实现基于时间与位置的恢复,例如由于误操作删除了一张表,这时候完全恢复是没用的,因为日志里面还是存在错误语句,我们需要的是恢复到误操作之前的状态,然后跳过误操作数据,再恢复后面操作语句
假定需要往里数据库中插入两条数据,但由于误操作,两条插入语句中间删除了条数据,而这条数据不应该删除的。
create database cai; //创建新数据了
创建表 ,并且写入两行化
开启二进制日志
完全备份一次
mysqladmin -u root -p flush-log //生成日志文件,此内容为添加的zhangsan,lisi的信息
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 > /opt/info.txt //将二进制文件解密后生成生一个新的文本文件.txt
mysqlbinlog --no-defaults --bases64-output=decode-rows -v mysql-bin.000002 >/opt/info.txt //把解密后二进制文件重新生成一个文本文档
vim /opt/infon.txt //查看里面需要的参数
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
........./////省略
时间点 操作了对info表进行了添加
# at 341 //标记号 也可以居位置标记号恢复 也可也基于时间点恢复
180707 12:05:31 server id 1 end_log_pos 391 CRC32 0x7a99109e Write_rows: table id 108 flags: STMT_END_F
### INSERT INTO `cai`.`info`
### SET
### @1=‘xiaokeai01‘
### @2=88.00
# at 391
#180707 12:05:31 server id 1 end_log_pos 422 CRC32 0x8be308f6 Xid = 35
错误标记号 时间点
# at 609
#180707 12:06:12 server id 1 end_log_pos 657 CRC32 0xe5821dc6 Delete_rows: table id 108 flags: STMT_END_F
### DELETE FROM `cai`.`info`
### WHERE
### @1=‘zhangsan‘
### @2=88.00
# at 657
正确操作 标记号 时间点
# at 875
#180707 12:06:16 server id 1 end_log_pos 925 CRC32 0x60ef5b40 Write_rows: table id 108 flags: STMT_END_F
### INSERT INTO `cai`.`info`
### SET
### @1=‘xiaokeai02‘
### @2=88.00
# at 925
mysqlbinlog --no-defaults --stop-datetime=‘2018-07-07 12:06:12‘ /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p //基于时间恢复 从开头到指定的时间停止 之前的都会执行操作
mysqlbinlog --no-defaults --start-datetime=‘2018-07-07 12:06:16‘ /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p //基于正确的时间恢复 从指定的时间点到结尾都会执行操作
mysqlbinlog --no-defaults --stop-position=‘558‘ /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p //错误操作 从开头的内容一直碰到 指定的错误行号便会停下 之前的都会执行
mysqlbinlog --no-defaults --stop-position=‘558‘ /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p //正确操作 从指定的正确的行号到结尾都会执行
# at 558 //标记号 stop--position=‘558‘
#180707 12:06:12 server id 1 end_log_pos 609 CRC32 0xcf4ae275 Table_map: `cai`.`info` mapped to number 108
# at 609 ///误删标记行开始
#180707 12:06:12 server id 1 end_log_pos 657 CRC32 0xe5821dc6 Delete_rows: table id 108 flags: STMT_END_F
### DELETE FROM `cai`.`info`
### WHERE
### @1=‘zhangsan‘
### @2=88.00
# at 657 //正确行开始 start
标签:文本 alt 开始 cto from 状态 out base64 pre
原文地址:http://blog.51cto.com/13660858/2137676