Skip to content

表分区过多时,无法正确解析表结构,返回报错no tables matched #78

@zhengshibing

Description

@zhengshibing

Environment
python version:
ibd2sql version:
OS version:

Describe the bug
A clear and concise description of what the bug is.

To Reproduce

表结构信息如下
CREATE TABLE CustomerRequestLogExt (
id bigint NOT NULL AUTO_INCREMENT,
c1 bigint DEFAULT NULL,
c2 int DEFAULT NULL,
c3 int DEFAULT NULL,
c4 int DEFAULT NULL,
c5 int DEFAULT NULL,
k varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
c6 varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
c7 varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
c8 int DEFAULT NULL,
c9 int DEFAULT NULL,
c10 bit(1) DEFAULT NULL,
c11 int DEFAULT NULL,
c12 int DEFAULT NULL,
c13 mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci,
c14 datetime NOT NULL,
c15 datetime DEFAULT CURRENT_c15 ON UPDATE CURRENT_c15,
PRIMARY KEY (id,c14) USING BTREE,
KEY idx_c1 (c1) USING BTREE,
KEY idx_c2 (c2) USING BTREE,
KEY idx_c2_c6 (c2,c6) USING BTREE,
KEY idx_k (k) USING BTREE,
KEY idx_c5 (c5) USING BTREE,
KEY idx_c12 (c12) USING BTREE,
KEY idx_c7 (c7) USING BTREE,
KEY idx_c14 (c14) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4462259456 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
PARTITION BY RANGE COLUMNS(c14)
(PARTITION p20250301 VALUES LESS THAN ('20250302') ENGINE = InnoDB,
PARTITION p20250302 VALUES LESS THAN ('20250303') ENGINE = InnoDB,
PARTITION p20250303 VALUES LESS THAN ('20250304') ENGINE = InnoDB,
PARTITION p20250304 VALUES LESS THAN ('20250305') ENGINE = InnoDB,
PARTITION p20250305 VALUES LESS THAN ('20250306') ENGINE = InnoDB,
PARTITION p20250306 VALUES LESS THAN ('20250307') ENGINE = InnoDB,
PARTITION p20250307 VALUES LESS THAN ('20250308') ENGINE = InnoDB,
PARTITION p20250308 VALUES LESS THAN ('20250309') ENGINE = InnoDB,
PARTITION p20250309 VALUES LESS THAN ('20250310') ENGINE = InnoDB,
PARTITION p20250310 VALUES LESS THAN ('20250311') ENGINE = InnoDB,
PARTITION p20250311 VALUES LESS THAN ('20250312') ENGINE = InnoDB,
PARTITION p20250312 VALUES LESS THAN ('20250313') ENGINE = InnoDB,
PARTITION p20250313 VALUES LESS THAN ('20250314') ENGINE = InnoDB,
PARTITION p20250314 VALUES LESS THAN ('20250315') ENGINE = InnoDB,
PARTITION p20250315 VALUES LESS THAN ('20250316') ENGINE = InnoDB,
PARTITION p20250316 VALUES LESS THAN ('20250317') ENGINE = InnoDB,
PARTITION p20250317 VALUES LESS THAN ('20250318') ENGINE = InnoDB,
PARTITION p20250318 VALUES LESS THAN ('20250319') ENGINE = InnoDB,
PARTITION p20250319 VALUES LESS THAN ('20250320') ENGINE = InnoDB,
PARTITION p20250320 VALUES LESS THAN ('20250321') ENGINE = InnoDB,
PARTITION p20250321 VALUES LESS THAN ('20250322') ENGINE = InnoDB,
PARTITION p20250322 VALUES LESS THAN ('20250323') ENGINE = InnoDB,
PARTITION p20250323 VALUES LESS THAN ('20250324') ENGINE = InnoDB,
PARTITION p20250324 VALUES LESS THAN ('20250325') ENGINE = InnoDB,
PARTITION p20250325 VALUES LESS THAN ('20250326') ENGINE = InnoDB,
PARTITION p20250326 VALUES LESS THAN ('20250327') ENGINE = InnoDB,
PARTITION p20250327 VALUES LESS THAN ('20250328') ENGINE = InnoDB,
PARTITION p20250328 VALUES LESS THAN ('20250329') ENGINE = InnoDB,
PARTITION p20250329 VALUES LESS THAN ('20250330') ENGINE = InnoDB,
PARTITION p20250330 VALUES LESS THAN ('20250331') ENGINE = InnoDB,
PARTITION p20250331 VALUES LESS THAN ('20250401') ENGINE = InnoDB,
PARTITION p20250401 VALUES LESS THAN ('20250402') ENGINE = InnoDB,
PARTITION p20250402 VALUES LESS THAN ('20250403') ENGINE = InnoDB,
PARTITION p20250403 VALUES LESS THAN ('20250404') ENGINE = InnoDB,
PARTITION p20250404 VALUES LESS THAN ('20250405') ENGINE = InnoDB,
PARTITION p20250405 VALUES LESS THAN ('20250406') ENGINE = InnoDB,
PARTITION p20250406 VALUES LESS THAN ('20250407') ENGINE = InnoDB,
PARTITION p20250407 VALUES LESS THAN ('20250408') ENGINE = InnoDB,
PARTITION p20250408 VALUES LESS THAN ('20250409') ENGINE = InnoDB,
PARTITION p20250409 VALUES LESS THAN ('20250410') ENGINE = InnoDB,
PARTITION p20250410 VALUES LESS THAN ('20250411') ENGINE = InnoDB,
PARTITION p20250411 VALUES LESS THAN ('20250412') ENGINE = InnoDB,
PARTITION p20250412 VALUES LESS THAN ('20250413') ENGINE = InnoDB,
PARTITION p20250413 VALUES LESS THAN ('20250414') ENGINE = InnoDB,
PARTITION p20250414 VALUES LESS THAN ('20250415') ENGINE = InnoDB,
PARTITION p20250415 VALUES LESS THAN ('20250416') ENGINE = InnoDB,
PARTITION p20250416 VALUES LESS THAN ('20250417') ENGINE = InnoDB,
PARTITION p20250417 VALUES LESS THAN ('20250418') ENGINE = InnoDB,
PARTITION p20250418 VALUES LESS THAN ('20250419') ENGINE = InnoDB,
PARTITION p20250419 VALUES LESS THAN ('20250420') ENGINE = InnoDB,
PARTITION p20250420 VALUES LESS THAN ('20250421') ENGINE = InnoDB,
PARTITION p20250421 VALUES LESS THAN ('20250422') ENGINE = InnoDB,
PARTITION p20250422 VALUES LESS THAN ('20250423') ENGINE = InnoDB,
PARTITION p20250423 VALUES LESS THAN ('20250424') ENGINE = InnoDB,
PARTITION p20250424 VALUES LESS THAN ('20250425') ENGINE = InnoDB,
PARTITION p20250425 VALUES LESS THAN ('20250426') ENGINE = InnoDB,
PARTITION p20250426 VALUES LESS THAN ('20250427') ENGINE = InnoDB,
PARTITION p20250427 VALUES LESS THAN ('20250428') ENGINE = InnoDB,
PARTITION p20250428 VALUES LESS THAN ('20250429') ENGINE = InnoDB,
PARTITION p20250429 VALUES LESS THAN ('20250430') ENGINE = InnoDB,
PARTITION p20250430 VALUES LESS THAN ('20250501') ENGINE = InnoDB,
PARTITION p20250501 VALUES LESS THAN ('20250502') ENGINE = InnoDB,
PARTITION p20250502 VALUES LESS THAN ('20250503') ENGINE = InnoDB,
PARTITION p20250503 VALUES LESS THAN ('20250504') ENGINE = InnoDB);

数据库版本为mysql 8.0.19

执行解析ddl命令输出如下

[root@mgr22 ibd2sql-ibd2sql-v2.x]# python3 main.py /datamysql/data3313/data/mydb/log_tab#p#p20250301.ibd --ddl --log
[2025-11-05 22:18:22] [INFO] SET: {}
[2025-11-05 22:18:22] [INFO] INIT FILENAME
[2025-11-05 22:18:22] [INFO] /datamysql/data3313/data/mydb/log_tab#p#p20250301.ibd logical_size 16384
[2025-11-05 22:18:22] [INFO] /datamysql/data3313/data/mydb/log_tab#p#p20250301.ibd physical_size 16384
[2025-11-05 22:18:22] [INFO] /datamysql/data3313/data/mydb/log_tab#p#p20250301.ibd compressed False
[2025-11-05 22:18:22] [INFO] /datamysql/data3313/data/mydb/log_tab#p#p20250301.ibd ENCRYPTION False
[2025-11-05 22:18:22] [INFO] /datamysql/data3313/data/mydb/log_tab#p#p20250301.ibd SDI True
[2025-11-05 22:18:22] [INFO] /datamysql/data3313/data/mydb/log_tab#p#p20250301.ibd SHARED False
[2025-11-05 22:18:22] [INFO] /datamysql/data3313/data/mydb/log_tab#p#p20250301.ibd POST_ANTELOPE 1
[2025-11-05 22:18:22] [INFO] /datamysql/data3313/data/mydb/log_tab#p#p20250301.ibd mysql version: 80019
[2025-11-05 22:18:22] [ERROR] unknown error when read sdi 3
no tables matched
[root@mgr22 ibd2sql-ibd2sql-v2.x]#

Other

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions