There are couple of ways of finding if the database was started with spfile or pfile.

One way would be tell show the check the value of parameter spfile, if it returns blank then database was started by pfile.

— belows show database was started by spfile
SQL> show parameter spfile;

NAME TYPE VALUE
—— —— ————————————————
spfile string /u01/apps/oracle/10g/dbs/spfileorcltest.ora

Another way to find would be set the parameter with scope=spfile, if database was started with spfile one will be able to set the value if it’s started with pfile you will see the “ORA-32001: write to spfile requested but no SPFILE specified at startup”. Note: You can set the new value to be the same as current value of the parameter, it doesn’t have to be a different one.

SQL> ALTER SYSTEM set open_cursors=300 scope=spfile;
ALTER SYSTEM set open_cursors=300 scope=spfile;
*
ERROR at line 1:
ORA-32001: write to spfile requested but no SPFILE specified at startup

2 responses to “How to tell if the database was started with spfile or pfile?”

  1. vaibhav Avatar
    vaibhav

    started database using pfile but show parameter pfile showing its started using spfile
    its 10g windows database

    Like

    1. Kris Avatar
      Kris

      hi, it will show the spfile list but the value for string is null, meaning it did not use spfile :P

      Like

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.