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