ORA-01562 和 ORA-01628 问题解决

在执行一对帐程序时遇到ORA-01562和ORA-01628错误,原因是回滚段的最大扩展数达到上限。通过修改表空间增加数据文件并设置回滚段的最大扩展数为无限,以及在执行大SQL前设置使用特定的大回滚段,成功解决问题。确保在存储过程中同样设置交易使用该回滚段。
摘要由CSDN通过智能技术生成

今天熬夜修理某一小应用,遇到一点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('

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值