生产系统出现ORA1555错误,如何判断原因和在线解决?

[复制链接]
查看11 | 回复2 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
刚好昨天看到ITPUB出的书里面说有两种原因
1是一致性读
2是块清除(老实说我觉得书里面对于这个概念讲的还有点模糊,BITI大佬能否再解释一下?)
怎样判断是1/2哪种原因?
另外下面这段是否有道理?
”DB BLOCK BUFFER太小: 如果读一致性所请求的块的先前内容在缓冲区中, 那么就不用去访问回滚段. 而如果缓冲区太小, 使得先前版本的内容在CACHE中的可能性变小, 从而必须频繁的访问回滚段来获取先前的内容, 这将大大增大ORA-01555发生的可能“

还有最重要的就是怎样能在线增大回滚段大小,直接ALERT所有的rollback segment的init extends和opt size会不会有问题啊?这可是生产系统啊,我怕搞坏了


回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
各位大佬帮忙看看啦
我刚才
ALTER ROLLBACK SEGMENT RBS0 STORAGE (OPTIMAL 51200K );
然后又加入了新的回滚段,但是依然会报1555的错误啊
SEGMENT_NAME
TABLESPACE_NAME
SEGMENT_ID
------------------------------ ------------------------------ ----------
INITIAL_EXTENT MIN_EXTENTS MAX_EXTENTS STATUS
EXTENTS RSSIZE
-------------- ----------- ----------- ---------------- ---------- ----------
WAITSOPTSIZESHRINKSWRAPSEXTENDSAVESHRINK
---------- ---------- ---------- ---------- ---------- ----------
RBS9
RBS
10
524288 84096 ONLINE
84186112
0 52428800
0 14
0
0

我现在是一边一个程序在全表扫描(大概1000万数据),另外一个程序在UPDATE其中的一些数据,是每次UPDATE之后就马上COMMIT的,这样是否回滚段就会频繁的重用(体现在WARPS=14)导致出现1555错误?
回滚段根本就不EXTENDS,这样设置什么OPT SIZE都没有用了。
是否应该重建回滚段,然后设置比较大的MINEXTENDS还有让UPDATE程序不要频繁COMMIT?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
1.两个程序,两个事务,是哪一个报ORA-1555?
2.你有多少个回滚段?
3.先试着减小commit次数
...(待续)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行