Save a copy of SPFILE as pfile
Replace all SIDs in pfile
Stop database: srvctl stop database -d <dbname>
On one node:
Export ORACLE_SID=<new SID>
Rename init.ora file:
cp init<old sid>.ora init<new sid>.oraStart instance no mount:
startup nomount pfile=/home/oracle/temp_pfileReplace SPFILE with the modified version:
create spfile=’+DATADG01/<dbname>/spfile<dbname>.ora’ from pfile=’/home/oracle/temp_pfile’;stop instance
start instance again.
verify it looks ok by running “select instance_name from v$instance”.
stop instance.
Then:
Rename init.ora on other cluster nodes
Unregister instances from srvctl:
srvctl remove instance -d <dbname> -i <old sid node 1>
srvctl remove instance -d <dbname> -i <old sid node 2>
srvctl remove instance -d <dbname> -i <old sid node 3>Register new instances:
srvctl add instance -d <dbname> -i <new sid node 1> -n <hostname node 1>
srvctl add instance -d <dbname> -i <new sid node 2> -n <hostname node 2>
srvctl add instance -d <dbname> -i <new sid node 3> -n <hostname node 3>
Enjoy!
And of course, comment below if you think I forgot a step or know about a better way to do it.
http://www.pythian.com/blog/changing-sid-on-rac-environment/
At least on the systems I managed, although the SPFILE is on ASM, there is a PFILE “initSID.ora” that contains a single line:
SPFILE=+ASM/
As far as I know this line is mandatory, and if you change the path to the SPFILE in ASM (which we did), you will need to change it on all nodes.
If you just replace the existing SPFILE in the same location, but don’t create a new one, you can skip this space – regardless of whether or not ASM is involved.