web-dev-qa-db-fra.com

Oracle XE a cessé de fonctionner. TNS Listener a refusé la connexion

Je travaille sur une application qui utilise Oracle XE 11g comme SGBDR. Cela fonctionnait pendant plusieurs semaines, mais maintenant, j'ai commencé à recevoir un message d'erreur indiquant que la connexion était refusée.

J'ai redémarré mon système mais cela n'a pas aidé. J'ai désinstallé XE, supprimé tous les fichiers restants (même du registre) et réinstallé. Maintenant, je reçois un autre message d'erreur:

Le récepteur a refusé la connexion avec l'erreur suivante: ORA-12505, TNS: le récepteur n'a pas connaissance du SID indiqué dans le descripteur de connexion.

J'ai lu des informations sur cette erreur et d'autres ont suggéré d'ajouter un nouveau SID au fichier listener.ora:

(SID_DESC =
  (SID_NAME = XE)
  (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
)

Si je le fais, je reçois un autre message d'erreur:

ORA-01034: Oracle non disponible ORA-27101: le domaine de la mémoire partagée n'existe pas

Mes fichiers de configuration sont: listener.ora

    SID_LIST_LISTENER =   (SID_LIST =
    (SID_DESC =
      (SID_NAME = XE)
      (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
    )
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )   )

LISTENER =   (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(Host = AAROLD.in.mycompany.com)(PORT = 1521))
    )   )

DEFAULT_SERVICE_LISTENER = (XE)

tnsnames.ora

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(Host = AAROLD.in.mycompany.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

ORACLR_CONNECTION_DATA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
    ) 
    (CONNECT_DATA = 
      (SID = CLRExtProc) 
      (PRESENTATION = RO) 
    ) 
  ) 

lsnrctl status retourne avec:

LSNRCTL for 32-bit Windows: Version 11.2.0.2.0 - Production on 19-M┴RC. -2013 15:12:24

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 32-bit Windows: Version 11.2.0.2.0 - Production
Start Date                19-M┴RC. -2013 15:01:12
Uptime                    0 days 0 hr. 11 min. 11 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           XE
Listener Parameter File   C:\oraclexe\app\Oracle\product\11.2.0\server\network\admin\listener.ora
Listener Log File         C:\oraclexe\app\Oracle\diag\tnslsnr\AAROLD\listener\alert\log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=AAROLD.in.mycompany.com)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

Avez-vous une idée de ce que peut être le problème? Je ne suis pas un expert Oracle, je suis donc complètement dans le noir ici.

9
Adam Arold

Votre base de données Oracle est en panne. Il peut y avoir un problème de démarrage.

Allez à l'invite de commande et tapez:

SQL> sqlplus/as sysdba

Si vous recevez un message "connecté à une instance inactive", tapez

SQL> démarrage

et laissez-moi savoir le message que vous recevez. Si vous n'obtenez pas le message "connecté à une instance inactive" au démarrage de SqlPlus, saisissez le type:

SQL> set lines 80 pages 50

SQL> select * from v $ database;

et poster la sortie ici.

2
Sam

J'ai eu exactement le même problème et après avoir passé presque 4 heures à essayer de trouver et de répondre, en ajoutant enfin

(SID_DESC =
  (SID_NAME = XE)
  (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
)

à mon écouteur.ora et le redémarrage des deux services XE ont résolu le problème. J'utilise 11.2.0 (XE) sur Windows 7 x64 sans aucun accroc jusqu'à hier. Un redémarrage de mon PC ce matin a empêché l'auditeur de trouver le SID.

Maintenant, je sauvegarde à la fois listener.ora et tnsnames.ora.

par ailleurs, j'ai oublié de mentionner que j'ai changé le nom d'hôte dans les deux fichiers de bob.mycompany.com en localhost.

13
Bob 1174

Sous Windows 7 64 bits, Orcale XE 11, mon service OracleXXETNSListener ne fonctionnait pas et s’arrêtait immédiatement lorsque j’ai essayé de le démarrer.

  1. Ajouter

(SID_DESC = (SID_NAME = XE) (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\serveur))

à mon

C:\oraclexe\app\Oracle\product\11.2.0\server\network\ADMIN\listener.ora
  1. changer le nom d'hôte en localhost

  2. le redémarrage du service OracleServiceXE sous Système - Services a résolu le problème.

Ainsi, la section complète listener.ora se présente comme suit:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (Oracle_HOME = C:\servers\oraclexe\app\Oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (Oracle_HOME = C:\servers\oraclexe\app\Oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = XE)
      (Oracle_HOME = C:\servers\oraclexe\app\Oracle\product\11.2.0\server)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)
11
RobE

J'ai eu un problème similaire et je l'ai résolu en supprimant les lignes "IPC" de listener.ora et de tnsnames.ora.

Sur listener.ora, j'ai enlevé:

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

Sur tnsnames.ora, j'ai enlevé:

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

C'était peut-être un peu exagéré, mais c'est finalement réglé, après plusieurs heures!

3
BrunoJCM

J'ai eu le même problème, l'erreur était que j'ai changé le nom de ma machine. Ceci a été résolu en modifiant le fichier listener.ora et en renommant l'hôte:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(Host = hostname_of_my_machine)(PORT = 1521))
    )
  )
1
riki89