~ Rename database using DBNEWID Utility
~ Some times exiting database may kept with different name for testing purpose and with current name may be new database to be created.
~ Applies to Oracle version 10.1.x.x and above
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.
STARTUP MOUNT
ALTER SYSTEM SET DB_NAME=TSH2 SCOPE=SPFILE;
SHUTDOWN IMMEDIATE
·
Create a new password file:
orapwd file=c:\oracle\920\database\pwdTSH2.ora
password=password entries=10
·
Rename the SPFILE to match the new DBNAME.
·
If you are using Windows you must recreate the
service so the correct name and parameter file are used:
oradim -delete -sid TSH1
oradim -new -sid TSH2 -intpwd password -startmode a
-pfile c:\oracle\920\database\spfileTSH2.ora
If you are using UNIX/Linux simply reset the ORACLE_SID environment
variable:
ORACLE_SID=TSH2; export ORACLE_SID
·
Alter the listener.ora and tnsnames.ora setting
to match the new database name and restart the listener:
lsnrctl reload
·
Open the database with RESETLOGS:
STARTUP MOUNT
ALTER DATABASE OPEN RESETLOGS;
·
Backup the database.
DBNAME Only
Repeat the process as before except use the following command to start
the DBNEWID utility:
nid TARGET=sys/password@TSH2 DBNAME=TSH3 SETNAME=YES
The SETNAME parameter tells the DBNEWID utility to only alter the
database name.
When opening the database the RESETLOGS option is not needed so the database can be started using the STARTUP command.
When opening the database the RESETLOGS option is not needed so the database can be started using the STARTUP command.
DBID Only
·
Backup the database.
·
Mount the database after a clean shutdown:
SHUTDOWN IMMEDIATE
STARTUP MOUNT
·
Invoke the DBNEWID utility (nid) from the
command line using a user with SYSDBA privilege. Do not specify a new DBNAME:
nid TARGET=sys/password@TSH3
·
Shutdown and open the database with RESETLOGS:
SHUTDOWN IMMEDIATE
STARTUP MOUNT
ALTER DATABASE OPEN RESETLOGS;
·
Backup the database.
Note: Be sure you have full RMAN backup piece / full backup logical dump before starting the activity.
Very soon another approach (safe approach) will be published by me.
Hope this document definitely help you.
No comments:
Post a Comment