After switch from UNDO Tablespace UNDOTBS1 to UNDOTBS2, UNDOTBS2 Tablespace is still exists.
Need to drop it manually.
After dropping UNDOTBS2, database cannot be started
WTF...
Steps and how to fix
COL TABLESPACE_NAME FOR A30
COL STATUS FOR A20
SELECT tablespace_name, status, count(*)
FROM DBA_ROLLBACK_SEGS
GROUP BY tablespace_name, status;
TABLESPACE_NAME STATUS COUNT(*)
------------------------- -------------------- ----------
UNDOTBS1 ONLINE 41
SYSTEM ONLINE 1
UNDOTBS2 OFFLINE 0
In detail:
SET LINESIZE 160
SELECT owner, segment_name, tablespace_name, status
FROM DBA_ROLLBACK_SEGS ORDER BY 3;
SYS SYSTEM SYSTEM ONLINE
PUBLIC _SYSSMU42_3536664823$ UNDOTBS ONLINE
PUBLIC _SYSSMU43_1783674736$ UNDOTBS ONLINE
PUBLIC _SYSSMU44_629285899$ UNDOTBS ONLINE
PUBLIC _SYSSMU45_2404285950$ UNDOTBS ONLINE
PUBLIC _SYSSMU46_132405334$ UNDOTBS ONLINE
DROP TABLESPACE UNDOTBS2 INCLUDING CONTENTS AND DATAFILES;
At this point oracle crashed and could no be started.
Upon startup, this error is coming:
ORA-00603: ORACLE server session terminated by fatal error
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-30012: undo tablespace 'UNDOTBS2' does not exist or of wrong type
Incident details in: /software/oracle/diag/rdbms/igt/igt/incident/incdir_2131503
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-30012: undo tablespace 'UNDOTBS2' does not exist or of wrong type
Incident details in: /software/oracle/diag/rdbms/igt/igt/incident/incdir_2131503
How to fix
Option 1. The proper solution:
CREATE PFILE FROM SPFILE
Edit PFILE so that oracle is aware of the correct tablespace
Start oracle from PFILE
Option 2. The quick solution:
make a copy from spfile
edit the binary file spfile
Replace from
*.undo_tablespace='UNDOTBS2'
to
*.undo_tablespace='UNDOTBS1'
Start oracle
Now it starts without an error
No comments:
Post a Comment