We have an Oracle 10g Enterprise Edition installation ( on a Windows Server 2003 virtual machine. It was initially created with Virtual Server 2005 R2 SP1 but has now been migrated to Windows Server 2008 Hyper-V.

The services start on system boot, but the instance does not start up. This problem was actually occurring on Virtual Server after a migration from one server to another, but I managed to fix it then with:

oradim -edit -sid ORCL -startmode auto

However, this now has no effect.

oradim.log (in %OracleHome%\database\oradim.log) says:

Thu Jun 10 14:14:48 2010
C:\oracle\product\10.2.0\db_3\bin\oradim.exe -startup -sid orcl -usrpwd * -log oradim.log -nocheck 0
Thu Jun 10 14:14:48 2010
ORA-12560: TNS:protocol adapter error

sqlnet.log in the same folder has:

Fatal NI connect error 12560, connecting to:

        TNS for 32-bit Windows: Version - Production
        Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version - Production
  Time: 10-JUN-2010 14:14:48
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12560
    TNS-12560: TNS:protocol adapter error
    ns secondary err code: 0
    nt main err code: 530
    TNS-00530: Protocol adapter error
    nt secondary err code: 2
    nt OS err code: 0

The ORA_ORCL_AUTOSTART registry value is set to TRUE, so it should be auto-starting - and you can see that it's trying to. The problem also occurs when stopping and restarting the OracleServiceORCL service.

I've enabled SQL*Net tracing which shows:

[10-JUN-2010 15:09:33.919] snlpcss: entry
[10-JUN-2010 15:09:34.419] snlpcss: Unable to spawn Oracle oracle     (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq))) orcl, error 2.
[10-JUN-2010 15:09:34.419] snlpcall: exit

On a hunch that error 2 is Windows error 2 (file not found) I tried restarting the service with Process Monitor watching oradim.exe, but this appears to delay things just enough that it always works.

Right now I have a horrible hack where I've created a Scheduled Task to run oradim -startup -sid ORCL when the Administrator account logs on, and set the VM to auto-logon. I'd still like to work out why it's not working.

  • So, to be clear: it's the autostart that fails, but you can bring up the instance manually? Or not? – DCookie Jun 10 '10 at 14:46
  • @DCookie: autostart fails but bringing up the instance with oradim or by running 'startup' from sqlplus works. It's only auto-starting that's a problem. – Mike Dimmick Jun 11 '10 at 13:43
  • Any particular reason you're not running – DCookie Jun 11 '10 at 16:09
  • You should really look at the alert log to determine why it's not starting. It's usually in C:\Oracle\product\10.2.0\admin\bdump\alert.log (location can vary). The sqlnet log and tracing are red herrings - the database starts independently of the network stack. – namd0gma1 Dec 27 '10 at 18:02
  • 1
    If the Windows machinename/servername changed check if listener.ora contains a reference to the old name and update it. Usually listed in a (HOST=XXXX) part of a listener configuration. – Brian Dec 9 '14 at 10:52

It might be worth, for a test, adding a dependency to the service. I'm wondering whether it's trying to start too early. I've seen a similar problem in the past, and cannot remember what we did to fix it, but we now use the Oracle agent / Grid Control to bring the services up (i.e.: Agent => Auto start, Oracle => Manual, Etc).


run tnsping .
go to directory with parameters file sqlnet.ora
edit files tnsnames.ora & listener.ora
correct (HOST = your_db_host_name) to value returned by hostname command
run services.msc
restart oracle listener service named OracleOra....Listener & instance service named OracleService....

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.