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