web-dev-qa-db-fra.com

Comment vérifier que la base de données Oracle est opérationnelle?

Pour notre application, nous avons un fichier de configuration pour la connexion à la base de données Oracle (URL, nom d'utilisateur, mot de passe).

L'application prend 2 à 5 minutes pour démarrer. S'il y a un problème avec la base de données, je vois cela dans les journaux, mais je dois attendre 2 à 5 minutes. C'est beaucoup de temps.

Je veux donc découvrir rapidement et simplement un moyen de déterminer que la base de données est OK et en ligne.

Avez-vous une idée de comment je pourrais le faire?

14
Eugene

Si vous exécutez la requête suivante:

SELECT INSTANCE_NAME, STATUS, DATABASE_STATUS FROM V$INSTANCE;

Il devrait renvoyer:

INSTANCE_NAME    STATUS       DATABASE_STATUS
---------------- ------------ -----------------
YOUR_DBASE       OPEN         ACTIVE
17
Solego

ps -ef | grep pmon

Le processus PMON (moniteur de processus) vérifie tous les autres processus d'arrière-plan. Ensuite, vous devez consulter le journal des alertes pour une enquête plus approfondie.

12
ibre5041

Tout d'abord: vous devez connaître le nom d'utilisateur et le mot de passe pour vous connecter à la base de données pour l'étape 2

  1. Vérifiez les exécutions du processus Oracle:

    Sur Un * x:

    ps -ef|grep pmon
    

    Sous Windows:

    tasklist|findstr /i Oracle
    

    si la commande retourne dans tous les cas une sortie, c'est-à-dire si le processus pmon/Oracle s'exécute dans votre environnement, la base de données est en cours d'exécution.

  2. Aller à Oracle_HOME/bin et courir:

     ./sqlplus /nolog
    

    Si après la connexion, vous obtenez des erreurs, la base de données ne s'exécute pas:

    SQL*Plus: Release 11.2.0.1.0 Production on Sat Feb 31 21:61:61 2014
    Copyright (c) 1982, 2014, Oracle.  All rights reserved.
    Enter user-name: Oracle
    Enter password: 
    ERROR:
    ORA-01034: Oracle not available
    ORA-27101: shared memory realm does not exist
    Linux-x86_64 Error: 2: No such file or directory
    Process ID: 0
    Session ID: 0 Serial number: 0
    
4
coz

Vous devez utiliser/écrire un script qui se connectera au serveur et vérifiera si votre base de données est en ligne. Ici, les gars d'Oracle vous aideront. Il suffit de l'exécuter à partir d'un script batch/shell (voir Exécution de scripts à partir de la ligne de commande SQL ) et de voir sa sortie. Si tout va bien, vous avez votre réponse.

Ou essayez simplement avec le client SQL * Plus.

3
Marian

Il peut également être judicieux d'exécuter une requête réelle sur la base de données. Cela garantit simplement que vous pouvez vous connecter et interroger. Je voudrais en faire quelque chose de très simple et rapide, comme:

SELECT pk_column 
  FROM sometable
WHERE rownum <= 1
0
Richard

PMON vérifiera tous les processus bg

ps -ef|grep pmon

De plus, nous pouvons vérifier que la base de données fonctionne ou non.

ps -ef|grep mydb
0
user3818965