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.