ibd2sql 分析ibd文件

2024年 4月 29日 111.7k 0

没有备份,数据误删,文件有部分损坏等情况下可以尝试分析ibd数据文件

说明:

ibd的page type 目前有31种,一般都是解析几种主要的类型

/** B-tree node */
constexpr page_type_t FIL_PAGE_INDEX = 17855
/** Undo log page */
constexpr page_type_t FIL_PAGE_UNDO_LOG = 2;
/** Index node */
constexpr page_type_t FIL_PAGE_INODE = 3;
/** Insert buffer free list */
constexpr page_type_t FIL_PAGE_IBUF_FREE_LIST = 4;
/** Extent descriptor page */
constexpr page_type_t FIL_PAGE_TYPE_XDES = 9;


页当中有2个伪列:infimum和Supremum,Page Directory页目录slot[1]指向infimum,infimum的record header种的next_record 指向实际的第1行记录,slot[n]指向Supremum列,解析当前页的数据,可以从 offset 99开始,依次按next_record查询下一条记录,直到next_record为负数,叠加后指向supremum.


安装

wget https://github.com/ddcw/ibd2sql/archive/refs/heads/main.zip
unzip main.zip
ibd2sql-main/
python3 main.py -h

解析DDL

python3 main.py /data/mysql/data/sakila/film_category.ibd --ddl



解析SQL

python3 main.py /data/mysql/data/sakila/film_category.ibd --sql



解析删除记录(delete标志,未analyze)

python3 main.py /data/mysql/data/sakila/film_category.ibd --delete

参考:

GitHub - ddcw/ibd2sql: 解析mysql中innodb数据文件(ibd),转换为sql. DDL和DML

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论