旁路导入错误

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

oceanbase版本为4.2.2

/data/backup/ob-loader-dumper-4.2.4-RELEASE/bin/obloader -h 10.100.12.11 -P 2883 -u root -t sys -c zhejiang -p -D hello --csv --table ‘*’ -f /tmp/20241125old/data/hello --thread 16 --rpc-port=2885 --direct --parallel=16
Enter value for --password (Password to use when connecting to server):
Exception in thread “main” picocli.CommandLine$UnmatchedArgumentException: Unknown options: ‘–rpc-port=2885’, ‘–direct’

1 个赞

根据文档库中的信息,obloader 工具在使用时并没有 --rpc-port--direct 选项。这可能是导致您遇到“Unknown options”错误的原因。

解决方案:

  1. 移除未知选项
    请尝试移除 --rpc-port=2885--direct 选项,重新运行 obloader 命令。例如:

    /data/backup/ob-loader-dumper-4.2.4-RELEASE/bin/obloader -h 10.100.12.11 -P 2883 -u root -t sys -c zhejiang -p -D hello --csv --table '*' -f /tmp/20241125old/data/hello --thread 16 --parallel=16
    
  2. 检查 obloader 文档
    确认 obloader 的官方文档或帮助信息中是否有这些选项。您可以运行 obloader --help 查看所有可用选项。

  3. 使用 LOAD DATA 语句
    如果您需要使用旁路导入功能,可以考虑使用 LOAD DATA 语句,并通过 Hint 指定是否走旁路导入。例如:

    LOAD DATA INFILE '/path/to/your/file.csv' INTO TABLE your_table DIRECT;
    

具体步骤:

  1. 移除未知选项

    /data/backup/ob-loader-dumper-4.2.4-RELEASE/bin/obloader -h 10.100.12.11 -P 2883 -u root -t sys -c zhejiang -p -D hello --csv --table '*' -f /tmp/20241125old/data/hello --thread 16 --parallel=16
    
  2. 检查 obloader 帮助信息

    /data/backup/ob-loader-dumper-4.2.4-RELEASE/bin/obloader --help
    
  3. 使用 LOAD DATA 语句

    LOAD DATA INFILE '/path/to/your/file.csv' INTO TABLE your_table DIRECT;
    

希望以上信息能帮助您解决问题。如果仍有疑问,请提供更多详细信息以便进一步诊断。

具体信息可参考以下文档:

  1. 使用 LOAD DATA 语句旁路导入数据
  2. OceanBase 数据库社区版 V4.2.1
  3. ob_esi_rpc_port
  4. OceanBase 数据库社区版 V4.0.0
  5. 使用 OceanBase 导数工具从 OceanBase 集群 Oracle 租户迁移数据到 MySQL 租户
  6. 使用 OceanBase 导数工具在 OceanBase 集群 MySQL 租户间迁移数据
  7. 5000 ~ 5999
  8. obcdc 开发说明
  9. ob_error

去掉 --rpc-port=2885 --direct 是可以的 ,但就不是旁路导入了,旁入导入可以加快导入速度

根据文档库中的信息,旁路导入确实可以提高数据导入的效率。为了实现旁路导入,您需要使用特定的命令和配置。以下是详细的步骤和示例:

旁路导入的配置和命令

  1. 配置 session.config.json 文件
    您需要在 {ob-loader-dumper}/conf 目录下的 session.config.json 文件中配置旁路导入参数。示例如下:

    {
      "direct_path_load": {
        "rpc_connect_timeout": "15000",
        "rpc_execute_timeout": "20000",
        "runtime_retry_times": "5",
        "runtime_retry_intervals": "50",
        "task_timeout": "2592000000000",
        "heartbeat_timeout": "60000000"
      }
    }
    

    参数说明:

    • rpc_connect_timeout:RPC 连接超时时间,单位为毫秒。
    • rpc_execute_timeout:RPC 执行超时时间,单位为毫秒。
    • runtime_retry_times:运行时最大重试次数。如果因为某些原因操作失败,将会根据该参数进行重试。
    • runtime_retry_intervals:重试间隔时间。在重试操作前等待的时间长度,单位为毫秒。
    • task_timeout:配置操作的超时时间。如果在配置的时限内未完成操作,则被视为超时。单位为微秒,默认值为 0,表示无超时限制。
    • heartbeat_timeout:设置心跳超时时间,用于检测导入操作的活跃状态。单位为微秒,默认值为 0,表示不启用心跳检测。
  2. 使用 obloader 命令
    在配置文件中设置了旁路导入参数后,您可以使用 obloader 命令进行旁路导入。示例如下:

    /data/backup/ob-loader-dumper-4.2.4-RELEASE/bin/obloader -h 10.100.12.11 -P 2883 -u root -t sys -c zhejiang -p -D hello --csv --table '*' -f /tmp/20241125old/data/hello --thread 16 --parallel=16 --direct-path
    

    注意:

    • --direct-path 选项用于启用旁路导入。
    • --thread--parallel 选项分别表示客户端到服务端的连接池和 OBServer 可以调用的工作线程数,建议保持一致。

注意事项

  1. 增量旁路导入

    • 增量旁路导入的数据会触发转储,对于数据量较小且能在分钟内完成导入的情况,不建议使用增量旁路导入。
    • 执行增量旁路导入的分区数不能超过 8000。
    • 有索引(不包括主键)的表不支持增量旁路导入。
    • 有外键的表不支持增量旁路导入。
    • 原表以及导入数据中有 LOB 类型,如果 LOB 类型的数据大小超过表的 OB_INROW_THRESHOLD 大小,则不支持增量旁路导入。
  2. 全量旁路导入

    • 全量旁路导入适用于大表首次导入、10 GB~TB 级别的数据迁移以及 CPU 和内存都不是特别充裕的场景。
    • 旁路导入期间会加表锁,表无法被写入其他数据,整个过程中表是只读的。
    • 当导入的数据量小于 Memtable 时,旁路导入没有优势。

示例

假设您已经配置了 session.config.json 文件,以下是完整的命令示例:

/data/backup/ob-loader-dumper-4.2.4-RELEASE/bin/obloader -h 10.100.12.11 -P 2883 -u root -t sys -c zhejiang -p -D hello --csv --table '*' -f /tmp/20241125old/data/hello --thread 16 --parallel=16 --direct-path

希望以上信息能帮助您成功进行旁路导入。如果仍有问题,请提供更多详细信息以便进一步诊断。

具体信息可参考以下文档:

  1. ETL 加速
  2. 使用 OBLOADER 旁路导入数据
  3. 增量旁路导入
  4. 全量旁路导入
  5. obcdc 支持增量旁路导入
  6. 旁路导入概述

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

参考下这个帖子,obproxy是什么版本?可能版本不对

旁路导入添加--direct --parallel=8 报错,不添加就没问题 - #4,来自 阿强p0g2t1_gaMTIwMjU5NTAzNC4xNzE0OTc1MTY1_ga_T35KTM57DZ*MTczMjc1NjY5MC4zNDcuMS4xNzMyNzY0NTUzLjYwLjAuMA…

你好,命令格式有误,改成
/data/backup/ob-loader-dumper-4.2.4-RELEASE/bin/obloader -h 10.100.12.11 -P 2883 -u root -t sys -c zhejiang -p -D hello --csv --table ‘*’ -f /tmp/20241125old/data/hello --thread 16 --rpc-port 2885 --direct --parallel 16

这个问题解决了吗