¿Hay un equivalente a la SHOW DATABASESdeclaración de MySQL ?
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$instancevista.
También puede usar la crsctlutilidad 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/oratabUnix. Esto debería contener todos los ORACLE_HOMEs instalados. Usted puede mirar en el interior de cada uno de los de $ORACLE_HOME/dbspara spfile<SID>.oray / o init<SID>.oraarchivos - habrá una para cada base de datos.
(Creo que puede encontrar el equivalente de la información en oratablas claves de registro de Windows a continuación HKEY_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.