obloader导入失败

麻烦提供一份完整的日志看下。

日志只有这个消息

logs.zip (27.6 KB)

看着像是.sql文件存在异常


比如随便找一条sql:INSERT INTO trade (tr_id,eid,meid,buyer_id,sid,tid,created,addtime,leftime,paytime,final_payment_time,updtime,modify,signtime,endtime,hash_item,wh_id,buyer,type,lock,ctype,status,third_warehouse_status,sh_id,priority,ship_type,ship_name,ship_when,ship_code,ship_date,package_no,fee_pay,fee_post,fee_discount,fee_point,fee_adjust,fee_original,fee_total,fee_balance,inv_name,inv_text,weight,gp_id,promo,level,task_id,single_brush,reason,abroad,currency,xpromo_id,source_order_code,sku_weight,op_id,has_out_of_stock,new_sign_time) VALUES (1459345,‘14471704855603916370’,‘24471704858130918456’,‘51471704855603937807’,‘6917560171212373799’,‘6917560171212373799’,1704855301,1704855603,0,1704855324,0,1704858109,1704858130,0,0,‘77369c70f8136c36f40eddb2d1b38528’,4,‘詹*’,‘FIX’,‘C’,‘PAY’,‘FAIL’,null,6601,0,‘246’,‘YUNDA’,‘ALL’,‘318818588094162’,0,null,3990.0000000000000000,0.0000000000000000,1000.0000000000000000,0.0000000000000000,0.0000000000000000,3990.0000000000000000,4990.0000000000000000,0.0000000000000000,’’,’’,230,5,‘JU’,1,0,null,27,0,‘CNY’,8292,null,null,null,0,null); 直接insert是没错的

会不会是磁盘性能问题?

不是,之前别的机器安装oceanbase,也执行过obloader也遇到这个问题,当时也提了工单没有下文,这次因为非常需要导入数据,再发帖求答疑下, Write into table “trade” failed. com.alipay.oceanbase.rpc.direct_load.exception.ObDirectLoadIllegalStateException: statement cannot write because is fail, state:7, expect:[2, 3] 这个问题官网都搜不到

有bad文件生成吗,方便提供一下详细日志和数据吗。这边测试复现下看看

昨天排查的确有些sql异常,就是ddl某字段原始null,开始有些数据进来,后来可能改成not null,整表导出,该字段为空的数据再导入就会报错,已经修改ddl解决部分问题。现在有时候遇到就是带旁路导入参数会失败,旁路导入添加--direct --parallel=8 报错,不添加就没问题 - #5,来自 zmix 和这篇差不多问题,那就只能直接导速率较慢但是正常。有的时候导长时间进度条不变,ctrl c中断,后续再启动obloader是不是又从头重新导了?

再启动obloader是会要重新导入

是不是有数据导致的主键冲突什么的。 导入后,obloader 在导入目录有日志文件,有error,bad 等文件,可以参考一下!
同时 obloader 导入目标表有替换,清空参数,可以试一试

麻烦提供一下你带旁路导入参数执行的obloader语句

obloader -h 192.168.48.107 -P2881 -uroot@ERP --direct --parallel 4 --rpc-port 2882 -p -D simba_wms_hans --ddl --sql --al-f /root/dbbackup/wms/data/simba_wms_hans/TABLE/handle

麻烦贴一下报错信息,observer版本是多少

感觉是sql问题。obdumper -h xxx-zhangjiakou.oceanbase.aliyuncs.com -uadmin -P3306 -p --public-cloud -t ** -D simba_tn_hans --table trade --ddl --sql -f hans/tn/ 能不能像mysqldump可以带–where条件

可以。参考官方文档
https://www.oceanbase.com/docs/common-oceanbase-dumper-loader-1000000003972549


obdumper -h xxx-zhangjiakou.oceanbase.aliyuncs.com -uadmin -P3306 -p --public-cloud -t ** -D simba_tn_hans --table trade --where=“addtime >=1759248000” --ddl --sql -f hans/tn/
带上了where条件,只导出了-schema 也就是ddl文件,没有数据文件

你参数里面加了 --ddl参数。再加个–all

大佬这个问题有解决么,刚好最近也是遇到了这个问题,普通导入就没有问题,很奇怪

普通导入没有问题,旁路导入就报Caused by: com.alipay.oceanbase.rpc.direct_load.exception.ObDirectLoadIllegalStateException: statement cannot write because is fail, state:7, expect:[2, 3]无法正常导入,导入命令如下:
/root/ob-loader-dumper-4.3.5-RELEASE/bin/obloader
-h 172.xxx.xxx.26 -P 2883 -uTEST_20260210 -t TEST -c ob435 -p ‘AAaa11__’ -D TEST_20260210
–table=ODS_NCBS_KDPA_KEHUZH --nls-timestamp-format=“YYYYMMDDHH24MISSFF3” --rpc-port 2885 --direct --parallel=8 --thread=8
–truncate-table --column-splitter ‘$$’ --ignore-escape
–cut -f /tmp/wave/loader_test/20260210/S_NCBS_KDPA_KEHUZH_test.dat
–ctl-path=/tmp/wave/loader_test/20260210/S_NCBS_KDPA_KEHUZH.ctl
–log-path=/tmp/wave/loader_test/20260210/logs