Due t o a document not being supplied t o me recent ly, I built a f ew 11g
dat abases wit h t he wrong SID. I needed t o change t hem all. I f ound a f ew web pages, Oracle and ot hers, on using t he nid ut ilit y t o do just t hat , however, t hey were incomplet e. T he f ull process is described here. T he f ollowing has been t est ed f ully on an 11.2.0.2 Oracle dat abase. T he nid ut ilit y used also exist s in Oracle 10.2.0.5 and possibly ot her versions t hat I do not have access t o at t he moment . Backup t he dat abase or ensure a backup exist s in RMAN. T his shouldnt be necessary but you are a DBA right ? And chances we do not t ake! create pfile='/home/oracle/initnew_sid.ora' from spfile; t his ensures t hat t he pf ile you are about t o edit cont ains all t he current set t ings. It is saved in a non-st andard locat ion f or saf et y. Shut down t he dat abase cleanly. Use shutdown or shutdown immediate. Startup mount t he dat abase. Check t he open_cursors paramet er. If you have a lot of dat a f iles you might need t o increase t his set t ing t emporarily: alter system set open_cursors=1500 scope=memory; In a shell session run t he f ollowing nid command: nid target=/ dbname=new_sid setname=y logfile=new_name.log T he logf ile creat ed will show det ails of what just happened and should be checked f or errors. As f ar as I am aware, but dont t rust me on t his, errors will not change t he dat abase at all. T he inst ance will also have been shut down at t he end of t he nid command. Edit /etc/oratab t o change t he old sid t o t he new one. Edit tnsnames.ora t o do likewise. Also applies t o OID, LDAP, what ever you use f or alias resolut ion. St op t he appropriat e list ener, edit listener.ora and rest art t he list ener. If t he list ener in quest ion serves ot her dat abases, just edit t he listener.ora f ile and run lsnrctl reload listener_name. Copy t he newly creat ed /home/oracle/initnew_sid.ora t o $ORACLE_HOME/dbs/initnew_sid.ora t hen edit t he new f ile and change t he db_name paramet er.
You may, if desired, delet e t he old f iles
$ORACLE_HOME/dbs/initold_sid.ora and $ORACLE_HOME/dbs/spfileold_sid.ora as t hey are no longer needed. (Unless you plan on renaming t he dat abase back again of course!) Export ORACLE_SID as t he new sid. ORACLE_HOME will remain t he same as bef ore. Run t he orapwd command t o creat e a new password f ile if required. St art up t he dat abase. create spfile='oracle_home/dbs/spfilenew_sid.ora' from pfile; Obviously subst it ut ing t he correct values f or new_sid and oracle_home. Shut down and rest art t he dat abase t o use t he new spf ile. Check it all just worked: select name from v$database; show parameter db_name T hat s t he simple bit and in t heory is all you need t o do. However, be aware t hat any dat a f iles, cont rol f iles, recovery f ile dest inat ions et c st ill have t heir old f ormat names. You may end up wit h a dat abase called fred locat ed in /srv/barney/oradata f or example. If you wish t o go down t he rout e of renaming everyt hing t o suit t he dat abase name, see part 2 of t his discussion, here. As t he cont rol f iles are not overwrit t en by t his process, and because t he DBID doesnt change, all your RMAN backup inf ormat ion is saf e and even af t er t he dat abase has been renamed, you can use an old backup t o rest ore and recover t he dat abase. Ive t est ed t his on a t ablespace recovery t o be sure. Ok, when I say your backups are saf e, t hey are, but if you t ry t o rest ore t he cont rolf ile f rom an old pre-rename dump, it will rest ore wit h no errors. However, when you at t empt t o mount t he dat abase you will be inf ormed t hat t he name in t he cont rolf ile doesnt mat ch t he dat abase. Edit t he rest ored cont rolf ile(s) t o change t he name and cont inue. Im pret t y sure t hat because t he DBID doesnt change, an RMAN cat alogue will not lose any backup det ails eit her. On my t est syst em, I dont yet have a cat alogue t o play wit h, so best you t est on an expendable dat abase f irst . Just saying! Online and backed up archived logs as well as t he online redo logs are used quit e happily t o apply any required REDO. It just works!