超强mysql灾难恢复工具--ibd2sql

超强mysql灾难恢复工具--ibd2sql

小董学编程 DBA札记
 
 2024年07月19日 16:51 上海 1人听过
DBA札记
dba 数据库 知识科普 踩坑指南 经验分享 原理解读
88篇原创内容

前言

昨晚23:00, 刚躺到床上准备刷会儿抖音睡了。好友微信视频求救,说他的mysql启动不起来了,但是他把文件备份了,问我能不能帮忙搞一下。他搞了很久没搞定。我就答应了。最后发现启动不了,元数据字典损坏严重。只能新建库,把原来的ibd文件恢复了。我刚开始想用8.0自带的工具ibd2sdi,因为以前用这工具恢复过。但是他的环境没有8.0的安装包。我就开始下载,在下载的过程中随手一搜,有个ibd2sql的github项目。
地址:https://github.com/ddcw/ibd2sql

ibd2sql 介绍

ibd2sql是一个使用纯python3编写的离线解析MYSQL INNODB存储引擎的ibd文件的工具. 无第三方依赖包. 使用GPL-3.0 license.

特点

1、方便: 提取表DDL
2、实用: 可替换库(--schema)/表(--table)名, 可在sql语句中输出完整的字段(--complete)
3、简单: 纯python3代码编写, 无依赖包. 4、支持众多数据类型: 支持所有mysql数据类型
5、支持复杂的表结构: 分区表, 注释, 主键, 外键, 约束, 自增, 普通索引, 前缀索引, 主键前缀索引, 唯一索引, 复合索引, 默认值, 符号, 虚拟字段, INSTANT, 无主键等情况的表
6、数据误删恢复: 可以输出被标记为deleted的数据
7、安全: 离线解析ibd文件, 仅可读权限即可
8、支持范围广: 支持mysql 5.6 or 5.7 or 8.0 or 8.4 or 9.0

下载使用

本工具使用纯python3编写, 无依赖包, 所以建议直接使用源码.

V1.5 版本下载地址: https://github.com/ddcw/ibd2sql/archive/refs/tags/v1.5.tar.gz

若要将结果保存到文件, 可使用重定向(python3 main.py xxx.ibd --sql > xxxx.sql)

测试案例

#1、下载
git clone https://github.com/ddcw/ibd2sql.git
#2 解析 aaa库下的aa表
python3 main.py  ../aaa/aa.ibd --ddl --sql > aa.sql

#3 生成结果
cat aa.sql
CREATE TABLE IF NOT EXISTS `aaa`.`aa`(
    `id` int NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ;
INSERT INTO `aaa`.`aa` VALUES (1);
INSERT INTO `aaa`.`aa` VALUES (2);
INSERT INTO `aaa`.`aa` VALUES (3);

#4 将生成的SQL灌入要恢复的库即可

总结

该项目支持范围广,使用非常方便。给大家推广一下。

 

mysql · 目录
上一篇MySQL9.0 来了,支持向量!!!
阅读 3698
留言 1
写留言
  •  
    这个工具之前测试用过,确实好用
     
     
已无更多数据
 
 
 
 
 
 
 
 
 
 
posted @   技术颜良  阅读(304)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2023-07-24 minio将http改为https方式访问
2023-07-24 Windows子系统(WSL)通过桥接网络实现被外部局域网主机直接
2022-07-24 xen 虚拟机挂了,宿主机假死的问题追终,全思路
2022-07-24 XenServer 常见故障处理
2022-07-24 Xenserver中SR、VBD和VDI之间的关系
2019-07-24 快速搭建ELK日志分析系统
2019-07-24 RabbitMQ 3.7.X集群:从入门到精通,这一篇就够了
点击右上角即可分享
微信分享提示