- 论坛徽章:
- 0
|
今天早上上班,发现一个数据处理没有完成。
onstat -d
onstat -p
onstat -
均正常。dbaccess 进去,不能选择数据库。
整个数据库大概有30G左右。
每天的处理过程是这样的:
每天晚上从另一台机上抽取900M左右的数据,以文本形式保存在本地,并打好一个tar包做备份。然后立即开始数据加工工作。一次加工要7个小时左右(要命啊)
查看生成的tar包的间为:02:26:05。对比online.log文件中的出错的时间查看后。发现数据加工作好像根本没有执行就发生了错误。
这个informix上还有好几个关键的应用在跑。所以只有先停了所有的应用,再重启informix,
然后再用备份的数据包加工却显示一切正常。
现在是正常的,就怕下次再出错就麻烦了。那位仁兄能帮忙分析一下出错原因么?
online.log 显示如下的错误:
02:25:25 Checkpoint Completed: duration was 0 seconds.
02:25:25 Checkpoint loguniq 2199, logpos 0x47b3018
02:26:27 Message 19368 not found.
02:26:27 Informix Dynamic Server Version 7.31.UD5
02:26:27 Message 19369 not found.
Session(33378, informix@, 0, 0)
Thread(11, soctcplst, 0, 1)
File: mtshpool.c Line: 2848
02:26:27 Message 19370 not found.
02:26:27 Message 19371 not found.
02:27:24 Message 19372 not found.
, shmem.3f3b1d1.0
02:30:30 Checkpoint Completed: duration was 0 seconds.
02:30:30 Checkpoint loguniq 2199, logpos 0x47b6018
02:35:30 Checkpoint Completed: duration was 0 seconds.
02:35:30 Checkpoint loguniq 2199, logpos 0x47b7018
02:39:02 listener-thread: err = -406: oserr = 0: errstr = : Memory allocation failed.
02:39:02 listener-thread: err = -406: oserr = 0: errstr = : Memory allocation failed.
02:39:03 listener-thread: err = -406: oserr = 0: errstr = : Memory allocation failed.
02:39:04 listener-thread: err = -406: oserr = 0: errstr = : Memory allocation failed.
$ finderr 406
-406 Memory allocation failed.
Something in the current statement required the allocation of memory
for data storage, but the memory was not available. Several things can
cause this error. For example, your application has a memory leak; you
are asking for more resources than the system is configured to allow;
or a problem with the UNIX system itself requires rebooting the
system.
Roll back the current transaction. Look for ways to make this statement
simpler or move less data. Also, confer with your UNIX system
administrator to solve memory problems or look for ways to make the
operating system give this program more virtual memory in which to run.
On DOS systems, exit to the operating-system command line, free some
disk space, and resubmit your program.
将shmadd 改为64M后,又出现了几次同样的问题。都是在一个数据加工的启动瞬间。
这个过程是这样的:
应用run.sh从另一个服务器每天取>900M的数据,然后tar包,compress并移到另一个目录。
然后调用一个加工程序:attemp。一执行这个attemp,informix就出上面的错。
如attemp 1:25:22秒开始
informix 1:25:23秒出错。
报错持续。
7,8点钟发现informix不能访问。
vmstat 2 5 看系统内存 cpu等都正常。
topas也一样。
onstat -g seg 看到只有两个段 V 类 shmseg 只有一个
onstat -p
onstat -d
onstat -g ioq
onstat -g glo
均正常。
[ 本帖最后由 Jens 于 2006-8-19 12:39 编辑 ] |
|