I have recently encountered an issue while trying to export the Oracle DB using the expdp command and my database size was huge, therefore I got an error stating that Snapshot is too old
When I researched further I noticed that my UNDO_RETENTION was too less and set to 900 seconds.
This is how I have managed to get or set the value to this parameter in Oracle
How to know the current value of UNDO_RETENTION in Oracle
to know the current or configured value of UNDO_RETENTION parameter in Oracle you can use the following SQL query
In order to be able to execute this SQL command, you must have SQL dba privileges or some specific grants to make you an elevated user
SQL> show parameters undo_retention;
NAME TYPE VALUE
---------------------------------- – – ------- – – ----------------------------
undo_retention integer 10600
How to modify/set this UNDO_RETENTION value in Oracle
to modify or to set this UNDO_RETENTION value in oracle. you can use the following sql query.
Remember that the value of this parameter is mentioned in seconds.
SQL> ALTER SYSTEM SET UNDO_RETENTION = 10600;
System altered.
You can use the previous SQL statement to make sure that the value is changed or not.
Now you can go ahead and re-run the expdp and hopefully it should be fine.
Good luck
https://success.blueyonder.com/s/article/How-to-change-Undo-Retention?language=en_US
https://www.middlewareinventory.com/blog/how-to-get-or-set-undo_retention-parameter-oracle/