obdumper跨版本迁移数据的时候,数据结构不兼容

【 使用环境 】生产环境
【 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 的时候,如何避免一些各个版本差异的语法导出

1 个赞

这个是预期内的,你导出肯定是按照原库导出的。生产环境是企业版的,建议你咨询下商业技术支持那边