¿Hay un equivalente a la SHOW DATABASES
declaración de MySQL ?
¿Es posible encontrar bases de datos en un clúster? es decir, bases de datos presentes en la red en algún otro sistema?
¿Podría analizar los archivos presentes en una instalación de Oracle para encontrar lo mismo?
Dadas las credenciales de acceso completas a un sistema Oracle, ¿cómo enumeraría todas las bases de datos que existen?
Respuestas:
No existe tal cosa. Puede consultar oyentes en una máquina (
lsnrctl status
) para ver qué servicios están registrados allí, pero eso no se asigna uno a uno a la base de datos (y podría haber múltiples oyentes en la misma máquina). De lo contrario, las herramientas comúnmente utilizadas se conectan a una instancia de base de datos, y una instancia pertenece a una sola base de datos.Si habla de clústeres de Oracle RAC, cada instancia conoce a sus pares (otras instancias que dan servicio a la misma base de datos) y puede encontrar las otras instancias actualmente iniciadas para esa base de datos utilizando la
gv$instance
vista.También puede usar la
crsctl
utilidad para enumerar los servicios (incluidas las bases de datos) que están registrados en el clúster y su estado.Si está hablando del software de agrupación de otro proveedor, estoy bastante seguro de que todos tienen este tipo de utilidades de administración de recursos para consultar.
Si está hablando de un montón de máquinas, entonces no, no hay una forma 100% confiable de enumerar todas las bases de datos en una red.
Para buscar bases de datos activas (es decir, iniciadas), busque
*_pmon_*
procesos en Unix (hay uno por instancia de base de datos) y servicios de Oracle en Windows.Para ubicar las instalaciones del software de base de datos Oracle, mire en
/etc/oratab
Unix. Esto debería contener todos losORACLE_HOME
s instalados. Usted puede mirar en el interior de cada uno de los de$ORACLE_HOME/dbs
paraspfile<SID>.ora
y / oinit<SID>.ora
archivos - habrá una para cada base de datos.(Creo que puede encontrar el equivalente de la información en
oratab
las claves de registro de Windows a continuaciónHKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
, pero no conozco su estructura).Ahora, por supuesto, si ha registrado toda su base de datos con un servidor OEM (Enterprise Manager) cuando los instaló, puede encontrar la lista completa allí, pero supongo que si está preguntando, ese no es el caso.
fuente
Oracle no tiene bases de datos sino esquemas, puede enumerarlos con
o algo como esto :
fuente
Simplemente hablando, no existe una analogía directa para las 'bases de datos' de MySQL o un 'clúster' en Oracle: la coincidencia más cercana es un 'esquema' pero eso sigue siendo muy diferente.
Aparentemente, esto va a cambiar en 12c con la introducción de bases de datos conectables:
fuente
Creo que una respuesta para futuros navegadores en * nix podría ser:
gato / etc / oratab
fuente
Simplemente conéctese a ASM y verifique la base de datos del cliente.
fuente
Si tiene bases de datos conectables (recomendado) en Oracle 12, puede hacer lo siguiente:
fuente
Para que la base de datos independiente obtenga la lista de bases de datos que se inician automáticamente después del reinicio del host:
o simplemente para obtener la lista de todas las bases de datos:
Para las bases de datos RAC, el siguiente método puede ser útil:
Además, como ya se mencionó, la base de datos en MySQL no es la misma que la base de datos en Oracle. En Oracle está más cerca del esquema, que se denomina contenedor para los objetos del usuario. Para obtener la lista de esquemas, puede usar la siguiente instrucción SQL:
o para obtener una lista de esquemas no relacionados con el sistema (disponible en Oracle RDBMS a partir de la versión 12c):
fuente