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

14

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 trouver 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?

Eugène
la source

Réponses:

17

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
Solego
la source
12

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.

ibre5041
la source
4

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, 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. Accédez à ORACLE_HOME/binet exécutez:

     ./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
    
coz
la source
1
sur Windows, le début de sqlplus serait sqlplus / nolog
Igor Vuković
3

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.

Marian
la source
0

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
Richard
la source
0

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
user3818965
la source
-1

Pour vérifier l'état général de la base de données, je recommande:

  1. Vérifiez si les processus de base de données sont en cours d'exécution. Par exemple, à partir d'un shell Unix, exécutez:

    $ ps -ef | grep pmon

    affichera les bases de données en cours d'exécution, les heures de démarrage et les utilisateurs Oracle qui ont démarré chacune.

  2. Vérifiez si les écouteurs fonctionnent avec $ ps -ef | grep tnset$ lsnrctl status LISTENER

  3. La sélection gv$resource_limitindiquera si la base de données a atteint une limite configurée.

  4. Pour vérifier s'il y a des erreurs de base de données, vous devez vérifier alert.log.

Pour plus de détails, consultez mon article de blog .

user134623
la source