mysql恢复ibd文件】的更多相关文章

1.将原表删除,包括ibd和frm文件 2.重新创建表结构. 3.丢弃表空间 alter table tableName discard tablespace; 4.将要恢复的ibd文件拷贝到数据库目录下 5.将恢复的ibd文件给权限 6.重启导入 alter table tableName import tablespace;…
MySQL frm+ibd文件还原data的办法[数据恢复] 此方法只适合innodb_file_per_table          = 1 当误删除ibdata 该怎么办? 如下步骤即可恢复: 1.准备工作 1)准备一台纯洁的mysql环境[从启动到现在没有使用过INNODB的表结构的mysql环境](当然也可以不用纯洁的,但是一定要保证表id 小于后续要恢复的表id); 2)备份frm.ibd文件; 2.通过frm恢复表结构 1)在测试库里新建任意一表,表结构随意,表名必须为:要恢复数据的…
首先,在MySQL命令行下执行如下命令可以查看MySQL中存放数据的位置: show global variables like "%datadir%"; 我这里的执行结果: +---------------+---------------------------------------------+ | Variable_name | Value | +---------------+---------------------------------------------+ | d…
参考:http://my.oschina.net/sansom/blog/179116 参考:http://www.jb51.net/article/43282.htm 注意!此方法只适用于innodb_file_per_table独立表空间的InnoDB实例. 此种方法可以恢复ibdata文件被误删.被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据的100%恢复,目的是尽可能多的恢复. 恢复数据前提是表结构定义文件frm可以使用,如果有下面报错就比较麻烦,需要手动恢复…
客户的机器系统异常关机,重启后mysql数据库不能正常启动,重装系统后发现数据库文件损坏,悲催的是客户数据库没有进行及时备份,只能想办法从数据库文件当中恢复,查找资料,试验各种方法,确认下面步骤可行: 一.找回表结构,如果表结构没有丢失直接到下一步 a.先创建一个数据库,这个数据库必须是没有表和任何操作的. b.创建一个表结构,和要恢复的表名是一样的.表里的字段无所谓.一定要是innodb引擎的.CREATE TABLE `test`(  `testID` bigint(20)) ENGINE=…
数据库误操作,把表的字段删除了,关键是被删除的字段的数据很重要,现在想要恢复数据,下面说说是怎么操作的. 数据库只剩.frm和.ibd文件了,按照网上的做法分如下两步来进行:一.找回表结构,二.找回数据.关键是我在第一步就碰到了问题,进行不下去,网上第一步的描述如下: a.先创建一个数据库,这个数据库必须是没有表和任何操作的. b.创建一个表结构,和要恢复的表名是一样的.表里的字段无所谓.一定要是innodb引擎的.CREATE TABLE `test`(  `testID` bigint(20…
记录通过.frm和.ibd文件恢复数据到本地 .frm文件:保存了每个表的元数据,包括表结构的定义等: .ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per_table = 1)产生的存放该表的数据和索引的文件. 以actclss表为例,结构如下 1.安装相同版本的mysql: 2.找回表结构(若有表结构,直接导入表即可) 建立同名的表(InnoDB),随意一个字段即可 关闭mysql服务,用需要恢复的.frm文件覆盖新生成的.frm文件.接着修改my…
背景 mysql在使用的过程中,难免遇到数据库表误操作,基于此,作者亲力亲为,对mysql数据表ibd文件的恢复做以下详细的说明,对开发或者初级dba提供一定的指导作用,博客中如若存在相关问题,请指明,相互学习,共同进步. 恢复说明 创建数据库(随意创建),create database yygk 创建数据表           备注:row_format要和ibd文件的row_format一致,否则,会提示两者不一致. 当前row_format=dynamic 表的属性查看      我们使用…
最近内部的 mysql 数据库发生了一件奇怪的事,其中有一个表 users625 突然出现问题, 所有对它的操作都报错误 数据表不存在. mysql> select count(*) from users625; ERROR 1146 (42S02): Table 'km8.users625' doesn't exist show tables 它还显示在列表里,在 mysql 数据目录中也可以找到对应的表文件,也没有 进行过删除操作,突然出现这样的错误非常奇怪. 内部运行环境: 名称 值 OS…
客户的机器系统异常关机,重新启动后mysql数据库不能正常启动,重装系统后发现数据库文件损坏,悲催的是客户数据库没有进行及时备份,仅仅能想办法从数据库文件其中恢复,查找资料,试验各种方法,确认以下步骤可行: 一.找回表结构.假设表结构没有丢失直接到下一步       a.先创建一个数据库.这个数据库必须是没有表和不论什么操作的. b.创建一个表结构.和要恢复的表名是一样的. 表里的字段无所谓. 一定要是innodb引擎的.CREATE TABLE `test`(  `testID` bigint…
文章目录 frm文件和ibd文件简介 frm文件恢复表结构 ibd文件恢复表数据 通过脚本利用ibd文件恢复数据 通过shell脚本导出mysql所有库的所有表的表结构 frm文件和ibd文件简介 在MySQL中,使用默认的存储引擎innodb创建一张表,那么在库名文件夹下面就会出现表名.frm和表名.ibd两个文件 ibd文件是innodb的表数据文件 frm文件是innodb的表结构文件 需要注意的是,frm文件和ibd文件都是不能直接打开的 恢复数据之前,需要先恢复表结构 在有建表语句的前…
1.使用navicat fro mysql数据库工具进行恢复 2.将原有备份的sql文件导入数据库 3.新建一个空数据库 4将备份数据库的数据表复制到新建数据库(只复制表格式) 5.在命令行模式中 use 到新表 6.解除表空间 alter table 表名 discard tablespace; 7.将元数据data文件下的 表名.ibd文件复制到新数据库的data文件中 8.重新导入表空间 alter table 表名 import tablespace; 9.刷新数据表,数据还原成功.…
昨天一早,开发人员反馈说一个测试环境报Tablespace is missing for table 'db_rsk/XXX",周末刚升级过,特地让开发回去查了下,说脚本中肯定没有drop table的操作.datadir下检查了下,发现frm文件在的ibd文件没有了,bing了下,没发现类似异常.于是先回到mysql.err往回搜索,半天后发现上周五下午mysql出现了一次异常宕机,说是磁盘空间不足了,看日志该文件被损坏了,如下: 2016-11-12 11:31:00 28443 [ERRO…
此方法只适合innodb_file_per_table          = 1 当误删除ibdata 该怎么办? 如下步骤即可恢复: 1.准备工作 1)准备一台纯洁的mysql环境[从启动到现在没有使用过INNODB的表结构的mysql环境](当然也可以不用纯洁的,但是一定要保证表id 小于后续要恢复的表id); 2)备份frm.ibd文件; 2.通过frm恢复表结构 1)在测试库里新建任意一表,表结构随意,表名必须为:要恢复数据的表名[即为frm前缀名] 例如:CREATE TABLE fi…
该方法只介绍了如何救回这个表名(数据不恢复) 如果想要恢复原来数据 直接用extundelete把文件恢复后放回去即可 并且是适用于平时没有全备的情况下  如果有全备 直接那全备的frm和idb文件放回去 就可以了 该方法同样适用于数据表迁移(只迁移一个表)  因为discard再import的速度 远比先dump再恢复的速度要快得多 建议: 平时备份一下表结构是非常重要的  -- 如果你直接删除了mysql的表文件 (.frm .idb)  在mysql5.6 可能你就悲剧了  可能再也用不回…
情况:有mysql中data文件(仅仅一个数据库) 操作:frm和ibd恢复sql文件的操作 1.创建相同名字的库xxx 2.把ibdata1替换成原来的 3.把数据库xxx内内容全部替换为原来的 完成!!!…
情况描述:服务器硬盘损坏,服务器换了个新硬盘 ,然后老硬盘插在上面.挂载在这台机器.可以从老硬盘里面拿到数据.只拿到了里面的mysql数据文件夹,把数据文件夹覆盖新的服务器mysql数据文件夹 启动报错!!!报错!!!错!!!. 数据文件如下: 于是觉得不能使用覆盖文件的方式还原数据,得使用科学方法恢复.google之…… 找到解决办法如下: 可以发现数据目录下有对应数据库名称的文件夹,文件夹下有很多 表名.ibd 文件,这些文件其实就是数据,我们要利用它们来恢复 恢复步骤: 1.在新库里面创建…
一.恢复表结构 1.环境:Windows .mysql5.7:首先创建一个数据库,可以通过navicat来创建:     2.使用当前创建的数据库:use ww; 3.随意创建一张表,但是这张表的名字要和你要恢复的.frm或者.ibd一致,我的.frm与.ibd文件为gonggao.frm与gonggao.ibd 因此我的创建表语句为:     create table gonggao(id int); 4.在执行上面的创建表语句之后,在服务里面或者使用net stop mysql关闭数据库服务…
整个恢复过程其实可以总结为下面几步: (1):恢复表结构 (2):复制出来创建表的sql语句 (3):恢复表数据(在恢复表数据的时候,首先需要解除当前创建的表与默认生成的.ibd文件间的关系,接着将要恢复数据表的.ibd文件与当前创建的表联系起来即可) 1.通过官网下载mysql-utilities-1.6.5.tar.gz(https://downloads.mysql.com/archives/utilities/) #tar xzvf mysql-utilities-1.6.5.tar.g…
[1]故障模拟准备环境 这里以innodb为例 [1.1]配置参数 开启独立表空间 innodb_file_per_table; [1.2]构建测试数据 create database test; create table a(id int,num int); ,),(,); [2]故障模拟 [2.1]在业务正在运行的情况下,手动删除 test库 下的 a.frm [2.2]删除完之后,会发生什么? 在没有执行drop table的时候,还是可以查询表,查看表结构的,执行后,就查不到了. 如上图…