本来准备做二级分区的DDL的, 但是看了下, WC, 太复杂了. 而且分区表用得也不多. 还不如更新支持 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
由于mysql 5.7的ibd文件 没得sdi之类的元数据信息, 所以得先解析 frm文件以获取元数据信息, 之前其实有解析过. 但我不想动代码了, 那就沿用8.0的sdi吧, 也就是得先使用 mysqlfrm
提取出DDL 放到8.0环境, 以获取SDI信息. 复杂点就复杂点吧 -_-
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
然后把ddl语句插入到mysql8.0的环境里面
使用 --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又更佳完善了(就是shit越堆越大-_-).
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。