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/