Wie kann ich überprüfen, ob die Oracle-Datenbank aktiv ist?

13

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.

Daher möchte ich schnell und einfach herausfinden, wie die Datenbank in Ordnung und online ist.

Hast du eine Idee, wie ich das machen könnte?

Eugene
quelle

Antworten:

16

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
Solego
quelle
12

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.

ibre5041
quelle
4

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

  1. Ü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, dh wenn der pmon / oracle-Prozess in Ihrer Umgebung ausgeführt wird, wird die Datenbank ausgeführt.

  2. Gehe zu ORACLE_HOME/binund renne:

     ./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
coz
quelle
1
unter Windows Start von sqlplus wäre sqlplus / nolog
Igor Vuković
3

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.

Marian
quelle
0

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
Richard
quelle
0

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
user3818965
quelle
-1

Um den allgemeinen Datenbankstatus zu überprüfen, empfehle ich:

  1. Überprüfen Sie, ob Datenbankprozesse ausgeführt werden. Beispiel: In einer Unix-Shell wird Folgendes ausgeführt:

    $ ps -ef | grep pmon

    zeigt die laufenden Datenbanken, Startzeiten und welche Oracle-Benutzer jeweils gestartet haben.

  2. Überprüfen Sie, ob Listener mit $ ps -ef | grep tnsund ausgeführt werden$ lsnrctl status LISTENER

  3. Durch Auswahl gv$resource_limitwird angezeigt , ob die Datenbank ein konfiguriertes Limit erreicht hat.

  4. Um zu überprüfen, ob Datenbankfehler aufgetreten sind, sollten Sie überprüfen alert.log.

Weitere Details finden Sie in meinem Blogbeitrag .

user134623
quelle