Execute a pair of billing program, the old execution to half of the time error, the author has not yet to print out Oracle error, just printed his own can understand the error hint, after the revision code, the Oracle error, put_line out, found to be ora-01562:failed To extend rollback segment number 12
Ora-01628:max # Extents (505) reached for rollback segment RBS12
It seems that the rollback segment of the maxtxtents is too small, the system has more than 20 rollback segments, in order to reduce the occurrence of similar errors, set up:
Add the data file to the rollback segment table space and set the maxextents value of the large rollback segment apprbs to infinity:
$ Sqlplus '/as sysdba '
Sql> alter tablespace RBS add datafile '/opt/oracle/db02/oradata/orcl/rbs02.dbf ' size 8192m autoextend on next 10m maxs Ize Unlimited;
sql> alter ROLLBACK segment APPRBS storage (Maxextents unlimited);
To set up a transaction to use this large rollback segment before executing the large SQL separately:
Sql> SET TRANSACTION use rollback segment Apprbs;
Set up a transaction to use this large rollback segment before executing large SQL in a stored procedure:
Begin
Dbms_transaction.use_rollback_segment (' Apprbs ');
<big sql;>
Commit
End
Then execute the reconciliation program, the success of the end, that is a little long time.