今天一同事误删除了一个会员,导致会员个人信息及会员的商品等相关信息均被删除,捣鼓两小时,感觉挺好!特记录之!
环境:
操作系统:centos 6.4 LNMP
2014-4-11号删除之前数据,我想恢复2014-4-2号到2014-4-11号15:30之间的数据,
首先,用mysqlbinlog命令对二进制的日志文件解析成文本文件。如:
进入mysql-bin目录
[root@localhost var]#cd /usr/local/mysql/var
将近期的多个bin-log二进制日志生成txt文件供查找posid值
[root@localhost var]#/usr/local/mysql/bin/mysqlbinlog mysql-bin.000019 > /mysql-bin.000019.txt
找到两个时间点之间的posid ,如下方的at后的值
BEGIN
/*!*/;
# at 2871466
#140411 15:13:58 server id 1 end_log_pos 2871608 Querythread_id=13378exec_time=0error_code=0
SET TIMESTAMP=1397200438/*!*/;
DELETE FROM `wuxichuan_lrgd`.`ecs_sessions` WHERE expiry < 1397198638
/*!*/;
# at 2871608
#140411 15:13:58 server id 1 end_log_pos 2871687 Querythread_id=13378exec_time=0error_code=0
SET TIMESTAMP=1397200438/*!*/;
COMMIT
通过posid 恢复数据:
[root@localhost var]# /usr/local/mysql/bin/mysqlbinlog --no-defaults mysql-bin.000019 --start-pos=4768240 --stop-pos=4772798 | mysql -f -uroot -ppassword
--no-defaults 和 mysql -f 命令强制跳过错误提示!
ERROR 1062 (23000) at line 1282948: Duplicate entry '353' for key 'PRIMARY'
ERROR 1062 (23000) at line 1296933: Duplicate entry '1600' for key 'PRIMARY'
[root@localhost var]# /usr/local/mysql/bin/mysqlbinlog --no-defaults mysql-bin.000018 --start-pos=4 --stop-pos=85648 | mysql -f -uroot -pzgzszj@#2013
ERROR 1062 (23000) at line 47: Duplicate entry '495' for key 'PRIMARY'
ERROR 1062 (23000) at line 709: Duplicate entry '4619' for key 'PRIMARY'
ERROR 1062 (23000) at line 972: Duplicate entry '4620' for key 'PRIMARY'
ERROR 1062 (23000) at line 1005: Duplicate entry '4621' for key 'PRIMARY'
ERROR 1062 (23000) at line 1169: Duplicate entry '4622' for key 'PRIMARY'
ERROR 1062 (23000) at line 1202: Duplicate entry '4623' for key 'PRIMARY'
ERROR 1062 (23000) at line 1267: Duplicate entry '4624' for key 'PRIMARY'
ERROR 1062 (23000) at line 1340: Duplicate entry '4625' for key 'PRIMARY'
ERROR 1062 (23000) at line 1448: Duplicate entry '4626' for key 'PRIMARY'
ERROR 1062 (23000) at line 1517: Duplicate entry '4627' for key 'PRIMARY'
ERROR 1062 (23000) at line 1996: Duplicate entry '3170' for key 'PRIMARY'
ERROR 1062 (23000) at line 2011: Duplicate entry '3170' for key 'PRIMARY'
ERROR 1062 (23000) at line 2078: Duplicate entry '9826' for key 'PRIMARY'
出现这些提示,说明成功,congratunations!!!!!!!!!