How to Modify Oracle spfile Location. Login to Oracle Server (node 1 for example, srv0dbx01) su - oracle. Srv0dbx01 ORA1020 /export/home/oracle. Thanks for this information. I changed a parameter in such a bad way, that oracle did not start anymore. Converting the spfile to a pfile, editing the pfile and reconverting the corrected pfile to the spfile made oracle happy (and me too). SQL show parameter spfile; If your ASM instance uses spfile the above result will show you the location which would be something like '+DATA/asm/parameter/.' You can navigate ASM diskgroup using 'asmcmd' command.
This morning, I was wondering how ASM Instance could be started if the SPFILE is stored inside ASM Disk. ASM Disk won’t be online/mounted if ASM Instance isn’t started.
So the first thing I did was to confirm that the SPFILE is in the ASM Disk. I logged in to the ASM instance using sql plus.
I was surprised to get empty value. In a database instance, this usually signifies that the instance is not using SPFILE. So I checked the $ORACLE_HOME/dbs directory to see if there’s a file named init+ASM.ora.
I don’t see it as well. This is a good time to start googling my answer 🙂
I found one good article written by Aychin Gasimov which explain how ASM Instance is able to know where is the SPFILE and access it.
Here is the link: http://aychin.wordpress.com/2011/01/22/oracle-11gr2-asm-spfile-eng/

To sum it up, Oracle gets the information from css daemon which reads the information from OLR file (Oracle Local Registry) at /etc/oracle directory (Linux).
Oracle ASM spfile is stored in <ASMDISKGROUP>/ASM/asmparameterfile/ directory. I guess the directory is hidden because we can’t see it using ASMCMD.
More details at Aychin’s article.
- Oracle RAC is installed on srv0dbx01, srv0dbx02, and srv0dbx03
- Each Instance is called PWAKdbX where X is the node, i.e. PWAKDB1
- srvctl is used to control all nodes. srvctl -h will show you syntax help
- showcrs script stored in oracle home directory will show status of all nodes.
- If srvctl does not stop and start instance properly verify TNS_ADMIN env is set.
- TIP: Run export SRVM_TRACE=TRUE
Then try and start instance:$ srvctl start instance -d PWAKdb -I PWAKdb3
This will then let you see the log file as it starts and check for errors.
- Login to Oracle Server (node 1 for example, srv0dbx01)
- Source CRS
- srv0dbx01 | ORA1020 | /export/home/oracle
> . oraenv
ORACLE_SID = [ORA1020] ? CRS
srv0dbx01 | CRS | /export/home/oracle
> cd $ORACLE_HOME
srv0dbx01 | CRS | /u00/app/oracle/product/10.2.0/CRS - > srvctl status instance -d PWAKdb -i PWAKdb1
Instance PWAKdb1 is running on node srv0dbx01 - srvctl stop instance -d PWAKdb -i PWAKdb1
- > srvctl status instance -d PWAKdb -i PWAKdb1
Instance PWAKdb1 is not running on node srv0dbx01 - Run the command in number 8 to modify the database to specify the location of the spfile.
- srvctl modify database -d PWAKdb -p +PWAK_DATA_01/PWAKDB/spfilePWAKdb.ora
- Wath the trace and it showed the spfile going to PWAK_data_01
- Test everything by running crs_stop -all and waited for everything to stop.
- Next, run crs_start -all and everything should start successfully.
- Run this command to view the settings of the db and you can see the spfile is now set to the correct location?
Oracle Spfile Parameter
Oracle Startup Spfile
Create Pfile From Spfile 11g
Oracle Rac Spfile Location
