【 使用环境 】生产环境
【 OB or 其他组件 】ob-loader-dumper-4.3.5-RELEASE
【 使用版本 】ob-loader-dumper-4.3.5-RELEASE
【问题描述】
我的本地环境OB版本为 5.7.25-OceanBase_CE-v4.3.5.4
我的生产环境OB版本为 5.7.25-OceanBase-v4.2.5.7
当我在本地环境使用 obdumper 导出结构数据往生产环境同步的时候,会出现报错
经过分析是因为两个实例版本不一致导致,我的本地环境版本较新,在DDL中添加了一些新的属性,比如 ORGANIZATION INDEX 和 ENABLE_MACRO_BLOCK_BLOOM_FILTER = FALSE ,完整DDL如下
CREATE TABLE `data_market_interface_column` (
`interface_id` varchar(10) DEFAULT NULL COMMENT '接口ID',
`column_code` varchar(60) DEFAULT NULL COMMENT '列编码',
`column_name` varchar(200) DEFAULT NULL COMMENT '列名称',
`column_type` varchar(60) DEFAULT NULL COMMENT '列类型',
`base_table` varchar(100) DEFAULT NULL COMMENT '表名称',
`model_id` varchar(40) DEFAULT NULL COMMENT '模型ID',
`table_id` varchar(40) DEFAULT NULL COMMENT '表ID',
`status` int(11) DEFAULT NULL COMMENT '当前状态',
`creator` varchar(64) DEFAULT NULL COMMENT '创建人',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(64) DEFAULT NULL COMMENT '更新人',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`tenant_id` bigint(20) NOT NULL DEFAULT '1' COMMENT '租户',
`deleted` smallint(6) DEFAULT '0' COMMENT '是否删除'
) ORGANIZATION INDEX DEFAULT CHARSET = utf8mb4 ROW_FORMAT = DYNAMIC COMPRESSION = 'zstd_1.3.8' REPLICA_NUM = 1 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE ENABLE_MACRO_BLOCK_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 0 COMMENT = '数据集市-数据共享-列信息';
就是因为 ORGANIZATION 和 ENABLE_MACRO_BLOCK_BLOOM_FILTER 俩属性导致我在生产环境使用 obloader 的时候报错,工具无法使用
问题根本还是在 obdumper ,他没能区分版本的差异,请问我在实际使用的时候,如何跨版本进行DDL的导出,就是在使用 obdumper 的时候,如何避免一些各个版本差异的语法导出
