欢迎光临
我们一直在努力

MySQL 数据恢复 全备份恢复以及增量恢复 (以手残删库为例)

数据恢复原理图

测试环境 MySQL5.5

1 首先新建数据库 lampol  数据表 test

 create database lampol;

use lampol;

create table test (id int(10),name varchar(10));

2 插入数据信息 

insert into test values(1,’lampol1′);
insert into test values(2,’lampol2′);

3 插入后的信息

mysql> select * from lampol.test;
+——+———+
| id   | name    |
+——+———+
|    1 | lampol1 |
|    2 | lampol2 |
+——+———+

4 开始模拟凌晨的全备份

mysqldump -uroot -proot –flush-logs –single-transaction –master-data=2  lampol > /shell/test.sql

(1)–flush-logs 刷新切割日志  方便以后恢复增量binlog

(2)–single-transaction InnoDB的存储引擎  MyISAM –lock-all-tables (锁表)

(3)–master-data=2 记录备份的位置binlog日志 及pos

全量备份成功 记录msyql-bin日志 和位置

5 备份之后开始继续插入数据  这些数据不在全备里面

insert into test values(3,’lampol3′);
insert into test values(4,’lampol4′);

6执行drop database lampol;

数据库被删除之后

开始恢复

1 首先停止对外访问;停掉web服务器即可 开始准备恢复

flush logs  刷新binlog日志 否则后期导入的全量可能会写进binlog影响恢复

2 开始恢复全量备份  创建删除的数据库

mysql -uroot -proot lampol<test.sql

全量已经被恢复到数据库了;后来插入的只能用增量来恢复。

3 增量binlog恢复 进test.sql 找到binlog位置

取出binlog 转化成sql语句  mysqlbinlog mysql-bin.000012 > /shell/bin.sql

进入bin.sql  找到 drop database lampol;这一句 删除此句

把bin.sql导入到数据库

mysql -uroot -proot lampol<bin.sql

恢复成功  还有很多不足之处 以后在慢慢完善

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。