首批通过分布式安全可靠测评,为关键业务系统打造
导数工具 V4.0.0
更新时间:2026-04-02 22:00:50
本次 12 月发版的导数工具 V4.0.0 主要新增支持导入导出 ORC, Parquet 列存格式(默认:压缩)、新增支持导入导出 TYPE 对象的定义,弱化产品对于 sys 租户的权限依赖、优化数据导出性能(优化范围:定义主键的表或者定义非空唯一键的表)、升级底层依赖的组件版本,JDBC 驱动 (升级到 V2.2.11)、分区计算组件(升级到 V1.4.0)以及修复历史版本中若干功能缺陷。
版本信息
当前版本:V4.0.0
前置版本:V3.3.2
发版时间:2022 年 12 月 13 日
支持的 OceanBase 数据库版本
OceanBase 导数工具 V4.0.0 支持下表所列版本的 OceanBase 数据库。
| OceanBase 模式 | 支持的版本号 |
|---|---|
| Oracle 兼容模式 | V2.0.x、V2.1.x、V2.2.20、V2.2.30、V2.2.50、V2.2.70、V2.2.71、V2.2.72、V2.2.76、V2.2.77、V3.1.x、V3.2.x、V4.0.0 |
| MySQL 兼容模式 | V1.4.70、V1.4.72、V1.4.75、V1.4.78、V1.4.79、V2.2.30、V2.2.50、V2.2.70、V2.2.71、V2.2.72、V2.2.76、V2.2.77、V3.1.x、V3.2.x、V4.0.0 |
功能变更
OBLOADER:
- 新增
--orc和--par选项,支持将 ORC, Parquet 格式的数据文件导入到 OceanBase 数据库中。
- 新增
OBDUMPER:
新增
--orc和--par选项,支持将表中的数据导出到 ORC, Parquet 格式的数据文件中。新增
--type选项,支持导出 TYPE 对象定义。弱化对 sys 租户权限的依赖。未指定 sys 租户密码和指定 sys 租户密码的功能差异如下:

问题修复
修复 OBDUMPER 导出 OceanBase 数据库 Oracle 兼容模式 V2.2.30 的分区索引报语法错误的缺陷。
修复 OBDUMPER 命令行指定
--cut选项的导出数据中存在NULL,OBLOADER 导入时将NULL当作NULL字符串的缺陷。修复 OBDUMPER 无法导出 OceanBase 数据库 Oracle 兼容模式中公共同义词的缺陷。
修复 OBDUMPER 无法导出 OceanBase 数据库 V2.2.77 及之前版本的 TABLEGROUP 的分区信息的缺陷。
修复 OBDUMPER 命令行指定
--sql选项导出数据时,Insert SQL 存在未换行的缺陷。修复 OBDUMPER 命令行未指定 sys 租户密码时,OceanBase 数据库 Oracle 兼容模式导出的列注释语法错误的缺陷。
修复 OBDUMPER 一致性导出时可能因提前关闭 PS 导致程序报 NPE 的缺陷。
修复 OBDUMPER 一致性导出时无法导出最近一次合并的基线版本数据的缺陷。
修复 OBDUMPER 导出 OceanBase 数据库 V4.0.0 的 TYPE 类型定义后,OBLOADER 导入失败的缺陷。
修复 OBDUMPER 导出 OceanBase 数据库 V4.0.0 的分区索引报错的缺陷。
修复 OBDUMPER 查询 OceanBase 数据库 V4.0.0 的索引分区时,数据库版本判断存在错误的缺陷。
修复 OBDUMPER 命令行未指定
--ddl,--csv以及其他数据格式选项,程序不拦截的缺陷。修复 OBLOADER 命令行指定
--mix选项导入文件必须与--table选项搭配使用的易用性缺陷。修复 OBLOADER 命令行指定
--mix选项时导入文件中存在的 TABLEGROUP 定义,OBLOADER 会报错的缺陷。修复 OBLOADER 导入数据到多副本集群中时,如果发生部分节点宕机,所有数据都无法导入的缺陷。
修复 OBLOADER 使用控制文件做字段映射时,导入数据可能会出现数组越界的缺陷。
修复 OBLOADER 导入数据库对象定义时不支持指定路径缺陷。
修复 OBLOADER 导入包含生成列的表结构到 OceanBase 数据库 V4.0.0 中失败的缺陷。
已知问题
导出的数据库对象定义中可能会包含对象所属的数据库名。
命令行未指定 sys 租户密码时,OceanBase 数据库 V2.2.70 之前的版本均不支持导出表组定义。
命令行未指定 sys 租户密码时,OceanBase 数据库 Oracle 兼容模式 V2.2.50 之前的版本无法导出索引定义。
命令行未指定 sys 租户密码时,OceanBase 数据库 Oracle 兼容模式 V2.2.70 之前的版本无法导出唯一索引的分区信息。
命令行未指定 sys 租户密码时,OceanBase 数据库 Oracle 兼容模式 V2.2.70 及之后的版本无法导出分区表的唯一索引定义。
OceanBase 数据库 MySQL 兼容模式暂不支持导出 SEQUENCE 对象定义。
OceanBase 数据库 MySQL 兼容模式 V2.2.30 之前的版本中均不支持导出 PL 对象定义。
Windows 操作系统上,命令行指定
--cut选项导入文件时存在缺陷。
注意事项
CUT 格式要求数据整行存放。OBDUMPER 命令行指定
--cut选项导出的数据中存在字段分隔符时,如果字段分隔符是单个字符时,数据中出现分隔符、回车或者换行等特殊字符,OBDUMPER 会将数据中的特殊字符进行转义。例如:数据为abc|def,分隔符为|,则导出的数据为abc\|def。命令行指定
--cut选项导入数据时,如果文件中的数据行尾没有字段分隔符(或分隔串),请勿使用--trail-delimiter选项,否则数据无法被正确导入至数据库中。命令行中指定
--logical-database选项时,导出的是随机的一个物理分库分表的定义,不可以直接导入到数据库中。用户需要将导出的物理库表结构手动改成逻辑库表结构,才可以导入到数据库中被业务使用。如果导入/导出数据时需要利用控制文件进行数据预处理,则需要使用
--table选项和--ctl-path选项,并且--table选项指定的表名需要与--ctl-path选项指定的文件名保持大小写一致,否则导数工具无法识别控制文件。命令行指定
--partition选项导出分区内的数据时,对于组合分区表需要指定二级分区名,OBDUMPER 无法导出一级分区内的数据。如果指定的分区名不存在,OBDUMPER 会报错提示。命令行指定
--add-extra-message选项导出表定义时,程序会导出每张表所属的表组名。该选项依赖 sys 租户权限。如果 OBDUMPER 运行时缺少 sys 租户的权限,请勿指定该选项。OceanBase 数据库 V3.2.4 及之后的版本使用导数工具前,请将系统配置项
open_cursors设置为较大的值,否则导入/导出可能会出现错误。数据导入/导出结束后,请将该系统配置项重置成初始值。例如:ALTER SYSTEM SET open_cursors = 65535;。OceanBase 数据库 V4.0.0 及之后版本中表结构发生过任意的变更操作,无法使用 OBDUMPER 导出该表最近一次成功合并的基线数据(即一致性快照数据),用户可以手动发起一次合并以后,再重新导出最近一次成功合并的基线数据。