ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORA-01562 和 ORA-01628 问题解决

ORA-01562 和 ORA-01628 问题解决

原创 Linux操作系统 作者:edeed 时间:2019-06-11 19:51:06 0 删除 编辑

今天熬夜修理某一小应用,遇到一点ora错误,笔记一下:

执行一对帐程序,老执行到一半的时候就出错,作者还没有把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值为无限大:
$ 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');

commit;
end;

再执行对帐程序,成功结束,就是时间有点长。。。。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10881/viewspace-178069/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2002-04-30

  • 博文量
    59
  • 访问量
    52180