The Problem
You have set undo_management=AUTO. You have set undo_tablespace = and either this tablespace does not exist or it is not created with ‘undo’ keyword. This may be because you either dropped and did not recreate the undo tablespace or recreated it without specifying ‘undo’ keyword. With this configuration the database will not start and throws an error:
ORA-30012: undo tablespace 'UNDOTBS' does not exist or of wrong type
The Solution
The parameter UNDO_MANAGEMENT is set to AUTO but the undo_tablespace does not exist or is not of type undo (i.e. the contents column of dba_tablespaces does not show ‘undo’ for this tablespace). Do the following steps to open the database:
1. set undo_management=MANUAL in your init file.
2. connect “/ as sysdba” and startup the database using this init file (if not it will use the SPFILE by default), e.g.:
SQL> startup pfile=[specify]
3. drop the (‘undo’) tablespace if you wrongly created one without actually specifying “undo”.
4. create a new undo tablespace, e.g.:
SQL> create UNDO tablespace undotbs datafile '/DB1/undotbs01.dbf' size 1M reuse;
5. shutdown the database
6. change UNDO_MANAGEMENT=AUTO in your init file and set UNDO_TABLESPACE=UNDOTBS (or whatever name you specified during the undo tablespace creation).
7. connect “/ as sysdba” and startup the database using this init file (as in step 2).
Now the database will open using the new undo tablespace and it would have created new undo segments in this tablespace.