mysql .frm文件丢失_【1.1】mysql frm文件丢失(ibd文件丢失)
【1】故障模拟准备环境
这里以innodb为例
【1.1】配置参数
开启独立表空间 innodb_file_per_table;
【1.2】构建测试数据
create database test;
create table a(id int,num int);
insert into a values(1,11),(2,12);
【2】故障模拟
【2.1】在业务正在运行的情况下,手动删除 test库 下的 a.frm
【2.2】删除完之后,会发生什么?
在没有执行drop table的时候,还是可以查询表,查看表结构的,执行后,就查不到了。
如上图所示可知(在业务还在跑的情况下):
无论是对于数据表的增删查改,还是数据结构的增删查改。统统失效,连 information_schema.columns 都查不到(是因为执行了drop table,虽然报错了,但是把数据字典系统表里的相关信息还是删除了)。
【3】如何彻底删除这个表
【3.1】保留这个表数据(要是真不想要了,这步也可以不用做)
cp a.ibd a_bak.ibd
【3.2】随便找个其他表的frm文件重命名成故障表的frm文件
cp test1.frm a.frm
【3.3】加上权限,如下图可以发现是root创建的
chown -R mysql:mysql /data/mysql
【3.4】查看表与表结构,然后删除表
我们可以发现已经有了,但很明显,表结构不是我们a表的结构,而是test1表结构。弄好了之后,发现我们可以删除表了!
【3.5】如果用了其他表的表结构替换会发生什么?
对B表进行了同样的操作;B表与A表代码一样。
用test1表的frm 覆盖并重命名成 b表的frm之后,查询b表居然显示的是 test1表的数据!!
b.frm 加上之后,删除表后 ,这个名称就可以重建了。
【4】恢复使用
故障前提,操作完【1】【2】
【4.1】直接在test1库恢复a表
(0)去test1库构建相同名称表
use test1;
create table a(id int,num int);
如何获取表结构?只能desc,information_schem,binlog里看看有没有,最靠谱的当然是去备份里找。
直接在test1库恢复a表。
(1)备份frm,把我们原始的 失去frm 对应idb的文件拷贝过来
(2)释放表空间
alter table a discard tablespace;
如下图所示,释放表空间,只是把idb数据清空了,frm表结构文件还在。
(3)把我们要恢复的ibd文件,重命名成a.ibd
一定要记得,权限问题;
(4)重新导入表空间
alter table a import tablespace;
至此搞定;
【4.2】在原库恢复
故障前提,操作完【1】【2】
(1)备份
cp -r a.ibd a_bak.ibd
(2)随便找个表frm 复制重命名成 a.frm,删除表
复制前,删除表
cp -r test1.frm a.frm
chown -R mysql:mysql /data/mysql
复制后,删除表
(3)重建表结构相同的a表
create table a(id int,num int);
-- 如何获取表结构? 备份、主从、binlog......
(4)销毁表空间
alter table a discard tablespace;
(5)复制备份文件成a.ibd,导入表空间
alter table a import tablespace;
成功!
思考1:可否直接替换ibd?
我建完一个同表结构新的空表之后,可不可以直接用我们需要恢复的ibd文件,替换这个ibd文件呢?
我们初始化,重新新建一个空白的a表;
(1)重建表:create table a(id int,num int);
(2)覆盖文件
(3)查看是否有数据,并没有,直接覆盖失败
结论:不可以;
思考2:没建表的情况下,可以直接用新建的frm和要恢复的ibd使用表空间导入嘛?
不可以,会报错表不存在。而后,即使你新建表也会报错。
如果需要新建,这个时候需要drop table a; 之后,才能够再次新建。
详解MySQL表空间以及ibdata1文件过大问题
ibdata1文件过大 原因分析 ibdata1是一个用来构建innodb系统表空间的文件,关于系统表空间详细介绍参考MySQL官网文档 上面是一个数据库的ibdata1文件,达到了780多G,而且还 ...
【MySQL】InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据
参考:http://my.oschina.net/sansom/blog/179116 参考:http://www.jb51.net/article/43282.htm 注意!此方法只适用于innod ...
MySQL frm+ibd文件还原data的办法【数据恢复】
MySQL frm+ibd文件还原data的办法[数据恢复] 此方法只适合innodb_file_per_table = 1 当误删除ibdata 该怎么办? 如下步骤即可恢复: 1 ...
mysql通过frm+ibd文件还原data
此方法只适合innodb_file_per_table = 1 当误删除ibdata 该怎么办? 如下步骤即可恢复: 1.准备工作 1)准备一台纯洁的mysql环境[从启动到现在没有 ...
MYSQL数据库根据data文件中的.frm和ibd文件恢复单表数据
数据库误操作,把表的字段删除了,关键是被删除的字段的数据很重要,现在想要恢复数据,下面说说是怎么操作的. 数据库只剩.frm和.ibd文件了,按照网上的做法分如下两步来进行:一.找回表结构,二.找回数 ...
MySQL innodb引擎下根据.frm和.ibd文件恢复表结构和数据
记录通过.frm和.ibd文件恢复数据到本地 .frm文件:保存了每个表的元数据,包括表结构的定义等: .ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per ...
mysql 之 frm+ibd文件还原data
此方法只适合innodb_file_per_table = 1 当误删除ibdata 该怎么办? 如下步骤即可恢复: 1.准备工作 1)准备一台纯洁的mysql环境[从启动到现在 ...
【转&;参考】MySQL利用frm和ibd文件进行数据恢复
MySQL利用frm和idb文件进行数据恢复 源MySQL现状: 版本:5.6.* 存储引擎:innodb存储引擎 要恢复数据库:skill 重点要恢复表:slot_value 已有的文件: 备份了所 ...
MySQL表结构为InnoDB类型从ibd文件恢复数据
客户的机器系统异常关机,重启后mysql数据库不能正常启动,重装系统后发现数据库文件损坏,悲催的是客户数据库没有进行及时备份,只能想办法从数据库文件当中恢复,查找资料,试验各种方法,确认下面步骤可行: ...
随机推荐
yii2增加验证码详细步骤
作者:白狼 出处:http://www.manks.top/article/yii2_captcha本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留 ...
anroid 查看签名信息的方法
1.把app改成压缩文件 2.解压以后找到META-INF\CERT.RSA 3.在CMD命令行里面输入: keytool -printcert -file E:\META-INF\CERT.RS ...
JavaSE复习_6 枚举类
△单例类是指只有一个实例,而枚举类实际上就是有有限个实例的类,在类里已经把实例定义好了. △枚举类的三种创建形式: 1) enum Week { MON,TUE,WED;//枚举类有默认构造函数创建的 ...
linux 2.6up的设备和设备驱动模型
在linux2.6 的设备和设备驱动模型构架中,所有的外部设备和驱动程序都挂在总线上 ,总线分为(usb -- USB设备,PCI -- PCI 设备 platform -- 直接和处理器进 ...
同步机制Lock初学(转)
前段时间review同事的代码,发现可以简化成如下的模型: Thread 1 Thread 2 lock.lock(); condition.await(); lock.unlock() lock.l ...
sgu 169 Numbers
题意:n和n+1同时被数位乘积整除的k位数个数. 假如a是237,b是238.由于个位以前的数一样.那么对于2,如果a%2==0,b%2就!=0,如果a%3==0,b%3就!=0.因此个位以前的数只能 ...
Windows的cmd窗口显示utf8字符
用XeLaTeX的时候,查字体需要用fc-list命令,XeLaTeX用的都是utf编码,所以fc-list输出的字体信息也是utf编码.因此需要把cmd窗口也改成utf8编码才能看到这些字体信息.U ...
swagger2 注解整体说明
@Api:用在请求的类上,表示对类的说明 tags="说明该类的作用,可以在UI界面上看到的注解" value="该参数没什么意义,在UI界面上也看到,所以不需要配置&q ...
解释Spring中IOC, DI, AOP
oc就是控制翻转或是依赖注入.通俗的讲就是如果在什么地方需要一个对象,你自己不用去通过new 生成你需要的对象,而是通过spring的bean工厂为你长生这样一个对象.aop就是面向切面的编程.比如说 ...
mysql .frm文件丢失_【1.1】mysql frm文件丢失(ibd文件丢失)相关推荐
- mysql 联合主键_深入理解Mysql索引底层数据结构与算法,背后的故事
引言 索引是帮助MySQL高效获取数据的排好序的数据结构 索引数据结构对比 二叉树 左边子节点的数据小于父节点数据,右边子节点的数据大于父节点数据.如果col2是索引,查找索引为89的行元素,那么只需 ...
- 修改mysql文件位置_如何修改mysql数据文件存储位置
如果想更换mysql的数据文件的存储位置,则: Centos下: 查看MYSQL数据文件存储路径 mysql>show variables like '%datadir%'; # /usr/lo ...
- mysql 日志文件 自动_自动恢复MySQL数据库的日志文件思路分享及解决方案
如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据."mysqlbinlog:用 ...
- 如何设置mysql的运行目录_如何修改mysql数据库文件的路径 | 学步园
在网上找了好多,没有确定哪个是最终的答案,由于网站在运行中,实在不敢轻易动手,怎么奈我是个菜鸟呢!先把找到的东西简单记录一下,回头再说! 还有一个: 首先在数据库里看一下数据库里当前数据文件的存放路径 ...
- mysql创建sql文件命令_创建包含sql命令的sql脚本文件
sql脚本是包含一到多个sql命令的sql语句,我们可以将这些sql脚本放在一个文本文件中(我们称之为"sql脚本文件"),然后通过相关的命令执行这个sql脚本文件.基本步骤如下: ...
- mysql数据库存歌_如何在mysql中存储音乐和图片文件
标签: 如何在mysql中存储音乐和图片文件? 果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的! 我将告诉你怎样通过HTML表单来储存这 ...
- mysql遍历 xml文件路径_解决Mapper接口和mapper.xml的文件位置问题
今天遇到一个问题是mybatis中接口和对应的mapper文件位置不同,而引起的操作也会不同,在网上找了好久最终找到了方法,这里就简单的解析一下: 我们知道在典型的maven工程中,目录结构有:src ...
- MySQL存储引擎 lnnoDB逻辑架构 innodb存储引擎表空间(ibd文件)详解 回滚日志的物理空间
文章目录 存储引擎 一 MySQL组织架构 二 查看存储引擎信息 三 修改存储引擎 3.1 配置文件修改存储引擎 3.2 临时修改存储引擎 3.3 建表时修改存储引擎 四 存储引擎实验 五 数据库升级 ...
- mysql的原理图解_图文并茂讲解Mysql事务实现原理
开篇 相信大家都用过事务以及了解他的特点,如原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及持久性(Durability)等.今天想跟大家一起研究下事务 ...
- mysql 复制表耗时_聊一下mysql的表复制
1 insert...from的问题 insert - select 是很常见的在两个表之间拷贝数据的方法.需要注意,在可重复读隔离级别下,这个语句会给 select的表里扫描到的记录和间隙加读锁. ...
最新文章
- 节能信标无线感应定位测试:200kHz
- tomcat和nginx的使用
- 高级工程考试通过总结
- 数学--数论--HDU 6128 Inverse of sum (公式推导论)
- More C++ Idioms
- DataV:可视化大屏展示神器实战分享
- 如何:通过现有代码创建 C++ 项目
- STM32 - 定时器基础应用说明 - 04 - N-pulse waveform generation using one-pulse mode - 用OPM模式产生N次脉冲
- [python] ZZ 随机数生成
- 5分钟弄懂Docker
- 两数据库Dblink数据抽取blob
- 理解并行和并发的区别?
- DOM-基本概念及使用
- HDU 3829 Cat VS Dog
- vue实现一个移动端屏蔽滑动的遮罩层
- python遍历文件夹内文件并检索文件中的中文内容
- html img标签alt属性吗,img标签可以不用alt属性吗
- 删除任务栏锁定,任务栏图标的位置,查找可行性文件的方式
- win10edge启用html5,Win 10 Edge浏览器极速运行的设置方法
- 2018最新破解pycharm安装过程(含注册码)
热门文章
- Android跳转到手机自启动管理页面
- 矩阵分析与应用-1.2-向量空间_内积空间与线性映射
- 修真院_JAVA_TASK_1
- 智慧医疗管理系统解决方案:医药电商系统实现智能化改造
- SAP FICO全解析之-货币换算比率
- Spout 【API 解析】 -spout-bolt-
- arduino期末考试题
- 北京周末去随便走走,体察千百年古城残存的
- C语言应用(1)——Unix时间戳和北京时间的相互转换
- java.lang.IllegalStateException: Failed to convert message:‘‘ to outbound message.