Temos uma instalação do Oracle 10g Enterprise Edition (10.2.0.1.0) em uma máquina virtual do Windows Server 2003. Ele foi inicialmente criado com o Virtual Server 2005 R2 SP1, mas agora foi migrado para o Windows Server 2008 Hyper-V.
Os serviços iniciam na inicialização do sistema, mas a instância não é inicializada. Esse problema estava realmente ocorrendo no Virtual Server após uma migração de um servidor para outro, mas eu consegui corrigi-lo com:
oradim -edit -sid ORCL -startmode auto
No entanto, isso agora não tem efeito.
oradim.log (em% OracleHome% \ database \ oradim.log) diz:
Thu Jun 10 14:14:48 2010
C:\oracle\product.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 na mesma pasta tem:
Fatal NI connect error 12560, connecting to:
(DESCRIPTION=(ADDRESS=(PROTOCOL=BEQ)(PROGRAM=oracle)(ARGV0=oracleorcl)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))(CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=C:\oracle\product.2.0\db_3\bin\oradim.exe)(HOST=ORACLE-VM)(USER=SYSTEM))))
VERSION INFORMATION:
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version 10.2.0.1.0 - 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
O valor do registro ORA_ORCL_AUTOSTART
está definido como TRUE
, por isso deve ser iniciado automaticamente - e você pode ver que está tentando. O problema também ocorre ao parar e reiniciar o serviço OracleServiceORCL .
Eu habilitei o rastreamento do SQL * Net que mostra:
[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
Em um palpite de que o erro 2 é o erro 2 do Windows (arquivo não encontrado) Eu tentei reiniciar o serviço com o Process Monitor assistindo oradim.exe, mas isso parece atrasar as coisas o suficiente para que sempre funcione.
Neste momento, tenho um hack horrível onde criei uma tarefa agendada para executar oradim -startup -sid ORCL
quando a conta do administrador faz logon e defino a VM para o logon automático. Eu ainda gostaria de descobrir porque não está funcionando.