DBNEWID Utility
DBNEWID is a database utility that can change the internal database identifier (DBID) and the database name (DBNAME) for an operational database.
This chapter contains the following sections:
What Is the DBNEWID Utility?
Prior to the introduction of the DBNEWID utility, you could manually create a copy of a database and give it a new database name (DBNAME) by re-creating the control file. However, you could not give the database a new identifier (DBID). The DBID is an internal, unique identifier for a database. Because Recovery Manager (RMAN) distinguishes databases by DBID, you could not register a seed database and a manually copied database together in the same RMAN repository. The DBNEWID utility solves this problem by allowing you to change any of the following:
Changing the DBID and DBNAME of a Database
This section contains these topics:
- Changing the DBID and Database Name
- Changing Only the Database Name
- Troubleshooting a DBID Change Operation
- Troubleshooting a Database Name Change Operation
Changing the DBID and Database Name
The following steps describe how to change the DBID of a database. Optionally, you can change the database name as well.
- Ensure that you have a recoverable whole database backup.
- Ensure that the target database is mounted but not open, and that it was shut down consistently prior to mounting. For example:
SHUTDOWN IMMEDIATE STARTUP MOUNT
- Invoke the DBNEWID utility on the command line, specifying a valid user with the
SYSDBA
privilege. For example:% nid TARGET=SYS/oracle@test_db
To change the database name in addition to the DBID, specify theDBNAME
parameter. This example changes the name totest_db2
:% nid TARGET=SYS/oracle@test DBNAME=test_db2
The DBNEWID utility performs validations in the headers of the datafiles and control files before attempting I/O to the files. If validation is successful, then DBNEWID prompts you to confirm the operation (unless you specify a log file, in which case it does not prompt), changes the DBID for each datafile (including offline normal and read-only datafiles), and then exits. The database is left mounted but is not yet usable. For example:DBNEWID: Release 9.2.0.1.0 (c) Copyright 2002 Oracle Corporation. All rights reserved. Connected to database TEST_DB (DBID=3942195360) Control Files in database: /oracle/dbs/cf1.f /oracle/dbs/cf2.f Change database id of database SOLARIS? (Y/[N]) => y Proceeding with operation Datafile /oracle/dbs/tbs_01.f - changed Datafile /oracle/dbs/tbs_02.f - changed Datafile /oracle/dbs/tbs_11.f - changed Datafile /oracle/dbs/tbs_12.f - changed Datafile /oracle/dbs/tbs_21.f - changed New DBID for database TEST_DB is 3942196782. All previous backups and archived redo logs for this database are unusable Proceed to shutdown database and open with RESETLOGS option. DBNEWID - Database changed.
If validation is not successful, then DBNEWID terminates and leaves the target database intact. You can open the database, fix the error, and then either resume the DBNEWID operation or continue using the database without changing its DBID. - After DBNEWID successfully changes the DBID, shut down the database:
SHUTDOWN IMMEDIATE
- Mount the database. For example:
STARTUP MOUNT
- Open the database in
RESETLOGS
mode and resume normal use. For example:ALTER DATABASE OPEN RESETLOGS;
Make a new database backup. Because you reset the online redo logs, the old backups and archived logs are no longer usable in the current incarnation of the database.
Changing Only the Database Name
The following steps describe how to change the database name without changing the DBID.
- Ensure that you have a recoverable whole database backup.
- Ensure that the target database is mounted but not open, and that it was shut down consistently prior to mounting. For example:
SHUTDOWN IMMEDIATE STARTUP MOUNT
- Invoke the utility on the command line, specifying a valid user with the
SYSDBA
privilege. You must specify both theDBNAME
andSETNAME
parameters. This example changes the name totest_db2
:% nid TARGET=SYS/oracle@test_db DBNAME=test_db2 SETNAME=YES
DBNEWID performs validations in the headers of the control files (not the datafiles) before attempting I/O to the files. If validation is successful, then DBNEWID prompts for confirmation, changes the database name in the control files, and exits. After DBNEWID completes successfully, the database is left mounted but is not yet usable.DBNEWID: Release 9.2.0.1.0 (c) Copyright 2002 Oracle Corporation. All rights reserved. Connected to database TEST_DB (DBID=3942196782) Control Files in database: /oracle/dbs/cf1.f /oracle/dbs/cf2.f Change database name of database TEST_DB to TEST_DB2? (Y/[N]) => Y Proceeding with operation Database name changed from TEST_DB to TEST_DB2 - database needs to be shutdown. Modify parameter file and generate a new password file before restarting. DBNEWID - Successfully changed database name
If validation is not successful, then DBNEWID terminates and leaves the target database intact. You can open the database, fix the error, and then either resume the DBNEWID operation or continue using the database without changing the database name. - Shut down the database. For example:
SHUTDOWN IMMEDIATE
- Set the
DB_NAME
initialization parameter in the initialization parameter file to the new database name. - Create a new password file.
- Start up the database and resume normal use. For example:
STARTUP
No comments:
Post a Comment