web-dev-qa-db-fra.com

L'auditeur ne prend en charge aucun service

J'ai installé Oracle Database 11gR2 ainsi que Oracle Grid Infrastructure sur une machine Linux, puis j'ai créé la base de données orcl.

J'ai toujours été capable de me connecter à ma base de données avec SQL * Plus ou OEM. Mais dernièrement, je rencontre un problème lorsque je tape la commande lsnrctl status. Je ne parviens donc pas à me connecter à la base de données.

Mon fichier listener.ora:

# 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

Mon fichier tnsnames.ora:

# 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)
    )
  )

En tapant lsnrctl status, j'obtiens ce qui suit:

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

En tapant sqlplus / as sysdba puis startup, j'obtiens ceci:

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

Et la commande srvctl start database ne parvient pas non plus à démarrer la base de données.

Mon fichier oratab est le suivant:

#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

La base de données enregistre son ou ses noms de service auprès de l'écouteur lors de son démarrage. S'il ne peut pas le faire, il essaie de nouveau périodiquement. Par conséquent, si l'écouteur démarre après la base de données, il peut s'écouler un délai avant que le service ne soit reconnu.

Cependant, si la base de données n'est pas en cours d'exécution, le service n'a pas été enregistré. Vous ne devez donc pas vous attendre à ce que l'écouteur en soit informé: lsnrctl status ou lsnrctl services ne signalera pas un service qui n'est pas encore enregistré.

Vous pouvez démarrer la base de données sans le listener. à partir du compte Oracle et avec vos ensembles Oracle_HOME, Oracle_SID et PATH, vous pouvez effectuer les opérations suivantes:

sqlplus /nolog

Ensuite, à partir de l'invite SQL * Plus:

connect / as sysdba
startup

Ou, via l’infrastructure de grille, à partir du compte de grille, utilisez la commande srvctl start database :

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

Vous voudrez peut-être vérifier si la base de données est configurée pour démarrer automatiquement dans votre fichier oratab et selon ce que vous utilisez si elle aurait dû démarrer automatiquement. Si vous vous attendez à ce qu'il fonctionne et si ce n'est pas le cas, ou si vous essayez de le démarrer sans que cela ne se produise, il s'agit d'un scénario totalement différent: vous devez consulter les messages d'erreur, le journal des alertes, éventuellement, tracez des fichiers, etc. pour voir exactement pourquoi cela ne démarre pas, et si vous ne pouvez pas le comprendre, demandez peut-être à Database Adminsitrators plutôt qu'à Stack Overflow.


Si la base de données ne peut pas voir +DATA, il est possible que ASM ne soit pas en cours d'exécution; vous pouvez voyez comment commencer ici ; ou en utilisant srvctl start asm . Comme le dit la documentation, assurez-vous de le faire à partir de la base de la grille, pas de la base de données.

15
Alex Poole

Vous devez ajouter votre définition Oracle_HOME dans votre fichier listener.ora. Pour l'instant, ce n'est pas enregistré avec aucun Oracle_HOME.

Exemple 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

Vérifiez la définition de local_listener dans votre fichier spfile ou pfile. Dans mon cas, le problème venait du pfile, j'avais déplacé le pfile d'un environnement similaire et il avait LISTENER_sid comme LISTENER et pas seulement LISTENER.

0
Saroj Bhumbla

pour les services d'écoute, aucun service, vous pouvez utiliser la commande suivante pour définir le paramètre local_listener dans votre spfile, utiliser votre port d'écoute et l'adresse IP du serveur

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

0
Sherzad Zahid

vous devez reconfigurer votre tnsnames.ora afin qu’il puisse pointer sur votre nom d’hôte après que cet écouteur sera en mesure de choisir le nouveau nom d’hôte. Après quoi, vérifiez l’état de votre statut lsnrctl de l’écouteur et lancez l’écouteur lsnrctl start puis enregistrez votre écouteur. Modifier le registre du système

0
saidi adda