Friday, August 06, 2010

How to change Database name

DBNEWID Utility

Prior to the introduction of the DBNEWID utility alteration of the internal DBID of an instance was impossible and alteration of the DBNAME required the creation of a new controlfile. The DBNEWID utility allows the DBID to be altered for the first time and makes changing the DBNAME simpler. Changing the DBID is necessary when you want to use an RMAN catalog to backup a cloned instance. RMAN identifies instances using the DBID, preventing the original and cloned instance being managed by the same catalog. Alteration of the BID in the cloned instance removes this restriction.

DBID And DBNAME

Backup the database.

Mount the database after a clean shutdown:

·SHUTDOWN IMMEDIATE

STARTUP MOUNT

Invoke the DBNEWID utility (nid) specifying the new DBNAME from the command line using a user with SYSDBA privilege:

nid TARGET=sys/password@TSH1 DBNAME=TSH2

Assuming the validation is successful the utility prompts for confirmation before performing the actions. Typical output may look something like:

C:\oracle\920\bin>nid TARGET=sys/password@TSH1 DBNAME=TSH2

DBNEWID: Release 9.2.0.3.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

Connected to database TSH1 (DBID=1024166118)

Control Files in database:

C:\ORACLE\ORADATA\TSH1\CONTROL01.CTL

C:\ORACLE\ORADATA\TSH1\CONTROL02.CTL

C:\ORACLE\ORADATA\TSH1\CONTROL03.CTL

Change database ID and database name TSH1 to TSH2? (Y/[N]) => Y

Proceeding with operation

Changing database ID from 1024166118 to 1317278975

Changing database name from TSH1 to TSH2

Control File C:\ORACLE\ORADATA\TSH1\CONTROL01.CTL - modified

Control File C:\ORACLE\ORADATA\TSH1\CONTROL02.CTL - modified

Control File C:\ORACLE\ORADATA\TSH1\CONTROL03.CTL - modified

Datafile C:\ORACLE\ORADATA\TSH1\SYSTEM01.DBF - dbid changed, wrote new name

Datafile C:\ORACLE\ORADATA\TSH1\UNDOTBS01.DBF - dbid changed, wrote new name

Datafile C:\ORACLE\ORADATA\TSH1\CWMLITE01.DBF - dbid changed, wrote new name

Datafile C:\ORACLE\ORADATA\TSH1\DRSYS01.DBF - dbid changed, wrote new name

Datafile C:\ORACLE\ORADATA\TSH1\EXAMPLE01.DBF - dbid changed, wrote new name

Datafile C:\ORACLE\ORADATA\TSH1\INDX01.DBF - dbid changed, wrote new name

Datafile C:\ORACLE\ORADATA\TSH1\ODM01.DBF - dbid changed, wrote new name

Datafile C:\ORACLE\ORADATA\TSH1\TOOLS01.DBF - dbid changed, wrote new name

Datafile C:\ORACLE\ORADATA\TSH1\USERS01.DBF - dbid changed, wrote new name

Datafile C:\ORACLE\ORADATA\TSH1\XDB01.DBF - dbid changed, wrote new name

Datafile C:\ORACLE\ORADATA\TSH1\TEMP01.DBF - dbid changed, wrote new name

Control File C:\ORACLE\ORADATA\TSH1\CONTROL01.CTL - dbid changed, wrote new name

Control File C:\ORACLE\ORADATA\TSH1\CONTROL02.CTL - dbid changed, wrote new name

Control File C:\ORACLE\ORADATA\TSH1\CONTROL03.CTL - dbid changed, wrote new name

Database name changed to TSH2.

Modify parameter file and generate a new password file before restarting.

Database ID for database TSH2 changed to 1317278975.

All previous backups and archived redo logs for this database are unusable.

Shut down database and open with RESETLOGS option.

Succesfully changed database name and ID.

DBNEWID - Completed succesfully.

Shutdown the database:

SHUTDOWN IMMEDIATE

Modify the DB_NAME parameter in the initialization parameter file. The startup will result in an error but proceed anyway.