Come verificare che il database Oracle sia attivo?


14

Per la nostra applicazione abbiamo un file di configurazione per la connessione al database Oracle (URL, nome utente, password).

L'avvio dell'applicazione richiede 2-5 minuti. Se c'è qualcosa di sbagliato nel database vedo questo nei registri, ma devo aspettare 2-5 minuti. Questo è molto tempo.

Quindi voglio scoprire rapidamente e semplicemente un modo per determinare che il database è tutto OK e online.

Hai idea di come potrei farlo?

Risposte:


17

Se si esegue la query seguente:

SELECT INSTANCE_NAME, STATUS, DATABASE_STATUS FROM V$INSTANCE;

Dovrebbe restituire:

INSTANCE_NAME    STATUS       DATABASE_STATUS
---------------- ------------ -----------------
YOUR_DBASE       OPEN         ACTIVE

12

ps -ef | grep pmon

Il processo PMON (monitor di processo) controlla tutti gli altri processi in background. Quindi è necessario controllare il registro degli avvisi per ulteriori accertamenti.


4

Prima cosa: è necessario conoscere il nome utente e la password per connettersi al database per il passaggio 2

  1. Controlla l'esecuzione del processo Oracle:

    Su Un * x:

    ps -ef|grep pmon

    Su Windows:

    tasklist|findstr /i oracle

    se il comando in ogni caso restituisce output, ad esempio se il processo pmon / oracle è in esecuzione nel proprio ambiente, il database è in esecuzione.

  2. Vai a ORACLE_HOME/bined esegui:

     ./sqlplus /nolog

    Se dopo l'accesso si ottengono errori, il database non viene eseguito:

    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
    

1
su windows l'inizio di sqlplus sarebbe sqlplus / nolog
Igor Vuković

3

Dovresti usare / scrivere uno script che si collegherà al server e vedere se il tuo database è online. Qui i ragazzi di Oracle aiuteranno. Basta eseguirlo da uno script batch / shell (consultare Esecuzione di script dalla riga di comando SQL ) e vedere l'output. Se tutto va bene, allora hai la tua risposta.

O semplicemente prova con il client SQL * Plus.


0

Potrebbe essere saggio eseguire una query effettiva anche sul database. Questo garantisce solo la connessione e la query. Vorrei renderlo qualcosa di molto semplice e veloce, come ad esempio:

SELECT pk_column 
  FROM sometable
WHERE rownum <= 1

0

PMON controllerà tutti i processi bg

ps -ef|grep pmon

Inoltre, possiamo verificare che il database sia in esecuzione o meno.

ps -ef|grep mydb

-1

Per verificare lo stato generale del database, raccomando:

  1. Controlla se i processi del database sono in esecuzione. Ad esempio, da una shell Unix, in esecuzione:

    $ ps -ef | grep pmon

    mostrerà i database in esecuzione, i tempi di avvio e quali utenti Oracle hanno avviato ciascuno di essi.

  2. Controlla se i listener sono in esecuzione utilizzando $ ps -ef | grep tnse$ lsnrctl status LISTENER

  3. La selezione gv$resource_limitmostrerà se il database ha raggiunto un limite configurato.

  4. Per verificare se ci sono errori del database, è necessario verificare alert.log.

Per maggiori dettagli vedi il mio post sul blog .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.