MySQL frm+ibd文件还原data的办法【数据恢复】
MySQL frm+ibd文件还原data的办法【数据恢复】
此方法只适合innodb_file_per_table = 1
当误删除ibdata 该怎么办? 如下步骤即可恢复:
1、准备工作
1)准备一台纯洁的mysql环境【从启动到现在没有使用过INNODB的表结构的mysql环境】(当然也可以不用纯洁的,但是一定要保证表id 小于后续要恢复的表id);
2)备份frm、ibd文件;
2、通过frm恢复表结构
1)在测试库里新建任意一表,表结构随意,表名必须为:要恢复数据的表名【即为frm前缀名】
例如:CREATE TABLE five_monitor (id int(11) NOT NULL ) ENGINE=InnoDB ;
2)关闭mysql
3)用需要恢复的frm文件直接替换测试库刚新建的frm文件;
4)在配置文件里添加innodb_force_recovery = 6,然后启动;
5)show create table five_monitor;即能看到你需要的表结构信息了;
6)然后去掉innodb_force_recovery = 6 设置,重启mysql为下一步做准备;
3、通过ibd恢复表数据
1)查看表的space id(http://haildb.sourcearchive.com/ ... 0fil_8h_source.html 00118有说明)
a: hexdump -C five_monitor.ibd |head -n 3 |tail -n 1|awk '{print $6$7}‘
b: 通过以上结果到mysql里面去转成10进制:select conv('67c0',16,10);
说明space id为:26560
2)新建innodb表补充ibdata里面的table id
如果想看到ibd里面的数据,我们必须让space id 与刚启动的mysql ibdata里面的记录的表id一致;
新建一个表innodb,ibdata里面的表id就会+1,而刚才已经新建过表了,所以id已经+1了
故我们还需要新建26560-1(刚才新建的)-1(要恢复的表)=26558个表
for i in `seq 0 26557`; do mysql --user=××× ××××× -e "CREATE TABLE
iinser$i (id bigint(20) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id))
ENGINE=innodb "; done
3)导入要恢复的表
a:在另外一个测试库里按照第2步导出的表结构新建表;
b:alter table five_monitor discard tablespace;
c:cp 要恢复的ibd 到刚建的表的目录里,并修改mysql权限
d:alter table five_monitor import tablespace;
4)在配置文件里添加innodb_force_recovery = 6,然后启动;
这样你就能看到你想要的数据了。当然一定要通过dump 或者select * from into outfile把data导出;
MySQL frm+ibd文件还原data的办法【数据恢复】的更多相关文章
- mysql通过frm+ibd文件还原data
此方法只适合innodb_file_per_table = 1 当误删除ibdata 该怎么办? 如下步骤即可恢复: 1.准备工作 1)准备一台纯洁的mysql环境[从启动到现在没有 ...
- mysql 之 frm+ibd文件还原data
此方法只适合innodb_file_per_table = 1 当误删除ibdata 该怎么办? 如下步骤即可恢复: 1.准备工作 1)准备一台纯洁的mysql环境[从启动到现在 ...
- mysql frm的恢复,data里只有frm文件的恢复
mysql frm的恢复,data里只有frm文件的恢复 mysql frm的恢复,data里只有frm文件的恢复,换了系统,装了windows2003,重装最新5.4版的mysql,把原来的一个数据 ...
- mysql ibd 文件还原数据
-- 这里要还原的表名为 test_table -- 1建库,并选中库,库名随意 -- 2查看InnoDB 引擎独立表空间是否开启 SHOW VARIABLES LIKE '%per_table%' ...
- MySQL 通过.frm文件和.ibd文件实现InnoDB引擎的数据恢复
起因是这样的,公司的领导表示说服务器崩了,修理好之后,只剩下数据库目录下的物理文件(即.frm文件与.ibd文件).然后,整了一份压缩包给我,叫我瞅一下能不能把数据恢复出来.我当场愣了一下,这都啥文件 ...
- MySQL从.ibd文件中恢复数据
首先,在MySQL命令行下执行如下命令可以查看MySQL中存放数据的位置: show global variables like "%datadir%"; 我这里的执行结果: +- ...
- mysql恢复ibd文件
1.将原表删除,包括ibd和frm文件 2.重新创建表结构. 3.丢弃表空间 alter table tableName discard tablespace; 4.将要恢复的ibd文件拷贝到数据库目 ...
- 使用innobackupex进行mysql的差异备份还原和延迟复制
使用innobackupex进行mysql的差异备份还原和延迟复制 背景: 有同事执行update语句没有添加where条件,导致大量脏数据,需要将这张表恢复到前一天 数据库上有备份,每周一次完整备份 ...
- MYSQL数据库根据data文件中的.frm和ibd文件恢复单表数据
数据库误操作,把表的字段删除了,关键是被删除的字段的数据很重要,现在想要恢复数据,下面说说是怎么操作的. 数据库只剩.frm和.ibd文件了,按照网上的做法分如下两步来进行:一.找回表结构,二.找回数 ...
随机推荐
- CSS3实现圆形进度条
介绍 闲来无事,去了CSS3Plus网站逛了逛,发现了一个很有意思的实现--css3实现进度条.粗略看了下代码,发现原理其实很简单,不难理解. 现在在此讲述下原理并实现一个1s更新的进度条. 技术细节 ...
- js的并行加载以及顺序执行
重新温习了下这段内容,发现各个浏览器的兼容性真的是搞大了头,处理起来很是麻烦. 现在现总结下并行加载多个js的方法: 1,对于动态createElement('script')的方式,对所有浏览器都是 ...
- what's this? 浅谈js中this的指向问题
刚刚学习js的朋友可能和我一样,看到代码中的this总是一脸懵逼,不知道this到底指向谁.经过一段时间的了解,我想跟大家分享下自己的理解. 何时出现this 函数在调用的时候,会自动获得两个特殊变量 ...
- Block知识点总结
block的作用 block用于保存一段代码 在适当的时候再使用 它是一种数据类型 block的定义格式: 返回值 (^block变量名)(形参列表) = ^(形参列表) { 需要执行的代码}; ...
- 原生js文字标签云上下滚动播放
效果:http://hovertree.com/texiao/js/25/ 效果图: 代码如下: <!DOCTYPE html> <html> <head>< ...
- 小米网css3导航下拉菜单代码
效果:http://hovertree.com/texiao/css3/19/ 代码如下: <!doctype html> <!-- W3C规范 --> <html la ...
- 10个调试Java的技巧
调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷.对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程序,更需要学会如何调试程序.本文介绍了Java程序员必知的10个调试技巧, ...
- ListView灵活的用法
以下是示例的效果图: WinForm的ListView控件是可以分组显示的,还可排序. 可以把ListView的View属性设置为Details 完整项目请到下面网址查找下载 http://hover ...
- php判断数据库中某个字段是否有值去执行excel表格写入操作
- h5输入框提示语 + 正常文本框提示语
<input id="username" name="username" type="text" placeholder=" ...