正在做一个数据备份,查询的程序。
具体是这样的:
1.到另一个服务器的ftp上,把压缩文件下载下来,并解压缩。
2.一条一条读取数据文件里的数据,并组织SQL语句,然后调用oracle的OCIStmtExecute ()执行。
3.最后commit。程序做完了,测试的时候也没问题。
目前的情况是一天一个数据文件,里面大概有10万条数据。至今为止数据库里大概有1820万条数据。占据了大约70%的表空间。
但是最近却开始频繁出错。报core dump的错误。我用GDB打开CORE看了一下,有以下的错误。
#1  0xc0217b84 in read () from /usr/lib/libc.2
#2  0xc3da1eb8 in snttread () from /oracle/product/9.0.1/lib32/libclntsh.sl.9.0
#3  0xc3d9e034 in nttrd () from /oracle/product/9.0.1/lib32/libclntsh.sl.9.0
#4  0xc3c824e4 in nsprecv () from /oracle/product/9.0.1/lib32/libclntsh.sl.9.0
#5  0xc3ce891c in nsrdr () from /oracle/product/9.0.1/lib32/libclntsh.sl.9.0
#6  0xc3c78f80 in $00000036 () from /oracle/product/9.0.1/lib32/libclntsh.sl.9.0
#7  0xc3ced128 in nioqrc () from /oracle/product/9.0.1/lib32/libclntsh.sl.9.0
#8  0xc3e95778 in $00000013 () from /oracle/product/9.0.1/lib32/libclntsh.sl.9.0
#9  0xc3d2ab3c in nioqwa () from /oracle/product/9.0.1/lib32/libclntsh.sl.9.0
#10 0xc3aa8970 in upirtrc () from /oracle/product/9.0.1/lib32/libclntsh.sl.9.0
#11 0xc3b23ff4 in kpurcsc () from /oracle/product/9.0.1/lib32/libclntsh.sl.9.0
#12 0xc3ad33ec in kpuexecv8 () from /oracle/product/9.0.1/lib32/libclntsh.sl.9.0
#13 0xc3ad6000 in kpuexec () from /oracle/product/9.0.1/lib32/libclntsh.sl.9.0
#14 0xc3a89824 in OCIStmtExecute () from /oracle/product/9.0.1/lib32/libclntsh.sl.9.0
#15 0x000130f4 in ufc::CDatabase::Execute (this=0x77ff07f4, 
    sql=0x400a6484 "insert into ffp_check_data(data_seq_no,file_seq_no,ffp_flag,ffp_carrier,ffp_no,psg_name,carrier,flight_no,dept_date,dept_time,same_day_flag,arr_time,dept_port,arr_port,origin_class,ticket_no,source,fl"..., SameAsPrevious=false)
    at ./UfcDatabase.cpp:277
#16 0x0000d384 in InsertData (db=@0x77ff07f4, strSeq=@0x77ff1020, bCorrect=@0x77ff1126, line=@0x77ff1044, strError=@0x77ff1024)
    at mucheck.cpp:325
#17 0x0000fac8 in main (argc=2, argv=0x77ff0654) at mucheck.cpp:707
#18 0xc0143460 in _start () from /usr/lib/libc.2谁能告诉我这到底是为什么啊?