Oracle 10g для Windows не запускается при загрузке системы

У нас есть установка Oracle 10g Enterprise Edition (10.2.0.1.0) на виртуальной машине Windows Server 2003. Первоначально он был создан с использованием Virtual Server 2005 R2 с пакетом обновления 1 (SP1), но теперь был перенесен в Windows Server 2008 Hyper-V.

Службы запускаются при загрузке системы, но экземпляр не запускается. Эта проблема фактически возникала на виртуальном сервере после перехода с одного сервера на другой, но мне удалось исправить это следующим образом:

oradim -edit -sid ORCL -startmode auto

Однако это сейчас не имеет никакого эффекта.

oradim.log (в%OracleHome%\database\oradim.log) говорит:

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 в той же папке имеет:

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\10.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

ORA_ORCL_AUTOSTART значение реестра установлено на TRUE, поэтому он должен быть запущен автоматически - и вы можете видеть, что он пытается. Эта проблема также возникает при остановке и перезапуске службы OracleServiceORCL.

Я включил трассировку SQL*Net, которая показывает:

[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

Предполагается, что ошибка 2 - это ошибка Windows 2 (файл не найден). Я попытался перезапустить службу с помощью Process Monitor, наблюдая за oradim.exe, но, похоже, это задерживает процесс настолько, что он всегда работает.

Прямо сейчас у меня есть ужасный хак, где я создал запланированное задание для запуска oradim -startup -sid ORCL когда учетная запись администратора входит в систему, и установите виртуальную машину для автоматического входа. Я все еще хотел бы понять, почему это не работает.

2 ответа

Для теста, возможно, стоит добавить зависимость к сервису. Мне интересно, пытается ли он начать слишком рано. Я видел подобную проблему в прошлом и не могу вспомнить, что мы сделали, чтобы исправить ее, но теперь мы используем агент Oracle / Grid Control для запуска служб (т. Е. Agent => Auto start, Oracle => Manual, Так далее).

Бежать tnsping .
перейти в каталог с файлом параметров sqlnet.ora
редактировать файлы tnsnames.ora & listener.ora
правильный (HOST = your_db_host_name) к стоимости, возвращаемой hostname команда
бежать services.msc
перезапустите службу прослушивания оракула с именем OracleOra....Listener & экземпляр службы с именем OracleService....

Другие вопросы по тегам