Tuesday 15 March 2011

How to rename oracle database

To rename an Oracle database we use newid utility as follow:
  • STEP 1: Backup the database.
     
  • STEP 2: Mount the database after a clean shutdown:
    SHUTDOWN IMMEDIATE
    STARTUP MOUNT
  • STEP 3: Invoke the DBNEWID utility (nid) specifying the new DBNAME from the command line using a user with SYSDBA privilege:
    nid TARGET=sys/password@OLDNAME DBNAME=NEWNAME
    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
        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.
  • STEP 4: Shutdown the database:
    SHUTDOWN IMMEDIATE
  • STEP 5: 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
  • STEP 6: Create a new password file:
    orapwd file=c:\oracle\920\database\pwdTSH2.ora password=password entries=10
  • STEP 7: Rename the SPFILE to match the new DBNAME.
     
  • STEP 8: 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=NEWNAME; export ORACLE_SID
  • STEP 9: Alter the listener.ora and tnsnames.ora setting to match the new database name and restart the listener:
     
    lsnrctl reload
  • STEP 10: Open the database with RESETLOGS:
     
    STARTUP MOUNT
    ALTER DATABASE OPEN RESETLOGS;
  • STEP 11: Backup the database.

No comments:

Post a Comment

Number of Visitors