ORA-01562和ORA-01628问题解决

文章作者 100test 发表时间 2007:05:24 12:09:58
来源 100Test.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值为无限大:
  $ 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.
  再执行对帐程序,成功结束,就是时间有点长。

相关文章


oracle的netconfigureassistant使用过程
ORA-01562和ORA-01628问题解决
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛