star_yao 发表于 2008-04-13 14:21

informix load 大表的时候出错

出错提示:
458: Long transaction aborted. 12204: RSAM error: Long transaction detected.
847: Error in load file line 1934286.

网上查了下:大概就是日志空间不够,事务不能被滚回,自动结束。

解决:将数据库改为不带日志模式:
informix/etc/onconfig
1、TAPEDEV 由rmt0 改为 null

ontape -s -N dbname
2、dbimport

3、将数据库改为带日志模式:

ontape –s-U dbname

但是执行ontape -s -N dbname 就要求做0级备份...0级备份失败了,日志状态会改变吗?

请问有什么方法?能详细说下解决步骤吗?

谢谢了

wuicpp 发表于 2008-04-13 15:04

1、将onconfig文件中的TAPEDEV 和LTAPEDEV两个参数都设置为/dev/null
2、ontape -s -N <dbname>#无日志模式
3、load工作
4、ontape -s -U <dbname> #非缓冲日志,如果是缓冲日志则为-B
5、将onconfig文件中的TAPEDEV和LTAPEDEV两个参数设置为修改前状态。

star_yao 发表于 2008-04-13 15:13

回复 #2 wuicpp 的帖子

online 状态也可以修改吗?没有影响吗

wuicpp 发表于 2008-04-13 16:40

online下可以改,只要修改的数据库没有会话连接在上面就行。

ivhb 发表于 2008-04-13 22:48

原帖由 star_yao 于 2008-4-13 14:21 发表 http://bbs.chinaunix.net/images/common/back.gif
出错提示:
458: Long transaction aborted. 12204: RSAM error: Long transaction detected.
847: Error in load file line 1934286.

网上查了下:大概就是日志空间不够,事务不能被滚回,自动结束。
...


alter table tabname type (raw);
改成无日志模式,然后在
load
然后再
alter table tabname type (standard);

注意上面不能有主键,索引等。你也可以先drop了,然后重建


我想,这个会快很多
页: [1]
查看完整版本: informix load 大表的时候出错