it-swarm.com.de

Der Listener unterstützt keine Dienste

Ich habe Oracle Database 11gR2 sowie Oracle Grid Infrastructure auf einer Linux-Box installiert und dann die Datenbank orcl erstellt.

Ich konnte mich immer mit SQL * Plus oder OEM mit meiner Datenbank verbinden. In letzter Zeit habe ich jedoch ein Problem, wenn ich den Befehl lsnrctl status eingebe. Daher kann ich keine Verbindung zur Datenbank herstellen.

Meine listener.ora-Datei:

# listener.ora Network Configuration File: /u01/app/Oracle/product/11.2.0/grid/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(Host = pc.company.com)(PORT = 1521))
    )
  )
ADR_BASE_LISTENER = /u01/app/Oracle

Meine tnsnames.ora-Datei:

# tnsnames.ora Network Configuration File: /u01/app/Oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(Host = pc.company.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.example.com)
    )
  )

Bei der Eingabe von lsnrctl status erhalte ich Folgendes:

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 21-JUL-2014 03:35:48

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(Host=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                21-JUL-2014 03:25:58
Uptime                    0 days 0 hr. 9 min. 50 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Log File         /u01/app/Oracle/diag/tnslsnr/pc151/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=pc.company.com)(PORT=1521)))
The listener supports no services
The command completed successfully

Wenn Sie sqlplus / as sysdba und dann startup eingeben, erhalte ich Folgendes:

ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DATA/orcl/spfileorcl.ora'
ORA-17503: ksfdopn:2 Failed to open file +DATA/orcl/spfileorcl.ora
ORA-29701: unable to connect to Cluster Synchronization Service

Mit dem Befehl srvctl start database kann auch die Datenbank nicht gestartet werden.

Meine oratab-Datei sieht folgendermaßen aus:

#Backup file is  /u01/app/Oracle/product/11.2.0/dbhome_1/srvm/admin/oratab.bak.pc150 line added by Agent
#

# This file is used by Oracle utilities.  It is created by root.sh
# and updated by the Database Configuration Assistant when creating
# a database.

# A colon, ':', is used as the field terminator.  A new line terminates
# the entry.  Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
#   $Oracle_SID:$Oracle_HOME:<N|Y>:
#
# The first and second fields are the system identifier and home
# directory of the database respectively.  The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $Oracle_SID are not allowed.
#
#
+ASM:/u01/app/Oracle/product/11.2.0/grid:N
orcl:/u01/app/Oracle/product/11.2.0/dbhome_1:N          # line added by Agent
6
Simo03

Die Datenbank registriert ihre Dienstnamen beim Start beim Listener. Wenn dies nicht möglich ist, wird es regelmäßig wiederholt. Wenn der Listener nach der Datenbank gestartet wird, kann es zu einer Verzögerung kommen, bevor der Dienst erkannt wird.

Wenn die Datenbank nicht läuft, hat der Dienst nichts registriert. Sie sollten also nicht davon ausgehen, dass der Listener davon erfährt. lsnrctl status oder lsnrctl services melden keinen Dienst, der noch nicht registriert ist.

Sie können die Datenbank ohne den Listener starten. vom Oracle-Konto aus und mit Ihrem Oracle_HOME, Oracle_SID und PATH-Set können Sie Folgendes tun:

sqlplus /nolog

Dann von der SQL * Plus-Eingabeaufforderung:

connect / as sysdba
startup

Oder verwenden Sie über die Grid-Infrastruktur aus dem Grid-Konto den Befehl srvctl start database :

srvctl start database -d db_unique_name [-o start_options] [-n node_name]

Möglicherweise möchten Sie prüfen, ob die Datenbank in Ihrer oratab-Datei auf automatischen Start eingestellt ist, und abhängig davon, was Sie verwenden, ob sie automatisch gestartet werden sollte. Wenn Sie davon ausgehen, dass es ausgeführt wird und es nicht ausgeführt wird, oder Sie versuchen, es zu starten, und es nicht angezeigt wird, ist dies ein völlig anderes Szenario. Sie müssen die Fehlermeldungen, das Alarmprotokoll Möglicherweise Trace-Dateien usw., um genau zu sehen, warum es nicht startet, und wenn Sie es nicht herausfinden können, fragen Sie möglicherweise nach Datenbank-Adminsitrators und nicht nach Stack Overflow.


Wenn die Datenbank +DATA nicht sehen kann, wird ASM möglicherweise nicht ausgeführt. Sie können sehen, wie man das hier anfängt ; oder mit srvctl start asm . Wie in der Dokumentation bereits vermerkt, stellen Sie sicher, dass Sie dies vom Netz aus tun, nicht von der Datenbank.

15
Alex Poole

Sie müssen Ihre Oracle_HOME-Definition in Ihre listener.ora-Datei einfügen. Im Moment ist es noch nicht mit einem Oracle_HOME registriert.

Beispiel listener.ora

abc =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(Host = abc.kma.com)(PORT = 1521))
    )
  )

SID_LIST_abc =
  (SID_LIST =
    (SID_DESC =
      (Oracle_HOME= /abc/DbTier/11.2.0)
      (SID_NAME = abc)
    )
  )
0
Vinod Walia

Überprüfen Sie die local_listener-Definition in Ihrer spfile oder pfile. In meinem Fall lag das Problem bei pfile, ich hatte das pfile aus einer ähnlichen Umgebung verschoben und es hatte LISTENER_sid als LISTENER und nicht nur LISTENER.

0
Saroj Bhumbla

für die Listener-Unterstützung können keine Dienste verwendet werden. Mit dem folgenden Befehl können Sie den Parameter local_listener in Ihrer spfile festlegen. Verwenden Sie dazu den Listener-Port und die IP-Adresse des Servers

alter system set local_listener = '(DESCRIPTION = (ADRESSE = (PROTOCOL = tcp) (Host = 192.168.1.101) (PORT = 1520))) sid =' testdb 'scope = spfile;

0
Sherzad Zahid

sie müssen tnsnames.ora neu konfigurieren, damit es auf Ihren Hostnamen verweisen kann, nachdem der Listener den neuen Hostnamen auswählen kann. Danach den Status des Listeners lsnrctl überprüfen und den Listener lsnrctl start starten. Dann den Listener registrieren. Systemregister ändern

0
saidi adda