Mysql实现基于时间点的恢复
2011-06-13 09:54
495 查看
前提:
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
本文出自 “网络米人” 博客,请务必保留此出处http://troy226.blog.51cto.com/333781/555283
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
本文出自 “网络米人” 博客,请务必保留此出处http://troy226.blog.51cto.com/333781/555283
相关文章推荐
- MySQL实现基于时间点的恢复
- Mysql实现基于时间点的恢复
- 使用 mysqldump 实现 MySQL 5.7 基于时间点的恢复
- MySQL基于时间点恢复和快照恢复实例
- MySQL增量备份恢复和基于时间点与位置的恢复
- mysql 开发进阶篇系列 43 逻辑备份与恢复(基于时间和位置的不完全恢复)
- mysql基于时间恢复的一个过程
- 手动实现表空间基于时间点的恢复
- Oracle技术之手动实现表空间基于时间点的恢复
- mysql备份、基于时间或位置恢复
- Oracle技术之手动实现表空间基于时间点的恢复
- mysql 基于时间点恢复
- Mysql的增量备份 及基于时间点与位置的恢复
- MySQL 备份和恢复(二)基于LVM实现几乎热备 推荐
- SQL Server时间粒度系列----第6节基于当前日的小时数和分钟数与mysql unix_timestamp和from_unixtime的mssql实现
- MySQL时间点数据恢复测试步骤--基于Position
- 基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
- 生产消费者4 - 实现一个基于优先级的传输队列【消费顺序是由优先级决定的而不是抵达时间】
- MySQL 5.6.13 GTID复制,以及基于Amoeba实现读写分离 推荐
- 关于MYSQL group by 分组按时间取最大值的实现方法