undo_retention in 19c database

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

undo_retention in 19c database

raiq1
Dear Erman sir,

I have 19c (19.10.0.0) database with 12.1.3 ebs application, some long running concurrent request are failed with snapshot too old error.

Currently undo_retention is 2400 ,  I need to change it , what is the optimal value I have to assign here.

Make sure undo_retention size is cdb leval & pdb level are same , both in 2400.

Need your advice.

Regards,
Raiq
Reply | Threaded
Open this post in threaded view
|

Re: undo_retention in 19c database

ErmanArslansOracleBlog
Administrator
Those snapshot too old errors, which are undo tbs related can be solved most of the time by increasing the size and retention.. Size and retention should be aligned, and those types of actions depend on the environment's undo workload. If we have enough space, we can increase it aggressively.

Also, let's take a look at the list below.
Ref:
http://ermanarslan.blogspot.com/2014/05/rdbms-unusual-ora-01555.html

Possible fixes;

1. Increase size of rollback segment which will reduce the likelihood of overwriting rollback information that is needed.
2. Reduce the number of commits.
3. Run the processing against a range of data rather than the whole table.
4. Add additional rollback segments. This will allow the updates etc. to be spread across more rollback segments thereby reducing the chances of overwriting required rollback information.
5. If fetching across commits, the code can be changed so that this is not done.
6. Ensure that the outer select does not revisit the same block at different times during the processing. This can be achieved by : - Using a full table scan rather than an index lookup - Introducing a dummy sort so that we retrieve all the data, sort it and then sequentially visit these data blocks. Note that: This is only applicable if the reason is the rollback information