innobackupex 部分表恢复

一.测试环境(Mysql5.5.27-log Mysql5.6.12-log

create table innobackup(id int,name varchar(20))engine=innodb;

insert into innobackupvalues(1,'a'),(2,'b'), (3,'c'),(4,'d');

1.备份

innobackupex--include="test.innobackup" --defaults-file=/usr/local/mysql55/etc/innodb.cnf/path/to/backup

2.还原

Prepare阶段:

innobackupex--apply-log--use-memory=10M --export /path/to/backup/2014-03-26_23-07-57

restore阶段:

ALTER TABLE database.table  DISCARD TABLESPACE;

#### copy *.ibd  *.exp  *.cfg5.6强制需要对 table schema校验】

ALTER TABLE database.table  IMPORT TABLESPACE;

二.测试结果:

2.1 MySQl 5.5.27

2.1.1 delete 一张表的部分数据,可以恢复

步骤:discardtablespace;  ccpy  *.idb *.exp 文件到数据目录下;importtablespace;

2.1.2 drop 掉某张表:(可以通过修改 ibd 文件的tablespace id 但是这样危险)

下图是没有修改tablespace id,import tablespace后报的错误。

wKiom1M9eTHxfUWnAADP5GWUSpM275.jpg


2.2 Mysql 5.6.12 (delete一张表的部分数据、drop 掉某张表都可以恢复)包括percona server >=5.5.X都可以。

下图是drop一张表后恢复:


wKioL1M9eRygolJJAAD7zGYpLjs534.jpg

你可能感兴趣的:(innobackupex,部分表恢复)