1. OBLOADER 旁路导入
1.1 旁路导入介绍
OBLOADER 4.2.6 及之后的版本支持旁路导入数据。
-
--rpc-port= rpc_port_num
用于连接 OBServer RPC 端口。该选项与
--direct,--parallel搭配使用,表示在旁路导入模式下连接 OBServer RPC 端口导入数据。说明
- 该选项仅适用于 OceanBase 4.2.0 RC2 及之后的版本。
- 获取 OBServer RPC 端口方式:
- 连接 ODP 服务端时:
- 云数据库 OceanBase 环境下,ODP RPC Port 默认 3307。
- OceanBase 数据库环境下,默认端口 2885;如果需要自定义,可以在启动 ODP 时通过
-s选项进行指定。
- 连接 OBServer 服务端时,sys 租户下查询系统视图 DBA_OB_SERVERS 即可获取 OBServer 的 RPC 端口,默认端口 2882。
- 连接 ODP 服务端时:
-
--direct
用于指定旁路导入模式。该选项与
--rpc-port,--parallel搭配使用。说明
- OBLOADER 旁路导入模式暂时不支持二进制数据类型。
- OBLOADER 旁路导入模式支持连接 OBServer 和 ODP。对应的版本要求:
- 连接 OBServer 时:要求 OBServer 版本必须为 4.2.0 及之后。
- 连接 ODP 时:要求 ODP 版本必须为 4.1.3 及之后, 且 OBServer 版本必须为 4.2.1 及之后。
-
--parallel= parallel_num
用于旁路导入时加载数据的并行度。该选项与
--rpc-port,--direct搭配使用。
2. --direct 参数是否支持 .sql 文件?
❌ 不支持。
根据 OceanBase 官方文档:
-
--direct是 OBLoader 的旁路导入模式,仅适用于 CSV 格式 文件18。 -
旁路导入通过绕过 SQL 解析层直接写入数据文件提升性能,但设计初衷是优化纯数据导入(如 CSV),而非 SQL 脚本(含 DDL 或复杂 DML)168。
-
若需导入
.sql文件(如 mysqldump 导出的结构+数据),需使用 OBLoader 的普通模式(无--direct参数),此时按 SQL 语句逐行解析执行14。
3. OBLoader 与 MySQL 命令行综合对比
| 对比维度 | OBLoader (OceanBase) | MySQL 命令行 | 核心差异 |
|---|---|---|---|
| 支持文件格式 | CSV、SQL、ORC、Parquet 等16 | SQL (mysqldump)、CSV (LOAD DATA INFILE) |
OBLoader 格式支持更丰富;MySQL 原生适配 SQL 文件。 |
| 导入模式 | 支持旁路导入 (--direct,仅 CSV) 和普通 SQL 模式 |
仅普通 SQL 模式 | OBLoader 旁路导入跳过 SQL 层,速度提升 2-5 倍18。 |
| 并发控制 | --thread 调整线程数;--parallel 旁路并发度 |
无内置并发,需手动拆分文件或并行会话 | OBLoader 内置并发切分与负载均衡18。 |
| 性能优化 | ✅ 三层调优: 1. JVM 内存(调至物理内存 60%) 2. 租户内核参数(冻结阈值/限流) 3. 延迟索引创建258 |
✅ 有限优化:innodb_buffer_pool_sizemax_allowed_packet |
OBLoader 深度集成 OceanBase 内核,优化维度更全面。 |
| 大文件处理 | 自动逻辑切分文件,不占额外存储1 | 需手动拆分文件 | OBLoader 减少人工干预。 |
| 适用场景 | OceanBase 专属优化;异构数据源导入 | MySQL 原生备份恢复 | OBLoader 在 OceanBase 环境中性能碾压;MySQL 命令行兼容性更通用4。 |
4. 使用建议与避坑指南
4.1 OBLoader 使用场景
-
CSV 高速导入:必用
--direct旁路模式(需 OBServer≥4.2.0 + ODP≥4.1.3)8。./obloader --direct --rpc-port 2882 --parallel 16 -f data.csv # 示例命令 -
SQL 文件导入:禁用
--direct,采用普通模式14:./obloader -f dump.sql # 自动识别 SQL 格式
4.2 MySQL 命令行使用场景
-
原生 mysqldump 恢复:
mysql -u user -p db_name < dump.sql # 全量恢复 -
CSV 导入(无旁路优化):
LOAD DATA INFILE 'data.csv' INTO TABLE tbl; -- 需调整 buffer 和 packet 大小
4.3 注意事项
-
旁路导入限制:不支持二进制数据(如 BLOB)、字段长度需可控8。
-
索引处理:OBLoader 建议延迟创建普通索引(主键除外)25。
-
内存配置:
-
OBLoader:编辑
bin/obloader调整-Xms48G -Xmx48G(示例 80G 物理机)28。 -
MySQL:增大
innodb_buffer_pool_size至物理内存 70%4。
-
5 总结
-
--direct仅支持 CSV:是 OBLoader 在 OceanBase 环境中的“性能杀器”,但对 SQL 文件无效18。 -
工具选择优先级:
-
✅ OceanBase + CSV 导入 → OBLoader +
--direct -
✅ MySQL + mysqldump 恢复 → MySQL 命令行
-
⚠️ OceanBase + SQL 文件导入 → OBLoader 普通模式(避免旁路)
-
升级建议:若需高频导入 SQL 文件至 OceanBase,可考虑先转换为 CSV 格式,再利用旁路导入极致性能
posted on
浙公网安备 33010602011771号