it-swarm.it

Come verificare che il database Oracle sia attivo?

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?

14
Eugene

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
17
Solego

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.

12
ibre5041

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 un output, ovvero se il processo pmon/Oracle è in esecuzione nel proprio ambiente, il database è in esecuzione.

  2. Vai a Oracle_HOME/bin e corri:

     ./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
    
4
coz

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 (vedere 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.

3
Marian

Potrebbe essere saggio eseguire anche una query effettiva 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
Richard

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
0
user3818965