视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQL实现基于时间点的恢复
2020-11-09 12:03:07 责编:小采
文档


前提:mysql必须打开二进制日志功能二进制日志会记录 DML DCL DDL[mysqld]log-bin=/data/mysql-bin时间点1 Thu Dec 16 13:53:54

前提:
mysql必须打开二进制日志功能
二进制日志会记录 DML DCL DDL

[mysqld]
log-bin=/data/mysql-bin

时间点1 Thu Dec 16 13:53:54 CST 2010
建立一个表
插入一些数据
mysql> use test;
mysql> create table upl (id int , user varchar(16));
mysql> insert into upl values (1,’tom’),(2,’mary’),(3,’bean’);

时间点2 Thu Dec 16 13:55:47 CST 2010
删除一些数据(误操作)
mysql> delete from upl where id=2;

时间3 Thu Dec 16 13:56:26 CST 2010
增加一些新数据
mysql> insert into upl values (4,’moto’),(5,’nokia’);

恢复需求:保留所有的数据,包括时间1,,2,3的数据

强烈建议:做任何恢复之前都给数据库做一个完整备份

开始恢复之前刷新日志
mysql> flush logs;

mysql> show master status \G;
************************** 1. row **************************
File: mysql-bin.000002 《--表示数据库使用该日志文件记录
Position: 106
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)

模拟实验就可以直接把原来的数据表删除,真实情况一般都是把要恢复的数据恢复到一个临时的数据库
mysql> drop table upl;

读取误操作之前的语句
# /usr/local/mysql/bin/mysqlbinlog --stop-date=’2010-12-16 13:55:47′ /data/mysql-bin.000001 | mysql -u root -p123 -S /data/mysql.sock

跳过误操作的时间点,读取二进制日志文件 提取时间3的语句
# /usr/local/mysql/bin/mysqlbinlog --start-date=’2010-12-16 13:56:26′ /data/mysql-bin.000001 | mysql -u root -p123 -S /data/mysql.sock

下载本文
显示全文
专题