IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 从.frm和.ibd文件恢复InnoDB引擎的数据 -> 正文阅读

[大数据]从.frm和.ibd文件恢复InnoDB引擎的数据

因为操作不当会导致mysql数据的丢失,但磁盘上数据还存在.
这里记录InnoDB存储的数据恢复的步骤.主要参考这里

找到数据存储位置

在mysql配置文件my.cnf(怎么找my.cnf?可以updatedblocate my.cnf)中找到

datadir=/xxx

/xxx就是数据数据存储路径
在数据目录下会看到所有数据,每个数据库有其自己的文件夹
InnoDB存储引擎的数据库,每张表会以.frm(存储表结构)和.ibd(存储表数据)的形式存储.
恢复数据的思路是:

  • 根据frm文件读取表结构,建新表
  • 清除新表与数据的关联关系(删除自带ibd)
  • 把原始ibd文件存放到数据库路径
  • 关联原始数据与新表

恢复表结构

需要用到这个工具来读取frm文件(需要python环境),下载地址在这里.
这里使用tar.gz的包

  1. 解压tar -zxvf mysql-utilities-1.6.5.tar.gz
  2. 编译python setup.py build
  3. 安装python setup.py install

安装好后,mysqlfrm命令就可以用了,具体用法:

mysqlfrm --diagnostic /xxx/xxx.frm

可以读取建表语句,通过此建表语句建新表
在这里插入图片描述
到这,表结构就恢复了

恢复数据

接下来就要从ibd文件恢复数据

  • 首先要解除新表和新的ibd的关联:
alter table xxx discard tablespace

此步骤会删除新表的数据(ibd)文件

  • 然后把原来的ibd文件复制到新表的路径下,注意要修改权限
chown mysql:mysql xxx.ibd
  • 再把新表和原来的ibd数据关联
alter table xxx import tablespace

刷新表,就可以看到原来的数据了

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:27:35  更:2022-03-16 22:29:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:47:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码