spfile recreate on ASM

Had recent issue where I updated a spfile for a RAC database on ASM, then could not start db as memory setting sere to low, the ASM file used a system generated extension for name:

Steps to recreate:

  1. Before making any changes backup old file to a temp location (even without backup can get settings from alert log), I could have restored spfile as well using rman:
    • create pfile=</tmp/<DB>_ora.bak from spfile;

Now we are at stage where can’t start db due to bad settings so:

2. startup nomount pfile=</tmp/<DB>_ora.bak

3. create spfile='<ASM DG> from pfile=</tmp/<DB>_ora.bak

4. restart db using sqlplus outside of srvctl:

  • sqlplus / as sysdba
  • show parameter spfile
  • note the spfile location

4. update Clusterware if that is used with new spfile location

  • srvctl config database -d <db_name>
  • srvctl modify database -d <dbname> -p ‘<location to spfile>’
  • srvctl config database -d <db_name>
  • May need to update init<db>.ora file in ORACLE_HOME/dbs that needs updating to this as well on all nodes of cluster to point to new SPFILE.