[ibd2sql] 偷偷更新ibd2sql到v1.3 (支持mysql 5.7)

2024年 5月 11日 62.6k 0

导读

本来准备做二级分区的DDL的, 但是看了下, 太复杂了. 而且分区表用得也不多. 还不如更新支持 mysql5.7

CREATE TABLE ts (id INT, purchased DATE)
PARTITION BY RANGE( YEAR(purchased) )
SUBPARTITION BY HASH( TO_DAYS(purchased) ) (
PARTITION p0 VALUES LESS THAN (1990) (
SUBPARTITION s0,
SUBPARTITION s1
),
PARTITION p1 VALUES LESS THAN (2000) (
SUBPARTITION s2,
SUBPARTITION s3
),
PARTITION p2 VALUES LESS THAN MAXVALUE (
SUBPARTITION s4,
SUBPARTITION s5
)
);

下载

项目地址: https://github.com/ddcw/ibd2sql
ibd2sql v1.3下载地址: https://github.com/ddcw/ibd2sql/archive/refs/tags/v1.3.tar.gz

使用ibd2sql解析 mysql 5.7的ibd文件

由于mysql 5.7的ibd文件 没得sdi之类的元数据信息, 所以得先解析 frm文件以获取元数据信息, 之前其实有解析过. 但我不想动代码了, 那就沿用8.0的sdi吧, 也就是得先使用 mysqlfrm 提取出DDL 放到8.0环境, 以获取SDI信息. 复杂点就复杂点吧 -_-

提取mysql5.7的DDL

mysqlfrm是mysql-utilities工具集里面的. 下载地址: https://downloads.mysql.com/archives/get/p/30/file/mysql-utilities-1.6.5.tar.gz

mysqlfrm /data/mysql_3308/mysqldata/db1/ddcw_alltype_table.frm --diagnostic

[ibd2sql] 偷偷更新ibd2sql到v1.3 (支持mysql 5.7)-1

使用mysql8获取sdi信息

然后把ddl语句插入到mysql8.0的环境里面
[ibd2sql] 偷偷更新ibd2sql到v1.3 (支持mysql 5.7)-2

使用ibd2sql解析mysql5.7的数据

使用 --mysql5 来表示这是mysql 5.7的ibd文件

python3 main.py /data/mysql_3308/mysqldata/db1/ddcw_alltype_table.ibd --sdi-table /data/mysql_3314/mysqldata/db1/ddcw_alltype_table.ibd --sql --mysql5

[ibd2sql] 偷偷更新ibd2sql到v1.3 (支持mysql 5.7)-3

总结

至此, ibd2sql又更佳完善了(就是shit越堆越大-_-).

相关文章

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

发布评论