• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer navigation

The Geek Diary

  • OS
    • Linux
    • CentOS/RHEL
    • Solaris
    • Oracle Linux
    • VCS
  • Interview Questions
  • Database
    • oracle
    • oracle 12c
    • ASM
    • mysql
    • MariaDB
  • DevOps
    • Docker
    • Shell Scripting
  • Big Data
    • Hadoop
    • Cloudera
    • Hortonworks HDP

How to Create Undo Tablespace for a Newly Added RAC Instance (ORA-30012)

by admin

The Problem

A new instance of an existing RAC database was created – not using DBCA. The new database instance will not start. Attempting to start the new instance throws ORA-30012 on startup.

ORA-30012: undo tablespace 'UNDOTBS_02' does not exist or of wrong type

The Solution

The new database instance will not start because a new UNDO tablespace was not created and assigned to it. Each instance in a RAC database must have its own UNDO tablespace, specified in the pfile/spfile.

When a new instance is added using DBCA, DBCA should automatically create an UNDO tablespace for the new instance. If a new instance is added manually (not recommended), then the new UNDO tablespace must also be manually created and manually assigned to the new instance. The recommended way to add a new RAC instance is to use DBCA.

Undo tablespaces in the Oracle RAC database are assigned by specifying a different value for the UNDO_TABLESPACE parameter for each instance in the SPFILE or in individual PFILEs. It is not necessary to shut down the other instances in order to fix this problem. Each instance has a different undo tablespace, so a new one can be created and assigned to the new instance without affecting the running instances.

1.Use CREATE UNDO TABLESPACE statement to create a new undo tablespace for the new instance. For example:

SQL> CREATE UNDO TABLESPACE undotbs_02 DATAFILE '+DATADG1' size 1000M autoextend on;

2. Use ALTER SYSTEM to set UNDO_TABLESPACE to the new tablespace for the new SID. For example:

SQL> ALTER SYSTEM SET UNDO_TABLESPACE = undotbs_02 SCOPE=BOTH SID='PROD2';

The new instance should have SID.UNDO_TABLESPACE set to the name of the new undo tablespace just created. Each of the other instances of the database should keep its undo tablespace as the same as what it was before.

3. The new instance should now start without throwing ORA-30012.

: For RAC, it is NOT necessary to set undo management to Manual, as long as at least one other instance is up. This is not the best procedure for RAC, because the undo management has to be the same for all the instances. To use manual undo management, one would have to shut down all the instances of the database and reopen with manual undo mgmt. This is not necessary for RAC because in RAC the new undo tablespace can simply be created and assigned from another, already running instance.

Filed Under: oracle

Some more articles you might also be interested in …

  1. How to check which options or features are used in the Oracle database
  2. Understanding Oracle Database Automatic SGA Memory Tuning
  3. How to Use real-time query to access data on a physical standby database
  4. Using PL/SQL to Manipulate Data using DML Commands
  5. ORA-00214: control file inconsistent with file
  6. How to Start and Stop OSWatcher
  7. How To Create Device Alias For ASM Disks Using mknod On Linux/Unix
  8. How to Delete ASM Disk on Multipath Device in CentOS/RHEL
  9. How to Move User datafiles between ASM Diskgroups using Incrementally Updated Backups
  10. Create an output file from GGSCI commands

You May Also Like

Primary Sidebar

Recent Posts

  • qm Command Examples in Linux
  • qm wait Command Examples in Linux
  • qm start Command Examples in Linux
  • qm snapshot Command Examples in Linux

© 2023 · The Geek Diary

  • Archives
  • Contact Us
  • Copyright