Below are the steps for moving spfile from file system to ASM diskgroup in RAC.
database name – ORCL
instance_names – ORCL1,ORCL2
oracle DB nodes – dbhstorcl1, dbhstorcl2
1. Check current pfile location:
SQL> show parameter pfile NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string /oracle/app/oracle/product/dbs/temp_init.ora
2. Now required directory in ASM diskgroup(where pfile will be created)
export ORACLE_HOME=/crsapp/app/oracle/product/12.1.2.0/grid12c export ORACLE_SID=+ASM1 export PATH=$ORACLE_HOME/bin:$PATH asmcmd ASMCMD>mkdir +DATA/PARAM
3. Create the spfile from pfile:
create spfile='+DATA/PARAM/spfileORCL.ora' from pfile='/oracle/app/oracle/product/dbs/temp_init.ora';
4. Update INIT FILE on each node (pointing to actual spfile path)
on node 1(dbhstorcl1)
cd $ORACLE_HOME/dbs cat initORCL1.ora SPFILE='+DATA/PARAM/spfileORCL.ora'
on node 2(dbhstorcl2)
cd $ORACLE_HOME/dbs cat initORCL2.ora SPFILE='+DATA/PARAM/spfileORCL.ora'
5. update database config
srvctl modify database -d racdb1 -p +DATA/PARAM/spfileORCL.ora srvctl config database -d B2CPRE | grep Spfile Spfile: +CRMDB01/paramfile/spfileB2CPRE.ora
6. Restart the database
srvctl stop database -d ORCL srvctl start database -d ORCL SQL> show parameter pfile NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string +DATA/PARAM/spfileORCL.ora
Voilla.
Thanks for the step by step procedure. I was struggling to recreate spfile from pfile in RAC. It resolved my issue.
https://orahow.com/create-spfile-from-pfile-in-asm/