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

¿Fue útil?

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_ (como KEY_OraDb10g_home1 , la cadena final es un nombre de inicio de Oracle).
      • Tiene un valor cuyo nombre comienza con ORA_ y termina con _AUTOSTART . (como ORA_XE_AUTOSTART , siendo la cadena del medio un nombre de instancia).

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top