¿Cómo verificar que la base de datos Oracle esté activa?

14

Para nuestra aplicación tenemos un archivo de configuración para conectarse a la base de datos Oracle (URL, nombre de usuario, contraseña).

La aplicación tarda 2-5 minutos en iniciarse. Si hay algún problema con la base de datos, lo veo en los registros, pero tengo que esperar de 2 a 5 minutos. Esto es mucho tiempo

Por lo tanto, quiero encontrar de manera rápida y sencilla una forma de determinar que la base de datos está bien y en línea.

¿Tienes alguna idea de cómo podría hacerlo?

Eugene
fuente

Respuestas:

17

Si ejecuta la siguiente consulta:

SELECT INSTANCE_NAME, STATUS, DATABASE_STATUS FROM V$INSTANCE;

Debería volver:

INSTANCE_NAME    STATUS       DATABASE_STATUS
---------------- ------------ -----------------
YOUR_DBASE       OPEN         ACTIVE
Solego
fuente
12

ps -ef | grep pmon

El proceso PMON (monitor de proceso) verifica todos los demás procesos en segundo plano. Luego debe verificar el registro de alertas para una mayor investigación.

ibre5041
fuente
4

Primero lo primero: necesita saber el nombre de usuario y la contraseña para conectarse a la base de datos para el paso 2

  1. Compruebe que el proceso de Oracle se ejecuta:

    En Un * x:

    ps -ef|grep pmon

    En Windows:

    tasklist|findstr /i oracle

    si el comando en cualquier caso devuelve resultados, es decir, si el proceso pmon / oracle se está ejecutando en su entorno, la base de datos se está ejecutando.

  2. Ve ORACLE_HOME/biny corre:

     ./sqlplus /nolog

    Si después de iniciar sesión obtiene errores, la base de datos no se ejecuta:

    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
porque
fuente
1
en Windows el inicio de sqlplus sería sqlplus / nolog
Igor Vuković el
3

Debe usar / escribir un script que se conectará al servidor y ver si su base de datos está en línea. Aquí los chicos de Oracle ayudarán. Simplemente ejecútelo desde un script por lotes / shell (consulte Ejecución de scripts desde la línea de comandos de SQL ) y vea su salida. Si todo está bien, entonces tienes tu respuesta.

O simplemente intente con el cliente SQL * Plus.

Mariana
fuente
0

También podría ser conveniente ejecutar una consulta real en la base de datos. Esto solo garantiza que pueda conectarse y consultar. Lo convertiría en algo muy simple y rápido, como:

SELECT pk_column 
  FROM sometable
WHERE rownum <= 1
Ricardo
fuente
0

PMON verificará todos los procesos bg

ps -ef|grep pmon

Además, podemos verificar si la base de datos se está ejecutando o no.

ps -ef|grep mydb
usuario3818965
fuente
-1

Para verificar el estado general de la base de datos, recomiendo:

  1. Verifique si los procesos de la base de datos se están ejecutando. Por ejemplo, desde un shell de Unix, ejecutando:

    $ ps -ef | grep pmon

    mostrará las bases de datos en ejecución, los tiempos de inicio y qué usuarios de Oracle comenzaron cada uno.

  2. Compruebe si los oyentes se están ejecutando usando $ ps -ef | grep tnsy$ lsnrctl status LISTENER

  3. Al seleccionar gv$resource_limitse mostrará si la base de datos alcanzó algún límite configurado.

  4. Para verificar si hubo errores en la base de datos, debe verificar alert.log.

Para más detalles ver mi blog .

usuario134623
fuente