IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

[10g]inconsistance de statut entre OMS et SQLPlus


Sujet :

Oracle

  1. #1
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 554
    Points
    19 554
    Billets dans le blog
    25
    Par défaut [10g]inconsistance de statut entre OMS et SQLPlus
    Après une install 10g sous WinSrv2003 (et même une install de patch p4205997) et une utilisation assidue pendant une journée à découvrir la version HTML du console manager, à supprimer quelques droits EXECUTE sur des packages (en suivant les conseils de l'assistant), j'ai redémarré mon instance pour activer certaines modifications du spfile.

    Depuis, j'ai un soucis en me connectant via ma console : je tombe sur le message

    Citation Envoyé par oracle
    Le statut de la base de données est actuellement indisponible. L'état de la base de données peut être MOUNT ou NOMOUNT. Cliquez sur Démarrer pour obtenir le statut en cours et ouvrir la base de données. Si vous ne parvenez pas à l'ouvrir, cliquez sur Effectuer la récupération pour exécuter l'opération de récupération adéquate.
    Pourtant, si je m'en réfère à une connexion sqlplus, ma base est correctement montée, ouverte et fonctionnelle. Une idée pour me débloquer ?
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    j'ai moi-aussi eu souvent ce problème... je crains que ce soit un bug ou un problème de cache malheureusement je l'ai jamais eu le temp d'investiguer plus avant

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    je relançais l'OMS et j'insistais... c'est très pénible

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    J'ai trouvé ça dans Metalink :

    The information in this article applies to:
    Enterprise Manager for RDBMS - Version: 10.1.0.2
    This problem can occur on any platform.
    Symptoms:
    When attempting to use DB Control to administer a 10g Database, the database shows down in the UI but it is actually started and accepting connections.
    emoms.log file might contain:
    OMSHandshake failed (AGENT URL = .....:1830/emd/main) (ERROR =INTERNAL_ERROR) - Io Exception: the network adapter could not establish the connection

    If you attempt to start it from the DB Control UI, the following errors occur:
    ORA 12500 "TNS:listener failed to start a dedicated server process"
    ORA-12514 TNS:listener could not resolve SERVICE_NAME given in connect descriptor

    Cause:
    During the 10g Database installation, several configuration files will be populated with the default listener port of 1521. If no other listeners are running, this works as expected. However, if a pre-existing listener was already running on the node when the 10g database was installed, the 10g database will dynamically register with the 9i listener which is not supported.

    When a listener is already using port 1521, several components will experience problems.
    1) The 10g TNS listener will not start. If this is a Windows server, no service will be created either. This error is a result of port conflicts with preexisting software.
    2) The DB Console will show the database status as "unavailable". This error is encountered because the DB Console is not able to get a valid status of the database. Even though the DB is open, dbsnmp is not able to log into the database, so EM reports an "unavailable" status.
    3) Attempting to start the database through DB Console will fail with an ORA-12500 error.
    Fix
    1. Lets start by fixing the listener problem and then move on to fix the other two problems. The first problem is due to a port conflict with the TNS Listener.
    NOTE: On Windows systems, the service is created when the listener is first started. Once the port conflict has been resolved, the listener will start (from command line) and on Windows, the new service will be created.
    a) To correct this issue, select a port number that is not defined by any other listeners, and modify the 10g ORACLE_HOME/network/admin/listener.ora file and provide the new port number.
    b) If your listener.ora file does not contain a SID_LIST_LISTENER entry for your new SID, one should be created. This will enable the listener to make a client connection (as sysdba) to an idle instance. If this entry does not exist, then the database will only use the automatic registration feature (the database registers with the listener when the DB starts). This means that the listener will not have any service handlers for a down database, and only local (bequeth) connections will be possible. DB Control will ALWAYS attempt client connections, and not local connections. Adding the following section will ensure the database can be started without receiving an ORA-12514 error. This error would be possible if only the automatic registration feature is used.

    This is an example of what the SID_LIST_LISTENER entry will look like (the formatting of this may be incorrect, but make sure it follows a typical listener.ora file where only the SID_LIST entry is on the left margin, and everything else is indented at least one space, with no tab characters):

    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = D:\oracle\product\10.1.0\Db_1)
    (PROGRAM = extproc)
    )
    (SID_DESC =
    (SID_NAME = orcl)
    (ORACLE_HOME = D:\oracle\product\10.1.0\Db_1)
    (GLOBAL_DBNAME=ORCL)
    )
    )

    In this example, the SID_DESC for the PLSExtProc was already created, so only the SID_DESC entry for the ORCL SID had to be created.


    c) Start the listener using the following command from your 10g ORACLE_HOME/bin directory:

    lsnrctl start

    (In Windows, starting a listener will also create the listener service if it does not already exist. Verify the listener service has been created and shows that it is started.)

    2. To correct the problem with the DB Control showing the database as unavailable or down, you will have to modify a emoms.properties and targets.xml files to reflect the new port for the listener.
    a) modify the ORACLE_HOME/hostname_sid/sysman/config/emoms.properties file, and change all of the references (usually 2) of port 1521 to the port number you specified in the listener.ora file. The two parameters that should contain the port numbers are:

    oracle.sysman.eml.mntr.emdRepPort
    oracle.sysman.eml.mntr.emdRepConnectDescriptor
    b) modify the ORACLE_HOME/hostname_sid/sysman/emd/targets.xml file. This file will contain two entries for port 1521. Make sure both of these values are changed to the correct listener port.

    3) Once these files have been updated, stop and restart the DB Control

    emctl stop dbconsole
    emctl start dbconsole

    This will force the DB Console components to reread the configuration files, and everything should communicate on the newly defined port.
    At this point, the DB Console should provide the correct status for the database.

  5. #5
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 554
    Points
    19 554
    Billets dans le blog
    25
    Par défaut
    1) Je me suis mal exprimé dans ma demande : pour emctl start/stop oms, j'avais déjà essayé, mais sans succès puisque je ne l'ai pas encore installé. En fait, je n'utilise pour l'instant que l'install de base sans OMS, mais c'est au niveau de la console standarde que j'expérimente ce problème. Je pensai, sans doute à tord, que la 10g installait un OMS par défaut

    C:\>emctl status dbconsole
    Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0
    Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.
    http://ntsmyinfoc1.fadace.ch:5500/em/console/aboutApplication
    Oracle Enterprise Manager 10g is running.
    ------------------------------------------------------------------
    Logs are generated in directory C:\oracle\10.1.0/ntsmyinfoc1.fadace.ch_INF1T/sysman/log


    2) Merci pour le lien métalink, mais il semble référer un problème lié au listener si le port par défaut n'est pas installé, et dans mon cas, c'est bien le port 1521 qui est utilisé.
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 43
    Points
    43
    Par défaut
    Salut,

    Non tu as tout à fait raison fadace, dans l'installation "par défaut", un "MINI" oms est installé pour que tu puisses administrer ta base via Database Control (en fait c'est un OC4J qui est installé).

    En ce qui concerne l'erreur, je referais une tentative de reconstruction via EMCA.

    Sinon, avant celà, tu peux toujours vérifier si les paramêtres de dbconsole sont bons dans le fichier emoms.properties (dans sysman/config) .

    Patmane
    don't worry, be happy!

  7. #7
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 554
    Points
    19 554
    Billets dans le blog
    25
    Par défaut
    Disons qu'il a quand même marché une bonne jounée...

    Que checker ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    # OMS login information
    oracle.sysman.eml.mntr.emdRepSID=%EM_REPOS_SID%
    oracle.sysman.eml.mntr.emdRepPwdEncrypted=false
    oracle.sysman.eml.mntr.emdRepPort=%EM_REPOS_PORT%
    oracle.sysman.eml.mntr.emdRepUser=%EM_REPOS_USER%
    oracle.sysman.eml.mntr.emdRepPwd=%EM_REPOS_PWD%
    oracle.sysman.eml.mntr.emdRepServer=%EM_REPOS_HOST%
    oracle.sysman.eml.mntr.emdRepConnectDescriptor=%EM_REPOS_CONNECTDESCRIPTOR%
     
    # From the old web.xml file
    oracle.sysman.emSDK.svlt.ConsoleServerHost=%HOSTNAME%
    oracle.sysman.emSDK.svlt.ConsoleServerPort=%EM_UPLOAD_PORT%
    # The https port dedicated to the receiver servlet using an EM Certificate 
    oracle.sysman.emSDK.svlt.ConsoleServerHTTPSPort=%EM_UPLOAD_HTTPS_PORT%
    oracle.sysman.emSDK.svlt.ConsoleServerName=%HOSTNAME%_Management_Service
     
    %SET_CONSOLE_MODE%oracle.sysman.emSDK.svlt.ConsoleMode=%CONSOLE_MODE%
    %USE_DB_CONSOLE%oracle.sysman.emSDK.sec.ReuseLogonPassword=true
    %USE_DB_CONSOLE%oracle.sysman.eml.mntr.emdRepDBName=%EM_TARGET_DBNAME%
    %USE_DB_CONSOLE%oracle.sysman.eml.mntr.emdRepRAC=false
     
    # iSQL*Plus integration
    oracle.sysman.db.isqlplusUrl=%ISQLPLUS_PROTOCOL%://%ISQLPLUS_HOST%:%ISQLPLUS_PORT%/isqlplus/dynamic
    oracle.sysman.db.isqlplusWebDBAUrl=%ISQLPLUS_PROTOCOL%://%ISQLPLUS_HOST%:%ISQLPLUS_PORT%/isqlplus/dba/dynamic
     
    # port specific ping command
    emdrep.ping.pingCommand=%EM_PING_COMMAND%
     
    # HTTP Proxy server to Oracle MetaLink
    %USE_HTTP_PROXY%proxyHost=%EM_PROXYHOST%
    %USE_HTTP_PROXY%proxyPort=%EM_PROXYPORT%
    %USE_HTTP_PROXY%dontProxyFor=%EM_DONTPROXYFOR%
     
    # For controlling the sharing of realtime metric collection
    oracle.sysman.emSDK.emd.rt.useMonitoringCred=true
     
    # The number of JDBC statements that's cached per repository
    # connection.  Setting it to 0 would turn off caching
    oracle.sysman.emRep.dbConn.statementCacheSize=30
     
    # The number of JDBC statements that's cached per direct-target admin
    # connection.  Setting it to 0 would turn off caching
    oracle.sysman.db.adm.conn.statementCacheSize=2
     
    # The number of JDBC statements that's cached per real-time database
    # connection used for performance monitorng
    oracle.sysman.db.perf.conn.statementCacheSize=30
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 43
    Points
    43
    Par défaut
    Surtout les paramêtres

    ils servent à définir le repository

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    emdRepServer
    emdRepSID
    emdRepConnectDescriptor
    emdRepUser
    Mais si tu me dis que l'administration de la base à marché 1 bon jour et que depuis tu as le message d'erreur, je ne suis plus sur que le problème vienne du côté dbconsole OC4J.

    Tu n'auraiss pas installé une autre version d'oracle entre temps (en fait je pense à une autre JRE et/ou JVM) ou d'une manière ou d'une autre une JRE/JVM. En effet la servlet utilise JDBC pour se connecter!
    Et sur un environnement Windows, c'est on ne peut plus sensible ces JVM, ce qui cause beaucoup de problème, notament du style celui que tu rencontre actuellement.. Enfin cela reste une supposition, mais d'expérience c'est souvent le cas!

    Courage
    Patmane
    don't worry, be happy!

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 43
    Points
    43
    Par défaut
    Salut,

    J'avais aussi identifié un problème, c'est que:
    - lorsque tu te connectes sur ton "database control framework" (c'est le beau nom officiel de ta console locale), il récupère dans son "local Management Repository" les informations de connexion à la base (sys par exemple) (qu'il appel "credential" pour les anglophones).
    Si il n'arrive pas à retrouver ces informations, il ne sait pas te dire dans quel état se trouve ta base (not mounted, mounted ou opened). Il te renvoie donc message: "état de base inconnue"!

    Ces information se trouve dans ta base, sous le schéma SYSMAN, dans une table nommée MGMT_CREDENTIALS2.

    PS: pour info, j'ai rencontré ce problème sur quasiment toutes les bases 10g sous environnement Windows.. Je ne l'ai JAMAIS rencontré sous UNIX ou LINUX!. Et comme je te le disais, cette console utilise JDBC pour accéder à la base... Sachant que cette couche JDBC est TRES TRES TRES fragile sous les OS Windows, ceci explique peut être cela!

    Courage
    Patmane
    don't worry, be happy!

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 43
    Points
    43
    Par défaut
    Ok j'ai pu enfin faire des tests aujourd'hui sur une 10g qui me posait le même problème.

    Alors ce que j'ai fais pour résoudre le problème:
    - j'ai inscris ma base dans le fichier listener.ora (je sais bien que l'inscription automatique de l'instance, .... Mais il se trouve que sous 10g, ta console est en fait un mini OAS.. et que donc tu as un mini agent... et que l'agent s'appuie sur... les inscriptions du fichiers listener.ora!)
    - j'ai inscris ma base dans le fichier tnsnames.ora (au cas ou il ne connaisse pas ezconnect!)
    - redémarré ma base puis le service dbconsole.

    Bon ceci dis c'est pas sur que cela fonctionne chez toi. Ce qui me parait interessant dans ces manips, c'est l'inscription dans listener.ora!

    Tiens nous au courant!
    Patmane
    don't worry, be happy!

  11. #11
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 554
    Points
    19 554
    Billets dans le blog
    25
    Par défaut
    Problématique
    Après quelques jours d'utilisation, et un certain nombre de modifications du fichier spfile, l'état de la base que la console donnait (NOMOUNT) ne correspondait pas à la réalité. Le problème venait d'une désynchronisation du global name et du domaine. Les tâches suivantes ont été effectuées pour palier à ce problème:

    Ma résolution
    Suppression des variables d'environnements systèmes ORACLE_HOME, ORACLE_BASE et ORACLE_SID mises par erreur dans la base de registre. Les données spécifiées dans la base de registre sous HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_10g sont suffisantes.
    Arrêt de la console via les services Windows
    Vidange des logs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    del %ORACLE_HOME%\%COMPUTERNAME%%USERDNSDOMAIN%_%ORACLE_SID%\sysman\log\*.*
    Check du fichier %ORACLE_HOME%\%COMPUTERNAME%%USERDNSDOMAIN%_%ORACLE_SID%\sysman\emd\targets.xml
    Suppression de la console
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     %ORACLE_HOME%\BIN>emca -x %ORACLE_SID%
    Régénération de la console
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     %ORACLE_HOME%\BIN>emca -r
    Au besoin, rafraichissement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     %ORACLE_HOME%\BIN>emctl reload
    Au besoin, redémarrage de la console après avoir activé les métriques en enlevant le commentaire de la ligne #enableMetricBrowser=true dans le fichier %ORACLE_HOME%\%COMPUTERNAME%%USERDNSDOMAIN%_%ORACLE_SID%\sysman\config\emd.properties et checker les métriques via l'URL se trouvant dans le même fichier, sous la clé EMD_URL,
    Mon problème venant visiblement de l'ajout du domaine, je passe donc le global name à la nouvelle valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     alter database rename global_name to %COMPUTERNAME%.%USERDNSDOMAIN%;
    et redémarre tout.
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  12. #12
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Changement statut entre 2 dates
    Par kimai dans le forum Access
    Réponses: 8
    Dernier message: 27/04/2011, 10h36
  2. Réponses: 7
    Dernier message: 10/12/2009, 09h43
  3. Réponses: 4
    Dernier message: 06/09/2006, 12h53
  4. Réponses: 6
    Dernier message: 31/08/2005, 17h27
  5. [10g][SQLplus] Effectuer un CONNECT dynamique?
    Par heffer69 dans le forum Oracle
    Réponses: 4
    Dernier message: 24/08/2005, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo