通过obloader导入管理语句失败

【 使用环境 】生产环境
【 OB or 其他组件 】obloader
【 使用版本 】4.2.1.5
【问题描述】想通过obloader将数据库管理语句批量导入执行
【复现路径】
1、通过数据库创建几个测试表,之后drop 掉;
2、通过show recyclebin;获取到刚删除的几个对象名称,编写成如下内容:
[root@vm-02 recycle]# cat purge.sql
purge table _recycle$_1724748666_1755050222916240 ;
purge table _recycle$_1724748666_1755050224992968 ;
purge table _recycle$_1724748666_1755050227250920 ;
purge table _recycle$_1724748666_1755050229286176 ;
purge table _recycle$_1724748666_1755050231361000 ;
purge table _recycle$_1724748666_1755050233258312 ;
purge table _recycle$_1724748666_1755050235441824 ;
purge table _recycle$_1724748666_1755050237528792 ;
purge table _recycle$_1724748666_1755050239736776 ;
purge table _recycle$_1724748666_1755050241562792 ;

3、通过obloader导入时报错如下:
[root@vm-02 ob-loader-dumper-4.3.3.1-RELEASE]# ./bin/obloader --no-sys --tenant mysql --host 10.186.63.162 --port 2881 --user asin --password aaAA11__ --database test --sql --thread 8 --file-path ‘/data/obdumper/ob-loader-dumper-4.3.3.1-RELEASE/recycle/purge.sql’
2025-08-13 10:40:29 [INFO] Parsed args:
[–sql] true
[–file-path] /data/obdumper/ob-loader-dumper-4.3.3.1-RELEASE/recycle/purge.sql
[–no-sys] true
[–host] 10.186.63.162
[–port] 2881
[–user] asin
[–tenant] mysql
[–password] ******
[–database] test
[–sys-user] root

2025-08-13 10:40:29 [WARN] The Java version (17.0.14) you are currently using is not recommended. Recommended range: [1.8.0_300, 9.0.0)
2025-08-13 10:40:29 [ERROR] Load failed! Error: Option --all, --table or other object options are missing
2025-08-13 10:40:29 [ERROR] System exit 1
[root@vm-02 ob-loader-dumper-4.3.3.1-RELEASE]#

【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

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

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

缺文件吧

不缺文件;提示的–table 和–all都不适用;

围观一下

--ddl 呢?

使用obloader导入SQL语句干嘛,直接使用obclient 登陆数据库 source purge.sql 就行了

1 个赞

学习

obloader是用来做数据迁移的,不是用来执行自定义的SQL语句的,你的使用场景现在都不对

[root@vm-02 ob-loader-dumper-4.3.3.1-RELEASE]# ./bin/obloader --no-sys --tenant mysql --host 10.186.63.162 --port 2881 --user asin --password aaAA11__ --database test --sql --ddl --thread 8 --file-path ‘/data/obdumper/ob-loader-dumper-4.3.3.1-RELEASE/recycle/purge.sql’
2025-08-13 13:49:59 [INFO] Parsed args:
[–ddl] true
[–sql] true
[–file-path] /data/obdumper/ob-loader-dumper-4.3.3.1-RELEASE/recycle/purge.sql
[–no-sys] true
[–host] 10.186.63.162
[–port] 2881
[–user] asin
[–tenant] mysql
[–password] ******
[–database] test
[–sys-user] root

2025-08-13 13:49:59 [WARN] The Java version (17.0.14) you are currently using is not recommended. Recommended range: [1.8.0_300, 9.0.0)
2025-08-13 13:50:00 [ERROR] Load failed! Error: Option --all, --table or other object options are missing
2025-08-13 13:50:00 [ERROR] System exit 1
[root@vm-02 ob-loader-dumper-4.3.3.1-RELEASE]# ./bin/obloader --no-sys --tenant mysql --host 10.186.63.162 --port 2881 --user asin --password aaAA11__ --database test --sql --ddl --all --thread 8 --file-path ‘/data/obdumper/ob-loader-dumper-4.3.3.1-RELEASE/recycle/purge.sql’
2025-08-13 13:50:13 [INFO] Parsed args:
[–ddl] true
[–sql] true
[–file-path] /data/obdumper/ob-loader-dumper-4.3.3.1-RELEASE/recycle/purge.sql
[–no-sys] true
[–host] 10.186.63.162
[–port] 2881
[–user] asin
[–tenant] mysql
[–password] ******
[–database] test
[–sys-user] root
[–all] true

2025-08-13 13:50:13 [WARN] The Java version (17.0.14) you are currently using is not recommended. Recommended range: [1.8.0_300, 9.0.0)
2025-08-13 13:50:13 [ERROR] Load failed! Error: One table can only correspond to one data file
2025-08-13 13:50:13 [ERROR] System exit 1
[root@vm-02 ob-loader-dumper-4.3.3.1-RELEASE]#

嗯,我知道source可以,只是太慢了。我要清理34w的对象,所以想用obloader的并行来处理

首先你这个场景就没办法使用obloader,就无从谈起可以并行处理

嗯,所以想看看官方会不会后续支持了。现在也只能挂着source慢慢执行了

去掉 – sql

[root@vm-02 ob-loader-dumper-4.3.3.1-RELEASE]# ./bin/obloader --no-sys --tenant mysql --host 10.186.63.162 --port 2881 --user asin --password aaAA11__ --database test --ddl --thread 8 --file-path ‘/data/obdumper/ob-loader-dumper-4.3.3.1-RELEASE/recycle/purge.sql’
2025-08-14 14:22:05 [INFO] Parsed args:
[–ddl] true
[–file-path] /data/obdumper/ob-loader-dumper-4.3.3.1-RELEASE/recycle/purge.sql
[–no-sys] true
[–host] 10.186.63.162
[–port] 2881
[–user] asin
[–tenant] mysql
[–password] ******
[–database] test
[–sys-user] root

2025-08-14 14:22:05 [WARN] The Java version (17.0.14) you are currently using is not recommended. Recommended range: [1.8.0_300, 9.0.0)
2025-08-14 14:22:05 [ERROR] Load failed! Error: Option --all, --table or other object options are missing
2025-08-14 14:22:05 [ERROR] System exit 1
[root@vm-02 ob-loader-dumper-4.3.3.1-RELEASE]#

1.Load failed! Error: Option --all, --table or other object options are missing,obloader需要指定表对象,报错是缺少表对象。

2.obloader是导入数据,obdumper是导出数据。暂时不支持这样的用法,使用obloader指定sql文件,是要指定导入的数据文件,不是所有的sql语句都支持