In my case, I plan to use SPFILE to startup the database instance which used to use a known PFILE to open. But the problem is that the shell script which contains database startup procedure is pretty complex and I don't want to even touch it. Therefore I decided to stay the script intact. Now the question is, how can I work around it?
SPFILE Parameter: a simple pointer
What I did is to put only one parameter SPFILE in the source PFILE, which specified the full path of SPFILE just like this:
Such a simple pointer can achieve this goal easily. The official document describes more about SPFILE parameter.
Meanwhile, the trace log can show some evidences:
Using parameter settings in server-side spfile /u01/app/oracle/product/11.2.0/db_1/dbs/spfileORCL.ora
System parameters with non-default values:
processes = 1500
spfile = "/u01/app/oracle/product/11.2.0/db_1/dbs/spfileORCL.ora"
The best thing is that all the scripts remain unchanged as usual.
On the other hand, if you don't know which PFILE is used to startup your database, nothing you can do. But there's a way to find it out. I talked about this in another post:
Whether the Database Was Started with SPFILE or PFILE? Where is It?