首批通过分布式安全可靠测评,为关键业务系统打造
产品简介
更新时间:2026-04-13 15:40:56
什么是 OBLOADER
OBLOADER 是一款使用 Java 开发的客户端导入工具。该工具提供了非常灵活的命令行选项,可在多种复杂的场景下,将数据库对象定义和表数据导入到 OceanBase 中。推荐 OBLOADER 与 OBDUMPER 搭配使用,但是在外部业务中,OBLOADER 同时支持如 Navicat、Mydumper 和 SQLDeveloper 等工具导出的 CSV 格式的文件导入。OBLOADER 充分利用 OceanBase 分布式系统的特性,重点优化导入性能和稳定性,以及丰富运行监控信息提升用户体验。
产品功能
OBLOADER 主要具备以下功能特性:
- 支持导入数据库对象定义的语句。
- 支持导入标准的 CSV 格式和 SQL 格式的数据文件。
- 支持导入定长字节格式,字符串分隔格式以及DDL和DML混合的文件格式。
- 支持导入时,配置数据预处理的控制规则以及文件与表之间的字段映射关系。
- 支持导入限速、防导爆、断点恢复和自动重试等特性。
- 支持指定自定义的日志目录、保存坏数据和冲突数据等特性。
- 支持将 OSS 云存储中的数据导入到 OceanBase 数据库。
支持的 OceanBase 数据库
已支持的 OceanBase 模式与版本,如下表所示:
| OceanBase 模式 | 支持的版本 号 |
|---|---|
| MySQL 模式 | 1.4.70、1.4.72、1.4.75、1.4.78、1.4.79、2.2.30、2.2.50、2.2.70、2.2.71、2.2.72、2.2.76、3.1.x、3.2.x |
注意
OBLOADER 3.0.0 版本已支持 OceanBase 社区版 3.1.2 及之后版本。
注意事项
- 标准的 CSV 格式请参考 RFC 4180 规范,建议导入时严格遵从 RFC 4180 规范。
- 导入大量数据时,请在运行的脚本中修改虚拟机的内存参数。
- 命令行参数指定的对象名、数据文件名、规则文件名要求大小写一致。MySQL 默认小写。如果数据库中同时存在大写和小写的对象名,要求小写的对象名和文件名加上中括号。
- 导入的数据文件的命名规范是 table.group.sequence.suffix。
- 数据库对象存在依赖时,无法保证对象定义和数据按照依赖顺序导入。
- 无主键的表,暂不支持中断续传和数据替换。
- OceanBase MySQL 1.4.79 使用
insert ... where not exists解决主键冲突时存在跨分区插入的错误。 - OceanBase MySQL 1.4.x 组合分区表 RANGE_COLUMNS + KEY 在虚拟路由视图中的元数据有缺陷。
- OBLOADER 可以支持的文件格式如下:
- DDL 文件:文件中的内容仅包含 DDL 语句。
- CSV 文件:文件中的内容是符合 RFC 4180 规范的标准 CSV 格式。
- SQL 文件:文件中的内容仅包含
INSERT SQL语句, 数据不换行。 - MIX 文件:文件中的内容既包含 DDL 语句又包含 DML 语句。
- POS 文件:文件中的内容是以固定字节长度定义的格式。
- CUT 文件:文件中的内容是按照字符串进行分隔的格式。区别于 CSV 格式。
限制模式
说明
限制模式仅适用于用户无法直接提供--sys-user和--sys-password选项的场景。
使用限制模式(
--public-cloud)导入数据到公共云部署的 OceanBase 集群时无需指定-t,-c连接选项。导入数据到私有云部署的 OceanBase 集群时需要指定-t连接选项,连接 ODP 服务时还需要加上-c选项。如果用户未使用限制模式,OBLOADER 必须指定--sys-user和--sys-password选项。限制模式会影响导入的功能、性能以及稳定性。OceanBase 2.2.30 及之后版本已支持服务端限流的功能,所以使用限制模式时为保证数据导入的稳定性,可通过以下命令设置服务端限流阈值:
alter system set freeze_trigger_percentage=50; alter system set minor_merge_concurrence=64; alter system set writing_throttling_trigger_percentage=80 tenant='xxx';