您的位置:首页 > 其它

尝试用idb文件回复单个表

2016-04-27 17:51 344 查看
mysql> show engines;
mysql> alter table t1 engine = innodb;
mysql> alter table t7 auto_increment = 100;
mysql> show table status like "t6"\G;

尝试用idb文件回复单个表,注意要恢复到原来的库里面:
1.备份ibd文件:
# cp t7.ibd t7.ibd.bak
2.删除表数据:
mysql> select * from t7 ;
+-----+------+
| i | name |
+-----+------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 6 | 1 |
| 7 | 2 |
| 8 | 3 |
| 100 | 1 |
| 101 | 2 |
| 102 | 3 |
+-----+------+
9 rows in set (0.00 sec)
mysql> delete from t7;
Query OK, 9 rows affected (0.07 sec)

mysql> select * from t7 ;
Empty set (0.00 sec)
3.正确识别ibd文件
mysql> alter table t7 discard tablespace;

4.回复ibd文件:
# mv t7.ibd.bak t7.ibd
# chown mysql. t7.ibd
# chmod 660 t7.ibd

5.正确识别手动回复的ibd文件
mysql> alter table t7 import tablespace;
Query OK, 0 rows affected, 1 warning (0.26 sec)

6.查询数据,侥幸回来了!
mysql> select * from t7 ;
+-----+------+
| i | name |
+-----+------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 6 | 1 |
| 7 | 2 |
| 8 | 3 |
| 100 | 1 |
| 101 | 2 |
| 102 | 3 |
+-----+------+
9 rows in set (0.00 sec)

mysql>

内存数据库:
mysql> create table t8 engine=memory select * from t7;
mysql> show table status like 't8'\G

mysql> create index mem_hash using hash on t8 (i);
Query OK, 9 rows affected (0.03 sec)
Records: 9 Duplicates: 0 Warnings: 0

mysql> drop index mem_hash on t8;
Query OK, 9 rows affected (0.04 sec)
Records: 9 Duplicates: 0 Warnings: 0

mysql> create index mem_hash using btree on t8 (i);
Query OK, 9 rows affected (0.03 sec)
Records: 9 Duplicates: 0 Warnings: 0

mysql> show index from t8 \G
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  文件 尝试 idb