Für unsere Anwendung haben wir eine Konfigurationsdatei für die Verbindung zur Oracle-Datenbank (URL, Benutzername, Passwort).
Der Start der Anwendung dauert 2-5 Minuten. Wenn etwas mit der Datenbank nicht stimmt, wird dies in den Protokollen angezeigt, aber ich muss 2-5 Minuten warten. Das ist viel Zeit.
Also möchte ich herausfinden schnell und einfach eine Möglichkeit, um festzustellen, ob die Datenbank in Ordnung und online ist.
Hast du eine Idee, wie ich das machen könnte?
Wenn Sie die folgende Abfrage ausführen:
SELECT INSTANCE_NAME, STATUS, DATABASE_STATUS FROM V$INSTANCE;
Es sollte zurückkehren:
INSTANCE_NAME STATUS DATABASE_STATUS
---------------- ------------ -----------------
YOUR_DBASE OPEN ACTIVE
ps -ef | grep pmon
Der PMON-Prozess (Process Monitor) überprüft alle anderen Hintergrundprozesse. Anschließend müssen Sie das Alarmprotokoll auf weitere Untersuchungen überprüfen.
Das erste zuerst: Sie müssen den Benutzernamen und das Kennwort kennen, um eine Verbindung zur Datenbank für Schritt 2 herstellen zu können
Überprüfen Sie, ob der Oracle-Prozess ausgeführt wird:
Auf Un * x:
ps -ef|grep pmon
Unter Windows:
tasklist|findstr /i Oracle
wenn der Befehl in jedem Fall eine Ausgabe zurückgibt, d. h. wenn der pmon/Oracle-Prozess in Ihrer Umgebung ausgeführt wird, wird die Datenbank ausgeführt.
Gehe zu Oracle_HOME/bin
und Renn:
./sqlplus /nolog
Wenn nach der Anmeldung Fehler auftreten, wird die Datenbank nicht ausgeführt:
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
Sie sollten ein Skript verwenden/schreiben, das eine Verbindung zum Server herstellt, und prüfen, ob Ihre Datenbank online ist. Hier werden die Oracle-Leute helfen. Führen Sie es einfach über ein Batch-/Shell-Skript aus (siehe Ausführen von Skripten über die SQL-Befehlszeile ) und sehen Sie, wie es ausgegeben wird. Wenn alles in Ordnung ist, haben Sie Ihre Antwort.
Oder versuchen Sie es einfach mit dem SQL * Plus-Client.
Es kann sinnvoll sein, auch eine tatsächliche Abfrage für die Datenbank auszuführen. Dies stellt nur sicher, dass Sie sowohl eine Verbindung herstellen als auch abfragen können. Ich würde es sehr einfach und schnell machen, wie zum Beispiel:
SELECT pk_column
FROM sometable
WHERE rownum <= 1
PMON überprüft alle bg-Prozesse
ps -ef|grep pmon
Außerdem können wir überprüfen, ob die Datenbank ausgeführt wird oder nicht.
ps -ef|grep mydb