How to Rename Oracle Database using NID

Hello friends, in this article we are going to learn how to rename a database using the NID utility step by step. So in this demo, we are going to rename the db11g database name to ocptech.

Before the NID utility, we can rename the database using creating a new control-file that was the manual method, but after the NID utility, our task is now easy to change the database name.

Rename Database using NID utility

Follow the below steps carefully to rename the oracle database.

STEP 1. Create a pfile from spfile.

SQL> create pfile from spfile;

STEP 2. Shutdown the database if already running.

SQL> shu immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

STEP 3. Startup mount the database.

SQL> startup mount

ORACLE instance started.

Total System Global Area  839282688 bytes
Fixed Size		    2233000 bytes
Variable Size		  507514200 bytes
Database Buffers	  322961408 bytes
Redo Buffers		    6574080 bytes
Database mounted.

STEP 4. Check Database status.

SQL> select instance_name,status from v$instance;

INSTANCE_NAME	 STATUS
---------------- ------------
db11g		 MOUNTED

STEP 5. Start NID utility using below syntax.

syntax:

nid target=sys/password@your_current_db_name dbname=new_db_name

In My case my Database name is db11g and going to rename it as ocptech.

$nid target=sys/oracle@db11g dbname=ocptech

DBNEWID: Release 11.2.0.3.0 - Production on Thu Mar 4 23:53:50 2021

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.


NID-00002: Parse error: LRM-00108: invalid positional parameter value 'sys/oracle@db11g'


Change of database ID failed during validation - database is intact.
DBNEWID - Completed with validation errors.

[oracle@rhel6 ~]$ nid target=sys/oracle@db11g dbname=ocptech

DBNEWID: Release 11.2.0.3.0 - Production on Thu Mar 4 23:54:16 2021

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Connected to database DB11G (DBID=536055463)

Connected to server version 11.2.0

Control Files in database:
    /u01/app/oracle/oradata/db11g/control01.ctl
    /u01/app/oracle/fast_recovery_area/db11g/control02.ctl

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

Proceeding with operation
Changing database ID from 536055463 to 3015766568
Changing database name from DB11G to OCPTECH
    Control File /u01/app/oracle/oradata/db11g/control01.ctl - modified
    Control File /u01/app/oracle/fast_recovery_area/db11g/control02.ctl - modified
    Datafile /u01/app/oracle/oradata/db11g/system01.db - dbid changed, wrote new name
    Datafile /u01/app/oracle/oradata/db11g/sysaux01.db - dbid changed, wrote new name
    Datafile /u01/app/oracle/oradata/db11g/undotbs01.db - dbid changed, wrote new name
    Datafile /u01/app/oracle/oradata/db11g/users01.db - dbid changed, wrote new name
    Datafile /u01/app/oracle/oradata/db11g/example01.db - dbid changed, wrote new name
    Datafile /u01/app/oracle/oradata/db11g/temp01.db - dbid changed, wrote new name
    Control File /u01/app/oracle/oradata/db11g/control01.ctl - dbid changed, wrote new name
    Control File /u01/app/oracle/fast_recovery_area/db11g/control02.ctl - dbid changed, wrote new name
    Instance shut down

Database name changed to OCPTECH.
Modify parameter file and generate a new password file before restarting.
Database ID for database OCPTECH changed to 3015766568.
All previous backups and archived redo logs for this database are unusable.
Database is not aware of previous backups and archived logs in Recovery Area.
Database has been shutdown, open database with RESETLOGS option.
Succesfully changed database name and ID.
DBNEWID - Completed succesfully.

STEP 6. Change the db_name parameter value as ocptech (New Database Name).

$sqlplus / as sysdba

SQL> startup nomount
ORACLE instance started.

Total System Global Area  839282688 bytes
Fixed Size		    2233000 bytes
Variable Size		  507514200 bytes
Database Buffers	  322961408 bytes
Redo Buffers		    6574080 bytes


SQL> alter system set db_name=ocptech scope=spfile;

SQL> shu immediate

STEP 7. Change current database spfile name as new database name like spfiledb11g rename as spfileocptech.ora, also rename the password file.

$cd /u01/app/oracle/product/11.2.0.4/db_1/dbs/

$ ls -l

-rw-r-----. 1 oracle oinstall 1536 Mar  4 22:52 orapwdb11g
-rw-r-----. 1 oracle oinstall 2560 Mar  5 00:04 spfiledb11g.ora



$cp spfiledb11g.ora spfileocptech.ora
$cp orapwdb11g orapwocptech.ora

STEP 8. Now start your new database ocptech

$ export ORACLE_SID=ocptech

$ sqlplus / as sysdba

SQL> startup mount
ORACLE instance started.

Total System Global Area  839282688 bytes
Fixed Size		    2233000 bytes
Variable Size		  494931288 bytes
Database Buffers	  335544320 bytes
Redo Buffers		    6574080 bytes
Database mounted.


SQL> show parameter db_name

NAME				     TYPE	 VALUE
------------------------------------ ----------- -----------
db_name 			     string	 OCPTECH



SQL> alter database open resetlogs;

Database altered.



SQL> select name,open_mode from v$database;

NAME	  OPEN_MODE
--------- --------------------
OCPTECH   READ WRITE

Note:- After startup the database, we need to update Listener.ora and tnsname.ora files.

Listener.ora

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ocptech)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0.4/db_1)
      (SID_NAME = ocptech)
    ))

tnsname.ora

OCPTECH =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rhel6.localdomain)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ocptech)
    )
  )

I hope you realy enjoye this article, write your feelings in comment box.

Read: How to create a Database manually?

subscribe on youtube

Leave a Comment

%d bloggers like this:
Enable Notifications    OK No thanks