In some systems, the Oracle database name is not very standard. If you do not want to recreate the Oracle database, you can use the nid tool that comes with Oracle to modify the name of the Oracle database. During the entire modification process, the control file and data file are modified and the dbid is reset. We recommend that you back up the data before the modification.
In this example, the instance_name and db_name in the Oracle database are changed from "oratest" to "test", and the database version is 10.2.0.3.
View the database information.
- SQL> show parameter instance_name
- NAME TYPE VALUE
- stance_name string ORATEST
- SQL> show parameter db_name
- NAME TYPE VALUE
- db_name string ORATEST
- SQL>show parameter service_name
- NAME TYPE VALUE
- db_name string ORATEST
- SQL>select dbid from v$database;
- DBID
- 3213300265
Before modification, the Oracle database name is "oratest" and dbid = "3213300265 ". Next, modify the database name, stop the database, start it to the mount state, and use the nid tool to modify dbname.
- SQL> shutdown immediate
- Database closed.
- Database dismounted.
- ORACLE instance shut down.
- SQL> startup mount
- Total System Global Area 268435456 bytes
- Fixed Size 1261272 bytes
- Variable Size 117440808 bytes
- Database Buffers 146800640 bytes
- Redo Buffers 2932736 bytes
- Database mounted.
- SQL> host;
- $ nid target="sys/password" dbname=test
- DBNEWID: Release 10.2.0.3.0 - Production on Wed Feb 4 11:12:36 2009
- Copyright (c) 1982, 2005, Oracle. All rights reserved.
- Connected to database ORATEST (DBID=3213300265)
- Connected to server version 10.2.0
- Control Files in database:
- /u02/oradata/test/control01.ctl
- /u02/oradata/test/control02.ctl
- /u02/oradata/test/control03.ctl
- Change database ID and database name ORATEST to TEST? (Y/[N]) => y
- Proceeding with operation
- Changing database ID from 3213300265 to 1976074532
- Changing database name from ORATEST to TEST
- Control File /u02/oradata/test/control01.ctl - modified
- Control File /u02/oradata/test/control02.ctl - modified
- Control File /u02/oradata/test/control03.ctl - modified
- Datafile /u02/oradata/test/system01.dbf - dbid changed, wrote new name
- Datafile /u02/oradata/test/undotbs01.dbf - dbid changed, wrote new name
- Datafile /u02/oradata/test/sysaux01.dbf - dbid changed, wrote new name
- Datafile /u02/oradata/test/users01.dbf - dbid changed, wrote new name
- Datafile /u02/oradata/test/example01.dbf - dbid changed, wrote new name
- Datafile /u02/oradata/test/temp01.dbf - dbid changed, wrote new name
- Control File /u02/oradata/test/control01.ctl - dbid changed, wrote new name
- Control File /u02/oradata/test/control02.ctl - dbid changed, wrote new name
- Control File /u02/oradata/test/control03.ctl - dbid changed, wrote new name
- NID-00600: Internal Error - [28] [12152] [0] [0]
- Change of database name and ID failed during validation -database is intact.
- DBNEWID - Completed with validation errors.
The above content is an introduction to how to use nid to modify the database name in the Oracle database.