ibd2sql v0.2版本 解析ibd文件为SQL

2023年 9月 12日 60.5k 0

v0.2 版本主要是支持更多的数据类型了(上一版:https://www.modb.pro/db/626066)

项目地址: https://github.com/ddcw/ibd2sql
下载地址: https://github.com/ddcw/ibd2sql/releases/download/v0.2/ibd2sql_0.2_linux_x86_64.tar.gz

介绍

解析mysql8.0的数据文件, 并生成相关SQL.

功能

选项 说明 备注
–sql 打印解析出来的数据的insert语句
–ddl 打印相关DDL
–data 打印解析出来的数据的LIST格式
–delete 打印被标记为deleted的数据 全看运气
–complete-insert insert语句包含列名字
–table-name 替换insert语句的表名 不含DDL的,这是特性,不是BUG -_-
-h 打印帮助信息
-f 对于包含有限支持和不支持的数据类型强制解析 我也不知道会发生啥…

使用方法

推荐使用源码, 毕竟没得依赖

查看DDL

python main.py --ddl /data/mysql_3314/mysqldata/db1/t20230830.ibd

查看数据(INSERT)

python main.py --sql /data/mysql_3314/mysqldata/db1/t20230830.ibd

查看数据(含列名)

对于某些数据库,可能需要列名字(比如某些分布式数据库)

python main.py --sql --complete-insert /data/mysql_3314/mysqldata/db1/t20230830.ibd

查看数据(LIST)

python main.py --data /data/mysql_3314/mysqldata/db1/t20230830.ibd

查看被标记为deleted的数据

python main.py --delete /data/mysql_3314/mysqldata/db1/t20230830.ibd

支持

支持几乎所有mysql 8.0的数据类型(除了json). 对lob对象也是有限支持.

支持 大部分表/字段属性

DDL支持

对象 是否支持 备注
IF NOT EXISTS 支持 默认都是这个
自增 支持
默认值 支持
字段和表的注释 支持
索引 支持 主键索引, 普通索引
外键 支持
约束 支持
存储引擎 支持 只支持innodb
分区 不支持 不支持

支持的数据类型

参考:https://dev.mysql.com/doc/refman/8.0/en/storage-requirements.html

数字类型

类型 大小(字节) 有无符号 备注
tinyint 1 bytes 可选
smallint 2 bytes 可选
mediumint 3 bytes 可选
int 4 bytes 可选
bigint 8 bytes 可选
float§ 4 bytes if p is None,
4 bytes if 0

相关文章

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

发布评论