前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[ibd2sql] 偷偷更新ibd2sql到v1.3 (支持mysql 5.7)

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

原创
作者头像
大大刺猬
发布2024-05-11 16:17:04
1770
发布2024-05-11 16:17:04
举报
文章被收录于专栏:大大刺猬大大刺猬

导读

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

代码语言:sql
复制
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

代码语言:shell
复制
mysqlfrm /data/mysql_3308/mysqldata/db1/ddcw_alltype_table.frm --diagnostic

使用mysql8获取sdi信息

然后把ddl语句插入到mysql8.0的环境里面

使用ibd2sql解析mysql5.7的数据

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

代码语言:shell
复制
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又更佳完善了(就是shit越堆越大-_-).

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导读
  • 下载
  • 使用ibd2sql解析 mysql 5.7的ibd文件
    • 提取mysql5.7的DDL
      • 使用mysql8获取sdi信息
        • 使用ibd2sql解析mysql5.7的数据
        • 总结
        相关产品与服务
        云数据库 MySQL
        腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档