mysql没有frm文件_【1.1】mysql frm文件丢失(ibd文件丢失)
【1】故障模拟准备环境
这里以innodb为例
【1.1】配置参数
开启独立表空间 innodb_file_per_table;
【1.2】构建测试数据
create databasetest;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没有frm文件_【1.1】mysql frm文件丢失(ibd文件丢失)相关推荐
- 加载八叉树索引文件_这篇 MySQL 索引和 B+Tree 讲的太通俗易懂!
正确的创建合适的索引,是提升数据库查询性能的基础.在正式讲解之前,对后面举例中使用的表结构先简单看一下: create table user (id bigint not null comment ' ...
- mysql导入dat文件_从零开始学习 MySQL 系列--索引、视图、导入和导出
前言 上篇文章我们学习了数据库和数据表操作语句,今天我们学习下数据库索引,视图,导入和导出的知识. 作为基础篇,不会涉及到关于索引和视图的高级应用和核心概念,但是基本操作大家会了解,尤其是关于索引的内 ...
- 删除安装的mysql数据库文件_安装/删除MySQL数据库
安装包我会放在本文的底部,如果需要自取 MySQL的数据存储目录为data,data目录通常在C:\Documents and Settings\All Users\Application Data\ ...
- 怎样连接mysql文件_如何连接MYSQL数据库?
假设您的mysql数据库资料如下: MYSQL数据库名: test MYSQL帐号:public_test1 MYSQL密码:test2 免费赠送三级域名:test.u8.1358.net MYSQL ...
- Linux下导出MySQL为SQL文件_在linux命令下导出导入.sql文件的方法
本文讲述了在linux命令下导出导入.sql文件的方法.分享给大家供大家参考,具体如下: 一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径): 1.导出数据和表结构: ...
- mysql进程删除文件_完全卸载mysql 停止服务、卸载相关程序、删除注册表
3.运行"regedit"文件,如图,打开注册表 删除注册表数据,通过regedit,删除以下几个文件[也可以在注册表里搜索mysql]:HKEY_LOCAL_MACHINE/SY ...
- 如何设置mysql的运行目录_如何修改mysql数据库文件的路径 | 学步园
在网上找了好多,没有确定哪个是最终的答案,由于网站在运行中,实在不敢轻易动手,怎么奈我是个菜鸟呢!先把找到的东西简单记录一下,回头再说! 还有一个: 首先在数据库里看一下数据库里当前数据文件的存放路径 ...
- mysql查看数据库的日志文件_怎么查看mysql数据库的日志文件
2017-10-16 回答 一.错误日志 错误日志在mysql数据库中很重要,它记录着mysqld启动和停止,以及服务器在运行过程中发生的任何错误的相关信息. 1.配置信息 --log-error=[ ...
- mysql存储音频视频文件_如何在mysql 或者 其他的数据库中存放图片 音频 视频
root@ytt:/var/lib/mysql-files# for i in `seq 1 100`; do cp 微信图片_20190711095019.jpg "$i".jp ...
- mysql 复制表耗时_聊一下mysql的表复制
1 insert...from的问题 insert - select 是很常见的在两个表之间拷贝数据的方法.需要注意,在可重复读隔离级别下,这个语句会给 select的表里扫描到的记录和间隙加读锁. ...
最新文章
- 设计模式(享元模式)
- php 企业号文本消息推送,Python如何实现微信企业号文本消息推送功能的示例
- CodeForces - 1373E Sum of Digits(贪心)
- Mysql5.1.36 autoinstall.sh
- 矩池云上使用Visdom可视化图像说明
- Hibernate的延迟加载问题
- 力扣-876 链表的中间结点
- 侠客行手游如何用电脑玩 侠客行手游PC电脑版教程
- 引导扇区维护工具linux,bootice引导扇区维护工具下载
- debian10将系统软件包和docker的软件源改成国内源
- python 自动玩 连连看 外挂
- jpa 人大金仓数据库方言_人大金仓+springboot配置
- 涉密计算机杀毒记录表,保密工作自检自查记录表
- 健身服务公司iFIT赴美上市,64亿美元估值中藏着“喜”与“忧”?
- 群辉docker安装树莓派镜像_群晖 Docker 安装 AriaNg+File Browser
- 云服务器ECS的简介
- E-NCAP增加黑暗场景下AEB测试,红外夜视或成主流配置
- 移动端多了企业还需要做seo吗
- matlab中根据信号和信噪比添加高斯白噪声(函数直接使用)
- python直方图上加正态分布线_Python直方图绘制(与标准正态分布进行比较)
热门文章
- Spark运行模式Local+Standalone+Yarn+mesos
- 一代测序+二代测序+三代测序
- ReSimNet: drug response similarity prediction using Siamese neural networks
- python笔记3(numpy数组)
- ccf z字形 java_第三次CCF计算机软件能力认证题目:Z字形扫描
- 华为什么时候开始升级鸿蒙,鸿蒙什么时候开放升级?华为又食言了,官方宣布延期到六月...
- 人体姿态估计--Learning Feature Pyramids for Human Pose Estimation
- Linux/ubuntu:Chrome报错解决: error while loading shared libraries: libnss3.so libXss.so.1 libasound.so.
- php mysql cms 商城,国内最常用的PHP+MySql免费CMS系统大全
- fedora java 开发环境_Linux(Fedora 14)下 java开发环境配置 ——jdk的安装与配置