求助,奇怪的ORA-1555错误:
duk 2010-03-28 12:55:58
有谁解决过ora-1555:snapshot too old 错误么?我这里出现的问题跟通常的1555错误有点不太一样,我弄了两天,怎么样都搞不定,非常着急,请帮忙分析下?
数据库版本是oracle 10g ,采用AUTO方式自动管理undo表空间,最近爆ora-1555错。后来发现是当做
insert into table1(select * from table2 where data<YYMMDD)的时候出错。
其中table2记录条数几万多,table1记录几十万条。表中有lob字段。表空间大小为几十G。
一般的方法是增加undo tablespace和undo_retention。我将undo tablespace增加到20G,undo_retention设置到10800.可是问题依然存在。
在sqlplus中单独执行该语句,并把数据库的其他操作都停掉,单做这一句话,并把YYMMDD的时间缩小,使得(select * from table2 where data<YYMMDD)的记录数在几十条左右。但是大概1分钟左右就爆同样的错误。
需要说明的是,表中有lob字段啊,Blog类型,lob字段中存的数据大概是几百k。
数据库中一共有4个表做这样的操作时出问题,全部都是有lob字段的,但是其他有lob字段的表没有这个问题。不含lob类型的表全部都没有问题。
请帮忙分析下是什么问题?