漫漫长路,其修远兮!
分类: Mysql/postgreSQL
2013-04-17 16:01:01
【实施恢复步骤】
1. 停止应用并做当前时间点的一个全备(如果恢复操作失败,用于回档)
2. 关闭binlog后重启mysqld
1)注释/etc/my.cnf配置文件中的log_bin配置
2)mysqladmin --socket=/tmp/mysql_tmp.sock -uroot shutdown
3)mysqld_safe --defaults-file=/etc/my.cnf --socket=/tmp/mysql_tmp.sock &
3. 进入mysql客户端并删除yewu_test库
drop database yewu_test;
4. 还原2013-04-05 19:57:29的全备
create database yewu_test;
mysql --default-character-set=gbk -uroot yewu_test --socket=/tmp/mysql_tmp.sock < yewutest.sql
5. 恢复截止到2013-04-05 20:01:13的数据(即恢复drop table delete_test前的所有数据)
mysqlbinlog -uroot --socket=/tmp/mysql_tmp.sock --stop-date='2010-04-05 20:01:13' binlog.000010 | mysql -uroot --socket=/tmp/mysql_tmp.sock
6. 恢复从2013-04-05 20:01:15到当前的数据(即恢复drop table delete_test后的所有数据)
mysqlbinlog -uroot --socket=/tmp/mysql_tmp.sock --start-date='2010-04-05 20:01:15' binlog.000010 | mysql -uroot --socket=/tmp/mysql_tmp.sock
7. 打开binlog并重启mysqld
./bin/mysqld_safe --defaults-file=/etc/my.cnf --socket=/tmp/mysql_tmp.sock &
8. 此时在yewu_test库看到delete_test表的所有数据已经还原,另外,在drop table delete_test之后所有的数据库操作(建表和插入数据到after_time_table),也同样被恢复。
说明:上述基于时间的恢复,精确的时间是从binlog文件中找到该语句对应的具体时间点。