通过ibd文件恢复数据



node1:
mysql> create table pro (id int);
Query OK, 0 rows affected (0.03 sec)

insert into table pro values (1);

node2:
mysql> create table pro (id int);
Query OK, 0 rows affected (0.03 sec)


node2:
mysql> alter table pro discard tablespace;
Query OK, 0 rows affected (0.00 sec)

node1:
 scp pro.ibd 192.168.168.144:/usr/local/mysql/data/test


node2:
chown mysql:mysql  /usr/local/mysql/data/test/pro.ibd

mysql> alter table pro import tablespace;
Query OK, 0 rows affected, 1 warning (0.07 sec)


mysql> select * from pro;
+------+
| id   |
+------+
|    1 |
+------+



误删 table,表结构已经被drop了
这种情况稍复杂,不过恢复过程还是比较容易操作的。由于table被drop后的space id会留空因此备份文件的space id不会被占用。


我们只需要重建表结构,然后把ibdata中该表的space id还原,物理文件可以直接覆盖做恢复了。


Step 1 : 重建表


mysql> create table testibd (UserID int);


Step 2 : 关闭mysql服务(必须)


shell> service mysqld3321 stop


Step 3: 准备ibd文件  apply log


shell> innobackupex --apply-log --defaults-file=/usr/local/mysql3321/my.cnf  /xfs/backup/2012-10-17_11-29-20/


Step 4 : 备份现在的ibd文件(可选)


cp -a testibd.ibd testibd.bak


Step 5 : 复制备份ibd文件


shell> cp -a /xfs/backup/2012-10-17_11-29-20/test/testibd.ibd /xfs/mysql3321/test/ 


shell> chown mysql:mysql /xfs/mysql3321/test/testibd.ibd


Step 6 : 使用percona recovery tool 修改ibdata 


shell> /root/install/percona-data-recovery-tool-for-innodb-0.5/ibdconnect -o /xfs/mysql3321/ibdata1 -f /xfs/mysql3321/test/testibd.ibd -d test -t testibd

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/91975/viewspace-1761714/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/91975/viewspace-1761714/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值