Oracle XE 10g: missing file spfileXE.ora (Windows Server 2008 64 bit)

oracleoraclexe

I'm having problems installing Oracle XE 10g on a Windows Server 2008 64 bit machine.
After the installation the connection to the database administration page http://127.0.0.1:8080/apex fails.

If I run sqlplus / as sysdba I get the error ORA-12560: TNS:protocol adapter error.

Looking at the services, I can see that OracleServiceXE is not started (even if the startup type is automatic).

I restart the service and re-run

c:\>sqlplus / as sysdba
(...)
Connected to an idle instance.
SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file 'C:\oraclexe\app\oracle\product\10.2.0\server\dbs/spfileXE.ora'
ORA-27041: unable to open file
OSD-04002: unable to open file
O/S-Error: (OS 2) The system cannot find the file specified.          

Is it possible to recreate that file somehow? I already tried uninstalling and reinstalling, and got exactly the same behavior.

Best Answer

I assume you have a pfile somewhere? Either in the directory where it's looking for the spfile in your question, or perhaps in the admin\pfile directory. Anyway, try:

sqlplus / as sysdba
create spfile from pfile='<location of pfile>'
startup

That should do it.

EDIT:

You can always go back and forth with your spfile and pfile in this manner. It's good to have a text file backup of your spfile, since you can't directly edit the spfile (you can only change it when the database is mounted):

create pfile='<pfile location>' from spfile;

The spfile gives you the ability to change dynamic parameters while the database is open without restarting the database and to make them permanent across database restarts:

alter system set open_cursors=new limit scope=both

This makes the change in the running database as well as the spfile to make it effective across DB restarts.

With the old pfile paradigm, you had to edit the pfile manually to make the change effective across restarts. Additionally, you can modify parameters that require a database restart in the spfile while the database is up, to become effective on the next restart:

alter system set sga_max_size=new_sga_max scope=spfile

You can't modify the running instance with this parameter, but you can make it effective on the next restart.

Related Topic