How to startup the Oracle Database 19c without using parameter pfile?

All we need is an easy explanation of the problem, so here it is.

Dears,

I am starting my Oracle database using the following startup code. Can you help me how to startup without the parameter.

SQL> startup pfile='E:\app\oracle\admin\prod\pfile\init.ora.572021131644';
ORACLE instance started.

Total System Global Area 2382361384 bytes
Fixed Size                  9270056 bytes
Variable Size             520093696 bytes
Database Buffers         1845493760 bytes
Redo Buffers                7503872 bytes
Database mounted.
Database opened.

But how can I start as below

SQL> startup 

Because it showing the following error

 startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file 'E:\APP\WINDOWS.X64_193000_DB_HOME\DATABASE\INITPROD.ORA'

How to solve :

I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.

Method 1

To startup a database without specifying anything, you have 2 options.

The first way is to copy your current PFILE to %ORACLE_HOME%\database\ and rename the file into INIT%ORACLE_SID%.ORA. For example, INITPROD.ORA. The database will choose it to startup, if there’s no default SPFILE.

In which, %ORACLE_HOME% is the Oracle product home path, %ORACLE_SID% is the instance name. In your case, %ORACLE_HOME% is E:\APP\WINDOWS.X64_193000_DB_HOME and %ORACLE_SID% is PROD, according to your error message.

The second way is to create a SPFILE for your default server parameter file.

SQL> create spfile from pfile='E:\app\oracle\admin\prod\pfile\init.ora.572021131644';

File created.

After that, SPFILE is created with the path %ORACLE_HOME\database\SPFILE%ORACLE_SID%.

The thing is, Oracle searches for proper file to open the database by the following order:

  1. SPFILE with ORACLE_SID, e.g. SPFILEPROD.ORA.
  2. SPFILE without ORACLE_SID, e.g. SPFILE.ORA.
  3. PFILE with ORACLE_SID, e.g. INITPROD.ORA.

Method 2

I would suggest that starting an Oracle database from a PFILE is unusual.
Oracle databases usually expect to be started from an SPFILE.

Start the database (with the pfile parameter), then execute the command
create spfile from pfile;

Your database will now [always] start from the SPFILE unless explicitly told to do otherwise.

Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply