今天图老师小编要向大家分享个ORA-01562 和 ORA-01628 问题解决教程,过程简单易学,相信聪明的你一定能轻松get!
【 tulaoshi.com - 编程语言 】
执行一对帐程序,老执行到一半的时候就出错,作者还没有把Oracle的error打印出来,只是打印了他自己能看得懂的错误提示,经过修改代码,把oracle错误,put_line出来后,发现是 ORA-01562: failed to extend rollback segment number 12
ORA-01628: max # extents (505) reached for rollback segment RBS12
看来是回滚段的maxtxtents太小了,系统有20多个回滚段,为了减少类似错误的发生,设置一下:
给回滚段表空间增加数据文件,并设置大回滚段apprbs的maxextents值为无限大:
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)$ sqlplus '/as sysdba'
SQL alter tablespace rbs add datafile '/opt/oracle/db02/oradata/ORCL/rbs02.dbf' size 8192m autoextend on next 10m maxsize unlimited;
SQL alter rollback segment apprbs storage (maxextents unlimited);
单独执行大sql前,先设置交易使用此大回滚段:
SQL set transaction use rollback segment apprbs;
在存储过程中执行大sql前,设置交易使用此大回滚段:
begin
dbms_transaction.use_rollback_segment('apprbs');
big sql;
commit;
end;
再执行对帐程序,成功结束,就是时间有点长。
来源:http://www.tulaoshi.com/n/20160219/1607462.html
看过《ORA-01562 和 ORA-01628 问题解决》的人还看了以下文章 更多>>