Oracle 10g für Windows wird beim Systemstart nicht gestartet

7

Wir haben eine Oracle 10g Enterprise Edition-Installation (10.2.0.1.0) auf einer virtuellen Windows Server 2003-Maschine. Es wurde ursprünglich mit Virtual Server 2005 R2 SP1 erstellt, wurde aber jetzt auf Windows Server 2008 Hyper-V migriert.

Die Dienste werden beim Systemstart gestartet, die Instanz wird jedoch nicht gestartet. Dieses Problem trat tatsächlich auf dem virtuellen Server nach einer Migration von einem Server auf einen anderen auf, aber ich konnte es dann beheben mit:

oradim -edit -sid ORCL -startmode auto

Dies hat jetzt jedoch keine Auswirkung.

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

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 im selben Ordner hat:

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

Der ORA_ORCL_AUTOSTARTRegistrierungswert ist auf festgelegt TRUE, daher sollte er automatisch gestartet werden - und Sie können sehen, dass dies versucht wird. Das Problem tritt auch beim Stoppen und Neustarten des OracleServiceORCL- Dienstes auf.

Ich habe die SQL * Net-Ablaufverfolgung aktiviert, die Folgendes anzeigt:

[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

Ich habe vermutet, dass Fehler 2 Windows-Fehler 2 ist (Datei nicht gefunden). Ich habe versucht, den Dienst neu zu starten, während Process Monitor oradim.exe überwacht, aber dies scheint die Dinge gerade so zu verzögern, dass es immer funktioniert.

Im Moment habe ich einen schrecklichen Hack, bei dem ich eine geplante Aufgabe erstellt habe, die ausgeführt werden soll, oradim -startup -sid ORCLwenn sich das Administratorkonto anmeldet, und die VM auf automatische Anmeldung eingestellt hat. Ich würde immer noch gerne herausfinden, warum es nicht funktioniert.

Mike Dimmick
quelle
Um es klar zu sagen: Es ist der Autostart, der fehlschlägt, aber Sie können die Instanz manuell aufrufen? Oder nicht?
DCookie
@DCookie: Autostart schlägt fehl, aber das Aufrufen der Instanz mit oradim oder durch Ausführen von 'startup' von sqlplus funktioniert. Es ist nur das automatische Starten, das ein Problem darstellt.
Mike Dimmick
Gibt es einen bestimmten Grund, warum Sie 10.2.0.4 nicht ausführen?
DCookie
Sie sollten sich das Warnprotokoll genau ansehen, um festzustellen, warum es nicht gestartet wird. Es befindet sich normalerweise in C: \ Oracle \ product \ 10.2.0 \ admin \ bdump \ alert.log (Speicherort kann variieren). Das SQLnet-Protokoll und die Ablaufverfolgung sind rote Heringe - die Datenbank wird unabhängig vom Netzwerkstapel gestartet.
namd0gma1
1
Wenn sich der Windows-Maschinenname / Servername geändert hat, überprüfen Sie, ob listener.ora einen Verweis auf den alten Namen enthält, und aktualisieren Sie ihn. Wird normalerweise in einem (HOST=XXXX)Teil einer Listener-Konfiguration aufgeführt.
Brian

Antworten:

0

Für einen Test kann es sich lohnen, dem Dienst eine Abhängigkeit hinzuzufügen. Ich frage mich, ob es versucht, zu früh zu beginnen. Ich habe in der Vergangenheit ein ähnliches Problem gesehen und kann mich nicht erinnern, was wir getan haben, um es zu beheben. Jetzt verwenden wir den Oracle-Agenten / die Grid-Steuerung, um die Dienste aufzurufen (z. B.: Agent => Autostart, Oracle => Manuell, Usw).

Simon Catlin
quelle
0

run tnsping .
Gehe in das Verzeichnis mit den Parameterdateien, sqlnet.ora
bearbeite die Dateien tnsnames.oraund listener.ora
korrigiere (HOST = your_db_host_name)den vom hostnameBefehl zurückgegebenen Wert.
star services.msc
restart oracle listener service named OracleOra....Listener& instance service namedOracleService....

Adam Silenko
quelle