How to change Oracle database name
Many times when you are doing DBA work you need to change Oracle database name. So in this tutorial we will see how can we change our database name using Oracle NID tool.
The steps to change the database name are as follows:
Make sure you shutdown and start up in mount mode your database before.
SQL shutdown immediate
Database closed .
Database dismounted .
ORACLE instance shut down .
SQL startup mount
ORACLE instance started .
Total System Global Area 1610612736 bytes
Fixed Size 2077904 bytes
Variable Size 385878832 bytes
Database Buffers 1207959552 bytes
Redo Buffers 14696448 bytes
Database mounted .
SQL exit
######################### HOST #########################################
[ oracle @ mysql db1 ] $ nid TARGET = SYS / secret_password DBNAME = DB SETNAME = YES
DBNEWID : Release 11 . 2 . 0 . 1 . 0 - Production on Fri Oct 25 19 : 24 : 43 2013
Copyright ( c ) 1982 , 2009 , Oracle and / or its affiliates . All rights reserved .
Connected to database TEST ( DBID = 2127904120 )
Connected to server version 11 . 2 . 0
Control Files in database :
/ opt / oracle / oradata / db1 / control01 . ctl
/ opt / oracle / flash_recovery_area / db1 / control02 . ctl
Change database name of database TEST to DB ? ( Y / [ N ]) = Y
Proceeding with operation
Changing database name from TEST to DB
Control File / opt / oracle / oradata / db1 / control01 . ctl - modified
Control File / opt / oracle / flash_recovery_area / db1 / control02 . ctl - modified
Datafile / opt / oracle / oradata / db1 / system01 . db - wrote new name
Datafile / opt / oracle / oradata / db1 / sysaux01 . db - wrote new name
Datafile / opt / oracle / oradata / db1 / undotbs01 . db - wrote new name
Datafile / opt / oracle / oradata / db1 / users01 . db - wrote new name
Datafile / opt / oracle / oradata / db1 / temp01 . db - wrote new name
Control File / opt / oracle / oradata / db1 / control01 . ctl - wrote new name
Control File / opt / oracle / flash_recovery_area / db1 / control02 . ctl - wrote new name
Instance shut down
Database name changed to DB .
Modify parameter file and generate a new password file before restarting .
Succesfully changed database name .
DBNEWID - Completed succesfully .
Recreate the new password file.
orapwd file =/ opt / oracle / product / 11 . 2 . 0 / dbhome_1 / dbs / passwd . ora password = sys_secret_password entries = 5
Make sure that you drop any password files before or you will get some errors.
Rename the init.ora file.
[ oracle @ mysql dbs ] $ rename init . ora initDB . ora
Edit the initDB.ora parameters file.
[ oracle @ mysql dbs ] $ vim initDB . ora
-- alter the db_name parameter to match the new database name.
# Change '' to point to the oracle base ( the one you specify at
# install time )
db_name = 'DB'
Now start the database in nomount mode and alter the db_name parameter in the control file.
[ oracle @ mysql dbs ] $ sqlplus / as sysdba
SQL * Plus : Release 11 . 2 . 0 . 1 . 0 Production on Fri Oct 25 18 : 50 : 22 2013
Copyright ( c ) 1982 , 2009 , Oracle . All rights reserved .
Connected to an idle instance .
SQL startup nomount
ORACLE instance started .
Total System Global Area 417546240 bytes
Fixed Size 2213936 bytes
Variable Size 289408976 bytes
Database Buffers 121634816 bytes
Redo Buffers 4288512 bytes
SQL alter system set db_name = DB scope = spfile ;
System altered .
Shutdown the database and start it backup.
SQL shutdown immediate ;
ORA - 01507 : database not mounted
ORACLE instance shut down .
SQL startup ;
ORACLE instance started .
Total System Global Area 417546240 bytes
Fixed Size 2213936 bytes
Variable Size 268437456 bytes
Database Buffers 142606336 bytes
Redo Buffers 4288512 bytes
Database mounted .
Database opened .
Check the status and name of you database.
SQL select status from v $ instance ;
STATUS
------------
OPEN
SQL select * from global_name ;
GLOBAL_NAME
--------------------------------------------------------------------------------
DB
At last step alter the oratab file and change the DB name.
[ oracle @ mysql dbs ] $ cat / etc / oratab
#
# This file is used by ORACLE utilities . It is created by root . sh
# and updated by the Database Configuration Assistant when creating
# a database .
# A colon , ':' , is used as the field terminator . A new line terminates
# the entry . Lines beginning with a pound sign , '#' , are comments .
#
# Entries are of the form :
# $ ORACLE_SID : $ ORACLE_HOME : < n | Y :
#
# The first and second fields are the system identifier and home
# directory of the database respectively . The third filed indicates
# to the dbstart utility that the database should , "Y" , or should not ,
# "N" , be brought up at system boot time .
#
# Multiple entries with the same $ ORACLE_SID are not allowed .
#
#
db1 : / opt / oracle / product / 11 . 2 . 0 / dbhome_1 : N
[ oracle @ mysql dbs ] $ vim / etc / oratab
[ oracle @ mysql dbs ] $ . oraenv
ORACLE_SID = [ db ] ? db1
The Oracle base for ORACLE_HOME =/ opt / oracle / product / 11 . 2 . 0 / dbhome_1 is / opt / oracle