MySQL数据表InnoDB引擎表文件误删恢复

mysql | 2020-03-06 16:25:47

之前整理了MySQL InnoDB引擎独立表空间 表文件误删恢复,这篇再介绍共享表空间误删除的恢复方法。


1.独立表空间和共享表空间的区别

独立表空间:

1.jpeg

独立表空间直观效果,数据文件为aaa.ibd

共享表空间:

1.jpeg

共享表空间直观效果,只有bbb.frm的表结构文件,没有独立的数据文件.ibd。

使用共享表空间时,数据将存储在MySQL数据目录下的ibdata1文件中(需要注意的是,ibdata1里不仅仅存储这里提到的bbb表的数据,还有很多其他的数据也存储在这里。即使使用独立表空间,ibdata1文件也依然存在,用于存储很多系统数据)



2.使用共享表空间时误删表的几种情况和解决方法

1,如果是不小心使用rm -f删除了bbb.frm结构文件,没有重启数据库时,通过命令show create table bbb可以将表结构文件显示出来,保存下来备用;如果重启了数据库,又没有表结构备份,则需要通过Linux下恢复文件的办法找回,然后使用工具来解析frm文件,可以恢复表结构;


2,如果是不小心使用rm -f ib*删除了系统表空间文件及ib_logfile0 和 ib_logfile1三个文件,则也依然可以使用上篇介绍的Linux下恢复文件的办法找回。(小心操作和备份是良药,:) );


3,如果全部文件都被rm -f *给删除掉了,其实和删除了一两个文件情况类似,使用Linux下恢复文件的办法来找回,然后先恢复系统表空间文件,再恢复表结构,然后导入表数据。


登录后即可回复 登录 | 注册
    
关注编程学问公众号