2010-06-09 15 views

Respuesta

39

Se puede pensar en una "base de datos" mysql como un esquema/usuario en Oracle. Si tiene los privilegios, se pueden consultar las DBA_USERS Ver para ver la lista de esquemas.

+16

Algunas bases de datos de Oracle tienen muchos usuarios sin objetos. Para estos, y alternativa es SELECCIONAR PROPIETARIO DISTINTO DE ALL_OBJECTS; –

+1

+1 buena alternativa, solo tenga en cuenta que si no es un usuario con privilegios y emite esta consulta, verá solo aquellos PROPIETARIOS en los que tiene privilegios sobre al menos uno de sus objetos. – dpbradley

+4

Consultar a DBA_USERS da un "ORA-00942: tabla o vista no existe", ¿tal vez permiso de emisión? El del comentario "SELECCIONAR PROPIETARIO DISTINTO DE TODOS_OBJECTS;" está trabajando con las mismas credenciales de acceso. db 11g – a1an

13

Tal vez usted podría utilizar este punto de vista, pero no estoy seguro.

select * from v$database; 

Pero creo que solo le mostrará información sobre el db actual.

Otra opción, si el PP se ejecuta en Linux ... whould ser algo como esto:

SQL>!grep SID $TNS_ADMIN/tnsnames.ora | grep -v PLSExtProc 
+0

En primer lugar uno no trabaja en 11g: "ORA-00942: la tabla o vista no lo hace existe " – a1an

+2

Hola @ a1an. Sin duda, v $ database existe en 11g. Compruebe si está ejecutando la consulta con los derechos suficientes. Aquí tiene la documentación sobre la base de datos v $ para Oracle 11g. http://docs.oracle.com/cd/B28359_01/server.111/b28320/dynviews_1086.htm Algo, aquí tiene una publicación con un ejemplo sobre el uso de la base de datos v% en Oracle 11g. http://neeraj-dba.blogspot.com.es/2011/10/switchover-to-physical-standby-database.html ¡Buena suerte! – Jonathan

+1

Probablemente detenga un problema de permisos, ejecutándolo como sysdba funciona – a1an

48

SELECT NAME FROM v$database; muestra el nombre de la base de datos en Oracle

+0

Creo que esto es lo que la pregunta estaba haciendo. O al menos esto es lo que pienso cuando escucho "base de datos" ... en oposición al esquema (o usuario). –

11

Oracle no tiene un modelo simple base de datos como MySQL o MS SQL Server. Me parece lo más cercano es consultar la tabla y los usuarios correspondientes dentro de ellos.

Por ejemplo, tengo un espacio de tabla DEV_DB con todos mis 'bases de datos' reales dentro de ellos:

SQL> SELECT TABLESPACE_NAME FROM USER_TABLESPACES; 

El resultado es:

SYSTEM 
SYSAUX 
UNDOTBS1 
TEMP 
USERS 
EXAMPLE 
DEV_DB 

También es posible consultar la los usuarios en todos los espacios de tabla:

SQL> select USERNAME, DEFAULT_TABLESPACE from DBA_USERS; 

o dentro de un espacio de tabla específica (usando mi espacio de tabla DEV_DB como ejemplo):

SQL> select USERNAME, DEFAULT_TABLESPACE from DBA_USERS where DEFAULT_TABLESPACE = 'DEV_DB'; 

ROLES DEV_DB 
DATAWARE DEV_DB 
DATAMART DEV_DB 
STAGING DEV_DB 
0

no estoy claramente al respecto, pero por lo general un servidor tiene una base de datos (con muchos usuarios), si crea muchas bases de datos significan que se crea muchos casos, oyentes, ... así. Para que pueda comprobar su LISTENER para identificarlo.

En mis pruebas he creado 2 bases de datos (dbtest y dbtest_1) así que cuando puedo comprobar mi estado OYENTE que apareció de esta manera:

lsnrctl status 

....

ESTADO del oyente

.....

(DESCRIPTION = (DIRECCIÓN = (PROTOCOLO = tcp) (HOST = 10.10.20 0,20) (PORT = 1521)))

Servicios Resumen ...

servicio "dbTest" tiene 1 instancia (s).

Instancia "dbTest", el estado READY, tiene 1 manejador (s) para este servicio ...

servicio "dbtest1XDB" tiene 1 instancia (s).

Instancia "dbtest1", el estado READY, tiene 1 manejador (s) para este servicio ...

servicio "dbtest_1" tiene 1 instancia (s).

Instancia "dbtest1", el estado READY, tiene 1 manejador (s) para este servicio ... El comando se ha completado con éxito

Cuestiones relacionadas