Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5590426
  • 博文数量: 1005
  • 博客积分: 8199
  • 博客等级: 中将
  • 技术积分: 13071
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-25 20:19
个人简介

脚踏实地、勇往直前!

文章分类

全部博文(1005)

文章存档

2020年(2)

2019年(93)

2018年(208)

2017年(81)

2016年(49)

2015年(50)

2014年(170)

2013年(52)

2012年(177)

2011年(93)

2010年(30)

分类: Mysql/postgreSQL

2016-12-10 20:24:23

版本:5.7.11
引擎:innodb
物理删除表文件的恢复办法:
1.创建一个跟删除表结构一样的表(前提是要知道被删除表的结构)
mysql> create table tb_t2(id int);
Query OK, 0 rows affected (0.04 sec)


2.拷贝表结构文件
[mysql@host02 hxl]$ cp -a tb_t2.frm tb_t1.frm


[mysql@host02 hxl]$ ls -al
total 204
drwxr-x--- 2 mysql mysql  4096 Dec 10 03:19 .
drwxrwxr-x 6 mysql mysql  4096 Dec 10 03:11 ..
-rw-r----- 1 mysql mysql    61 Dec 10 03:11 db.opt
-rw-r----- 1 mysql mysql  8556 Dec 10 03:18 tb_t1.frm
-rw-r----- 1 mysql mysql 65536 Dec 10 03:12 tb_t1.ibd
-rw-r----- 1 mysql mysql  8556 Dec 10 03:18 tb_t2.frm
-rw-r----- 1 mysql mysql 98304 Dec 10 03:18 tb_t2.ibd


3.废弃误删表的表空间文件
mysql> alter table tb_t1 discard tablespace;
Query OK, 0 rows affected, 2 warnings (0.01 sec)


4.重启数据库


5.再复制tb_t2表空间文件,命名为tb_t1
[mysql@host02 hxl]$ cp -a tb_t2.ibd tb_t1.ibd


7.启动数据库


8.导入新的表空间文件
alter table tb_t1 import tablespace


9.现在可以使用该表名了,但是数据是已经丢失了的.
mysql> select * from tb_t1;
Empty set (0.00 sec)

阅读(2580) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~