Detectar si una base de datos Oracle está instalada
-
08-07-2019 - |
Pregunta
Me preguntaba si había una manera de saber si una instancia de Oracle en un sistema tiene una base de datos instalada o no.
Esto es para un script de instalación, y necesito verificar que hay una base de datos real en su lugar antes de proceder con la carga de mi propio tablespace en esa base de datos. ¿Alguien ha abordado este problema antes?
Saludos
Solución
Verifique la existencia de un ORACLE_HOME. También es razonable esperar que este entorno se configure para la instalación, por lo que probar las variables de entorno y salir con un diagnóstico sensible (posiblemente sugiriendo que ejecutan oraenv) es un buen primer comienzo. Si tiene una ORACLE_HOME, ORACLE_SID u otra variable de entorno adecuada configurada, puede verificar la existencia de un hogar oracle y probar la conectividad y los permisos de la base de datos.
Otros consejos
Para Oracle 10g, en Windows:
- Verifique el registro:
- La clave
HKLM \ SOFTWARE \ ORACLE
debe existir. - Debe existir una subclave que:
- Tiene un nombre que comienza con
KEY_
(comoKEY_OraDb10g_home1
, la cadena final es un nombre de inicio de Oracle). - Tiene un valor cuyo nombre comienza con
ORA_
y termina con_AUTOSTART
. (comoORA_XE_AUTOSTART
, siendo la cadena del medio un nombre de instancia).
- Tiene un nombre que comienza con
- La clave
Cuidado, al instalar un cliente Oracle (sin una instancia de base de datos), crea entradas en el registro y puede establecer variables de entorno (como ORACLE_HOME
). Es por eso que el patrón anterior es un poco complicado.
Es muy probable que este patrón también funcione para Oracle 9i, y posiblemente para Oracle 8i.
Podría usar tnsping
para verificar si el escucha de la base de datos está activo, eso sería una buena indicación. Aparte de eso, ¿por qué no simplemente hacer una conexión de prueba? Si es parte de un proceso de instalación, puede solicitar al usuario que ingrese las credenciales de conexión apropiadas si no sabe cuáles serán de antemano.
Busque el archivo / etc / oratab para las casas de oráculo. Estas casas tienen instalado el software de la base de datos, así como el nombre de la base de datos de esa casa. Luego puede verificar si la base de datos es sólida o no al iniciarla.
No estoy seguro acerca de Oracle, pero para MySQL y PostgreSql hago lo siguiente:
$yum grouplist | grep SQL
Esto devuelve:
MySQL Database client
MySQL Database server
PostgreSQL Database client
PostgreSQL Database server
Así que supongo que deberías probar:
$yum grouplist | grep Orac