 |
|
ORA-30036: unable to extend segment by string in undo
tablespace "string" tips
Oracle Error Tips by Burleson Consulting
|
Oracle docs note this about ORA-30036:
ORA-30036: unable to extend segment by
string in undo tablespace "string"
Cause: the
specified undo tablespace has no more space available.
Action:
Add more space to the undo tablespace before retrying the operation. An
alternative is to wait until active transactions to commit.
It is important to note that ORA-30036 is
associated with UNDO tablespaces. If you use autoextend on an UNDO
tablespace because you can easily run out of UNDO and receive ORA-30036
along with an aborted update. For a full note on UNDO sizing, check my notes on
Oracle UNDO
sizing.
Question:
I received ORA-30036 after a shutdown. A
job was killed so that we could reboot after it had been running.
We issued the shutdown command but the database didn't stop and then had
shutdown abort. Now, trying to restart we get this:
Errors in file /u0704/oracle/proddb/9.2.0/admin/PROD/udump/prod_ora_16213.trc:
ORA-30036: unable to extend segment by 8 in undo tablespace 'APPS_UNDOTS1'
Error 30036 happened during db open, shutting down database
USER: terminating instance due to error 30036
Instance terminated by USER, pid = 16213
ORA-1092 signalled during: ALTER DATABASE OPEN...
Answer:
The workload had been running for 12 hours
and caused a workload spike. You received ORA-30036 as the transaction
attempted to recover in startup, which caused you to met the UNDO limit.
The ORA-30036 error is thrown as the database refuses to open.
You can resolve ORA-30036 by first mounting the database and disabling UNDO:
alter system set undo_management =
manual scope=spfile;
Next, you must shutdown to resolve ORA-30036
and then startup again using rollback mode and a system rollback segment.
Use UNDO tablespace to add files and then use alter system set
undo_management=auto scope=spfile; to activate the UNDO once again. To
fully resolve ORA-30036, shutdown and restart again.
|