ORA-01555: snapshot too old: rollback segment number %s with name \\"%s\\" too small
The process which generated this error was in need for rollback/undo records to generate its consistent view.At some point in time however, the data needed by your session (of which the undo records were written by another process) were marked as being free (a commit was done by that other session), and some other process already wrote other rollback/undo information to it.
If you're using manual UNDO Mode or use an Oracle version <9i, you can try to set a larger optimal size on the rollback segments.
You can issue following select to determine the current optimal size and the highwater mark size (maximum size ever reached since database startup).
:
select rb.segment_name, rs.optsize, rs.hwmsize
from v$rollstat rs, dba_rollback_segs rb
where rs.usn = rb.segment_id
To change the optimal size you can issue following select:
alter rollback segment rbs0 storage (optimal 100m);
Pay attention that the size you specify for optimal will be constantly allocated inside the tablepace.
If you are using automatic UNDO mode, you can try to increase the value of undo_retention.
alter system set undo_retention=10800;
The value of undo_retention is the time in seconds the database tries to keep the undo blocks (not mark as being free) inside the undo tablespace.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23033727/viewspace-629617/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/23033727/viewspace-629617/
1034

被折叠的 条评论
为什么被折叠?



