Consultas utiles en Oracle parte 2 de 2


¿Quién no tiene su chuleta de consultas útiles que se suelen utilizar en el día a día, y en nuestras aventuras y desventuras con un BBDD  Oracle? En esta segunda  entrega  vamos  a continuar con el  resumen de consultas SQL de Oracle,  basadas  la mayoría sobre las vistas del diccionario de Oracle,  y animo a todo el que quiera añadir otras que considere de utilidad a responder el post publicando las suyas, a ver si entre todos creamos un repositorio que podamos consultar desde cualquier lugar para facilitarnos la vida, o sacarnos de algún que otro apuro.

Continuando   con las  consultas generales de  parámetros de la BBDD    vamos a ver  una serie de consultas  para conocer  datos sobre la volumetría de lo que ocupan  nuestros datos en  la BBDD.

Consulta Oracle SQL para conocer el tamaño de los ficheros de datos de la base de datos

Veremos así el tamaño en MB ocupado en total

select sum(bytes)/1024/1024 MB from dba_data_files

Consulta Oracle SQL para conocer el tamaño ocupado por una tabla concreta sin incluir los índices de la misma

select sum(bytes)/1024/1024 MB from user_segments
where segment_type='TABLE' and segment_name='NOMBRETABLA'

Consulta Oracle SQL para conocer el tamaño ocupado por una tabla concreta incluyendo los índices de la misma

select sum(bytes)/1024/1024 Table_Allocation_MB from user_segments where segment_type in (‘TABLE’,’INDEX’) and (segment_name=’NOMBRETABLA’ or segment_name in (select index_name from user_indexes where table_name=’NOMBRETABLA’))

Consulta Oracle SQL para conocer el tamaño ocupado por una columna de una tabla

select sum(vsize('NOMBRECOLUMNA'))/1024/1024 MB from NOMBRETABLA

 Consulta Oracle SQL para conocer el espacio ocupado por usuario

SELECT owner, SUM(BYTES)/1024/1024 MB FROM DBA_EXTENTS
group by owner

Consulta Oracle SQL para conocer el espacio ocupado por los diferentes segmentos    (tablas, índices, undo, rollback, cluster, …)

SELECT SEGMENT_TYPE, SUM(BYTES)/1024/1024 MB FROM DBA_EXTENTS
group by SEGMENT_TYPE

Consulta Oracle SQL para conocer el espacio ocupado por todos los objetos de la base de datos,   muestra los objetos que más ocupan primero

SELECT SEGMENT_NAME, SUM(BYTES)/1024/1024 MB FROM DBA_EXTENTS
group by SEGMENT_NAME
order by 2 desc


Consulta Oracle SQL para el DBA de Oracle que muestra los tablespaces,   el espacio utilizado, el espacio libre y los ficheros de datos de los mismos

Select t.tablespace_name "Tablespace", t.status "Estado",
ROUND(MAX(d.bytes)/1024/1024,2) "MB Tamaño",
ROUND((MAX(d.bytes)/1024/1024) -
(SUM(decode(f.bytes, NULL,0, f.bytes))/1024/1024),2) "MB Usados",
ROUND(SUM(decode(f.bytes, NULL,0, f.bytes))/1024/1024,2) "MB Libres",
t.pct_increase "% incremento",
SUBSTR(d.file_name,1,80) "Fichero de datos"
FROM DBA_FREE_SPACE f, DBA_DATA_FILES d, DBA_TABLESPACES t
WHERE t.tablespace_name = d.tablespace_name AND
f.tablespace_name(+) = d.tablespace_name
AND f.file_id(+) = d.file_id GROUP BY t.tablespace_name,
d.file_name, t.pct_increase, t.status ORDER BY 1,3 DESC

Consultas  sobre el Diccionario de datos

Esta es una de las consultas mas potentes pues incluye todas las vistas y tablas de la Base de Datos. segun la version de la BBDD Oracle  puede llegar la consulta  a lanzar el resultados de unss 500 tablas.

Simplemente    para obtenerla podemos lanzar la siguiente consulta:

select * from dictionary

Estas son las principales  tablas en una  BBDD Oracle 9:

  • ALL_ALL_TABLES Descripción de todos los objetos y tablas relacionales accesibles para el usuario
  • ALL_APPLY Detalles sobre cada proceso de aplicación que se retira de la cola visible para el usuario actual
  • ALL_APPLY_CONFLICT_COLUMNS Detalles sobre la resolución de conflictos en tablas visibles para el usuario actual
  • ALL_APPLY_DML_HANDLERS Detalles sobre el controlador dml en tablas visibles para el usuario actual
  • ALL_APPLY_ERROR Transacciones de error que se generaron después de retirarse de la cola visible para el usuario actual
  • ALL_APPLY_KEY_COLUMNS Columnas de teclas alternativas para una tabla STREAMS visible para el usuario actual
  • ALL_APPLY_PARAMETERS Detalles sobre los parámetros de cada proceso de aplicación que se retira de la cola visible para el usuario actual
  • ALL_APPLY_PROGRESS Información sobre el progreso realizado por el proceso de solicitud que se retira de la cola visible para el usuario actual
  • ALL_ARGUMENTS Argumentos en un objeto accesible para el usuario
  • ALL_ASSOCIATIONS Todas las asociaciones disponibles para el usuario.
  • ALL_AUDIT_POLICIES Todas las políticas de auditoría detalladas en la base de datos ALL_BASE_TABLE_MVIEWS Todas las vistas materializadas con registro (s) en la base de datos que el usuario puede ver
  • ALL_CAPTURE Detalles sobre cada proceso de captura que almacena los cambios capturados en una cola visible para el usuario actual
  • ALL_CAPTURE_PARAMETERS Detalles sobre los parámetros para cada proceso de captura que almacena los cambios capturados en una cola visible para el usuario actual
  • ALL_CAPTURE_PREPARED_DATABASE ¿La base de datos local está preparada para la creación de instancias?
  • ALL_CAPTURE_PREPARED_SCHEMAS Todos los esquemas de usuario en la base de datos local que están preparados para la instanciación
  • ALL_CAPTURE_PREPARED_TABLES Todas las tablas visibles para el usuario actual que están preparadas para la instanciación
  • ALL_CATALOG Todas las tablas, vistas, sinónimos y secuencias accesibles para el usuario.
  • ALL_CLUSTERS Descripción de los clústeres accesibles para el usuario.
  • ALL_CLUSTER_HASH_EXPRESSIONS Funciones hash para todos los clústeres accesibles
  • ALL_COLL_TYPES Descripción de los tipos de colección con nombre accesibles para el usuario
  • ALL_COL_COMMENTS Comentarios en columnas de tablas y vistas accesibles
  • ALL_COL_PRIVS Subvenciones en columnas para las cuales el usuario es el otorgante, el concesionario, el propietario o un rol habilitado o PUBLIC es el concesionario
  • ALL_COL_PRIVS_MADE Donaciones en columnas para las cuales el usuario es propietario o otorgante
  • ALL_COL_PRIVS_RECD Otorga en columnas para las cuales el usuario, PUBLIC o rol habilitado es el concesionario
  • ALL_CONSTRAINTS Definiciones de restricciones en tablas accesibles
  • ALL_CONS_COLUMNS Información sobre columnas accesibles en definiciones de restricciones
  • ALL_CONS_OBJ_COLUMNS Lista de tipos a los que se restringe una columna o atributo de objeto en las tablas accesibles para el usuario
  • ALL_CONTEXT Descripción de todos los espacios de nombres de contexto activos en la sesión actual
  • ALL_DB_LINKS Enlaces de base de datos accesibles para el usuario
  • ALL_DEF_AUDIT_OPTS Opciones de auditoría para objetos recién creados
  • ALL_DEPENDENCIES Dependencias hacia y desde objetos accesibles para el usuario
  • ALL_DIMENSIONS Descripción de los objetos de dimensión accesibles para el DBA
  • ALL_DIM_ATTRIBUTES Representación de la relación entre un nivel de dimensión y una columna funcionalmente dependiente
  • ALL_DIM_CHILD_OF Representación de una relación jerárquica 1: n entre un par de niveles en una dimensión
  • ALL_DIM_HIERARCHIES Representación de una jerarquía de dimensiones
  • ALL_DIM_JOIN_KEY Representación de una unión entre dos tablas de dimensiones.
  • ALL_DIM_LEVELS Descripción de los niveles de dimensión visibles para DBA
  • ALL_DIM_LEVEL_KEY Representaciones de columnas de un nivel de dimensión
  • ALL_DIRECTORIES Descripción de todos los directorios accesibles para el usuario
  • ALL_ERRORS Errores actuales en objetos almacenados que el usuario puede crear
  • ALL_EVALUATION_CONTEXTS contextos de evaluación de reglas vistos por el usuario Tablas
  • ALL_EVALUATION_CONTEXT_TABLES en todos los contextos de evaluación de reglas vistos por el usuario
  • ALL_EVALUATION_CONTEXT_VARS variables en todos los contextos de evaluación de reglas vistos por el usuario
  • ALL_EXTERNAL_LOCATIONS Descripción de las ubicaciones de tablas externas accesibles para el usuario
  • ALL_EXTERNAL_TABLES Descripción de las tablas externas accesibles para el usuario ALL_INDEXES Descripciones de índices en tablas accesibles para el usuario
  • ALL_INDEXTYPES Todos los tipos de índice disponibles para el usuario
  • ALL_INDEXTYPE_COMMENTS Comentarios para tipos de índice definidos por el usuario
  • ALL_INDEXTYPE_OPERATORS Todos los operadores disponibles para el usuario
  • ALL THE_COLUMNS COLUMNAS que comprenden ÍNDICES en TABLAS accesibles
  • ALL_IND_EXPRESSIONS EXPRESIONES DE ÍNDICE FUNCIONALES en TABLAS accesibles
  • ALL_IND_PARTITIONS ALL_IND_SUBPARTITIONS ALL_INTERNAL_TRIGGERS Descripción de los disparadores internos en las tablas accesibles para el usuario
  • ALL_JOIN_IND_COLUMNS columnas de índice de unión que comprenden las condiciones de unión
  • ALL_LIBRARIES Descripción de bibliotecas accesibles para el usuario
  • ALL_LOBS Descripción de los LOB contenidos en tablas accesibles para el usuario
  • ALL_LOB_PARTITIONS ALL_LOB_SUBPARTITIONS ALL_LOB_TEMPLATES ALL_LOG_GROUPS Definiciones de grupos de registro en tablas accesibles
  • ALL_LOG_GROUP_COLUMNS Información sobre columnas en definiciones de grupos de registro
  • ALL_METHOD_PARAMS Descripción de los parámetros del método de los tipos accesibles para el usuario
  • ALL_METHOD_RESULTS «Descripción de los resultados del método de tipos accesibles al usuario «
  • ALL_MVIEWS Todas las vistas materializadas en la base de datos
  • ALL_MVIEW_AGGREGATES Descripción de los agregados de vista materializados accesibles para el usuario
  • ALL_MVIEW_ANALYSIS Descripción de las vistas materializadas accesibles para el usuario
  • ALL_MVIEW_DETAIL_RELATIONS Descripción de las tablas de detalles de la vista materializada accesibles para el usuario
  • ALL_MVIEW_JOINS «Descripción de una unión entre dos columnas en la cláusula WHERE de una vista materializada accesible para el usuario «
  • ALL_MVIEW_KEYS «Descripción de las columnas que aparecen en GROUP BY lista de una vista materializada accesible para el usuario «
  • ALL_MVIEW_LOGS Todos los registros de vista materializados en la base de datos que el usuario puede ver
  • ALL_MVIEW_REFRESH_TIMES Vistas materializadas y sus últimos tiempos de actualización para cada tabla maestra que el usuario puede ver
  • ALL_NESTED_TABLES Descripción de tablas anidadas en tablas accesibles para el usuario
  • ALL_OBJECTS Objetos accesibles para el usuario
  • ALL_OBJECT_TABLES Descripción de todas las tablas de objetos accesibles para el usuario
  • ALL_OBJ_COLATTRS Descripción de las columnas de objetos y atributos contenidos en las tablas accesibles para el usuario
  • ALL_OPANCILLARY Todos los operadores auxiliares disponibles para el usuario
  • ALL_OPARGUMENTS Todos los argumentos de los operadores disponibles para el usuario
  • ALL_OPBINDINGS Todas las funciones de enlace para operadores disponibles para el usuario
  • ALL_OPERATORS Todos los operadores disponibles para el usuario
  • ALL_OPERATOR_COMMENTS Comentarios para operadores definidos por el usuario
  • ALL_PARTIAL_DROP_TABS Todas las tablas con columnas descartadas parcialmente accesibles para el usuario
  • ALL_PART_COL_STATISTICS
  • ALL_PART_HISTOGRAMS
  • ALL_PART_INDEXES
  • ALL_PART_KEY_COLUMNS
  • ALL_PART_LOBS
  • ALL_PART_TABLES
  • ALL_PENDING_CONV_TABLES Todas las tablas accesibles para el usuario que no están actualizadas a la última versión de tipo
  • ALL_POLICIES Todas las políticas para objetos si el usuario tiene privilegios del sistema o posee los objetos
  • ALL_POLICY_CONTEXTS Todo el contexto de conducción de políticas definido para todos los sinónimos, tablas o vistas accesibles para el usuario
  • ALL_POLICY_GROUPS Todos los grupos de políticas definidos para cualquier sinónimo, tabla o vista accesible para el usuario
  • ALL_PROBE_OBJECTS
  • ALL_PROCEDURES Descripción de todos los procedimientos disponibles para el usuario.
  • ALL_PROPAGATION Propagación de secuencias vista por el usuario
  • ALL_PUBLISHED_COLUMNS
  • ALL_QUEUES Todas las colas accesibles para el usuario
  • ALL_QUEUE_PUBLISHERS
  • ALL_QUEUE_TABLES Todas las tablas de colas accesibles para el usuario
  • ALL_REFRESH Todos los grupos de actualización que el usuario puede tocar
  • ALL_REFRESH_CHILDREN Todos los objetos en grupos de actualización, donde el usuario puede tocar el grupo
  • ALL_REFRESH_DEPENDENCIES «Descripción de las tablas de detalles de las que dependen las vistas materializadas para actualizar»
  • ALL_REFS Descripción de las columnas REF contenidas en tablas accesibles para el usuario
  • ALL_REGISSTEM_MVIEWS Vistas materializadas remotas de tablas locales que el usuario puede ver
  • ALL_REGISSTEM_SNAPSHOTS Instantáneas remotas de tablas locales que el usuario puede ver
  • ALL_REGISTRY_BANNERS
  • ALL_REPAUDIT_ATTRIBUTE Información sobre atributos mantenidos automáticamente para la replicación
  • ALL_REPAUDIT_COLUMN Información sobre columnas en todas las tablas de sombra para tablas replicadas que son accesibles para el usuario
  • ALL_REPCAT
  • ALL_REPCATLOG Información sobre solicitudes de administración asincrónicas
  • ALL_REPCOLUMN Columnas de nivel superior replicadas (tabla) ordenadas alfabéticamente en orden ascendente
  • ALL_REPCOLUMN_GROUP Todos los grupos de columnas de tablas replicadas que son accesibles para el usuario
  • ALL_REPCONFLICT Todos los conflictos con las resoluciones disponibles para las tablas replicadas del usuario
  • ALL_REPDDL Argumentos que no caben en un único registro de registro repcat
  • ALL_REPFLAVORS Sabores definidos para grupos de objetos replicados
  • ALL_REPFLAVOR_COLUMNS Columnas replicadas en sabores
  • ALL_REPFLAVOR_OBJECTS Objetos replicados en sabores
  • ALL_REPGENERATED Objetos generados para admitir la replicación
  • ALL_REPGENOBJECTS Objetos generados para admitir la replicación
  • ALL_REPGROUP Información sobre grupos de objetos replicados
  • ALL_REPGROUPED_COLUMN Columnas en todos los grupos de columnas de tablas replicadas que son accesibles para el usuario
  • ALL_REPGROUP_PRIVILEGES Información sobre usuarios que están registrados para privilegios de grupo de objetos
  • ALL_REPKEY_COLUMNS Columnas primarias para una tabla que usa replicación a nivel de columna
  • ALL_REPOBJECT Información sobre objetos replicados
  • ALL_REPPARAMETER_COLUMN Todas las columnas utilizadas para resolver conflictos en tablas replicadas que son accesibles para el usuario
  • ALL_REPPRIORITY Valores y sus prioridades correspondientes en todos los grupos de prioridad accesibles para el usuario
  • ALL_REPPRIORITY_GROUP Información sobre todos los grupos prioritarios accesibles para el usuario
  • ALL_REPPROP Información de propagación sobre objetos replicados
  • ALL_REPRESOLUTION Descripción de todas las resoluciones de conflictos para tablas replicadas que son accesibles para el usuario
  • ALL_REPRESOLUTION_METHOD Todos los métodos de resolución de conflictos accesibles para el usuario
  • ALL_REPRESOLUTION_STATISTICS Estadísticas de resolución de conflictos para tablas replicadas que son accesibles para el usuario
  • ALL_REPRESOL_STATS_CONTROL Información sobre la recopilación de estadísticas para la resolución de conflictos para tablas replicadas que son accesibles para el usuario Información de replicación ALL_REPSCHEMA N-way
  • ALL_REPSITES Información de replicación N-way
  • ALL_RULES Reglas vistas por el usuario
  • ALL_RULESETS Reglas vistas por el usuario: mantenidas para compatibilidad con versiones anteriores
  • ALL_RULE_SETS Conjuntos de reglas vistas por el usuario
  • ALL_RULE_SET_RULES Reglas en todos los conjuntos de reglas que ve el usuario
  • ALL_SECONDARY_OBJECTS Todos los objetos secundarios para índices de dominio
  • ALL_SEQUENCES Descripción de las SECUENCIAS accesibles para el usuario Instantáneas de ALL_SNAPSHOTS a las que puede acceder el usuario
  • ALL_SNAPSHOT_LOGS Todos los registros de instantáneas en la base de datos que el usuario puede ver
  • ALL_SOURCE Fuente actual en objetos almacenados que el usuario puede crear
  • ALL_SOURCE_TABLES
  • ALL_SOURCE_TAB_COLUMNS
  • ALL_SQLJ_TYPES Descripción de los tipos accesibles para el usuario
  • ALL_SQLJ_TYPE_ATTRS Descripción de los atributos de los tipos accesibles para el usuario
  • ALL_SQLJ_TYPE_METHODS Descripción de los métodos de tipos accesibles para el usuario
  • ALL_STORED_SETTINGS Configuración de parámetros para objetos accesibles para el usuario
  • ALL_STREAMS_GLOBAL_RULES Reglas globales creadas en el proceso de captura / aplicación / propagación de secuencias que interactúan con la cola visible para el usuario actual
  • ALL_STREAMS_SCHEMA_RULES Reglas creadas por las API administrativas de secuencias en todos los esquemas de usuario
  • ALL_STREAMS_TABLE_RULES Reglas creadas por las API administrativas de secuencias en tablas visibles para el usuario actual
  • ALL_SUBPARTITION_TEMPLATES
  • ALL_SUBPART_COL_STATISTICS
  • ALL_SUBPART_HISTOGRAMS
  • ALL_SUBPART_KEY_COLUMNS
  • ALL_SUBSCRIBED_COLUMNS
  • ALL_SUBSCRIBED_TABLES
  • ALL_SUBSCRIPTIONS
  • ALL_SUMDELTA Entradas de carga de ruta directa accesibles para el usuario
  • ALL_SUMMARIES Descripción de los resúmenes accesibles para el usuario.
  • ALL_SYNONYMS Todos los sinónimos accesibles para el usuario
  • ALL_TABLES Descripción de tablas relacionales accesibles para el usuario
  • ALL_TAB_COLS Columnas de tablas, vistas y clústeres de usuarios
  • ALL_TAB_COLUMNS Columnas de tablas, vistas y clústeres de usuarios
  • ALL_TAB_COL_STATISTICS Columnas de tablas, vistas y clústeres de usuarios
  • ALL_TAB_COMMENTS Comentarios sobre tablas y vistas accesibles para el usuario
  • ALL_TAB_HISTOGRAMS Histogramas en columnas de todas las tablas visibles para el usuario
  • ALL_TAB_MODIFICATIONS Información sobre modificaciones a tablas
  • ALL_TAB_PARTITIONS
  • ALL_TAB_PRIVS «Donaciones sobre objetos para los cuales el usuario es el otorgante, el concesionario, el propietario, o un rol habilitado o PUBLIC es el concesionario «
  • ALL_TAB_PRIVS_MADE Subvenciones del usuario y subvenciones sobre objetos del usuario
  • ALL_TAB_PRIVS_RECD Otorga sobre objetos para los cuales el usuario, PUBLIC o rol habilitado es el concesionario
  • ALL_TAB_SUBPARTITIONS
  • ALL_TRIGGERS Disparadores accesibles para el usuario actual
  • ALL_TRIGGER_COLS Uso de columna en activadores del usuario o en activadores en las tablas del usuario
  • ALL_TYPES Descripción de los tipos accesibles para el usuario.
  • ALL_TYPE_ATTRS Descripción de los atributos de los tipos accesibles para el usuario.
  • ALL_TYPE_METHODS Descripción de los métodos de tipos accesibles para el usuario.
  • ALL_TYPE_VERSIONS Descripción de cada tipo de versión accesible para el usuario
  • ALL_UNUSED_COL_TABS Todas las tablas con columnas no utilizadas accesibles para el usuario
  • ALL_UPDATABLE_COLUMNS Descripción de todas las columnas actualizables
  • ALL_USERS Información sobre todos los usuarios de la base de datos.
  • ALL_USTATS Todas las estadísticas
  • ALL_VARRAYS Descripción de varrays en tablas accesibles para el usuario
  • ALL_VIEWS Descripción de vistas accesibles para el usuario
  • USER_ALL_TABLES Descripción de todos los objetos y tablas relacionales propiedad del usuario.
  • USER_AQ_AGENT_PRIVS
  • USER_ARGUMENTS Argumentos en un objeto accesible para el usuario
  • USER_ASSOCIATIONS Todas las asociaciones definidas por el usuario
  • USER_ATTRIBUTE_TRANSFORMATIONS
  • USER_AUDIT_OBJECT Registros de seguimiento de auditoría para declaraciones relativas a objetos, específicamente: tabla, clúster, vista, índice, secuencia, enlace de base de datos [pública], sinónimo [público], procedimiento, disparador, segmento de reversión, espacio de tabla, rol, usuario
  • USER_AUDIT_POLICIES Todas las políticas de auditoría detalladas para objetos en el esquema de usuario
  • USER_AUDIT_SESSION Todos los registros de seguimiento de auditoría relacionados con CONECTAR y DESCONECTAR
  • USER_AUDIT_STATEMENT Registros de seguimiento de auditoría relacionados con el sistema de concesión, revocación, auditoría, no auditoría y modificación
  • USER_AUDIT_TRAIL Entradas de seguimiento de auditoría relevantes para el usuario
  • USER_AWS Espacios de trabajo analíticos propiedad del usuario
  • USER_AW_PS espacios de páginas en espacios de trabajo analíticos propiedad del usuario
  • USER_BASE_TABLE_MVIEWS Todas las vistas materializadas con registro (s) propiedad del usuario en la base de datos
  • USER_CATALOG Tablas, Vistas, Sinónimos y Secuencias propiedad del usuario
  • USER_CLUSTERS Descripciones de los propios grupos de usuarios
  • USER_CLUSTER_HASH_EXPRESSIONS Funciones hash para los clústeres hash del usuario
  • USER_CLU_COLUMNS Asignación de columnas de tabla a columnas de clúster
  • USER_COLL_TYPES Descripción de los propios tipos de colección con nombre del usuario
  • USER_COL_COMMENTS Comentarios en columnas de tablas y vistas de usuarios
  • USER_COL_PRIVS Donaciones en columnas para las cuales el usuario es el propietario, otorgante o concesionario
  • USER_COL_PRIVS_MADE Todas las concesiones en columnas de objetos propiedad del usuario
  • USER_COL_PRIVS_RECD Donaciones en columnas para las cuales el usuario es el concesionario
  • USER_CONSTRAINTS Definiciones de restricciones en las propias tablas del usuario
  • USER_CONS_COLUMNS Información sobre columnas accesibles en definiciones de restricciones
  • USER_CONS_OBJ_COLUMNS Lista de tipos a los que está restringida una columna o atributo de objeto en las tablas que posee el usuario
  • USER_DB_LINKS Enlaces de bases de datos propiedad del usuario
  • USER_DEPENDENCIES Dependencias hacia y desde los objetos de un usuario
  • USER_DIMENSIONS Descripción de los objetos de dimensión accesibles para el DBA
  • USER_DIM_ATTRIBUTES «Representación de la relación entre un nivel de dimensión y una columna funcionalmente dependiente «
  • USER_DIM_CHILD_OF «Representación de una relación jerárquica 1: n entre un par de niveles en una dimensión «
  • USER_DIM_HIERARCHIES Representación de una jerarquía de dimensiones
  • USER_DIM_JOIN_KEY Representación de una unión entre dos tablas de dimensiones.
  • USER_DIM_LEVELS Descripción de los niveles de dimensión visibles para DBA
  • USER_DIM_LEVEL_KEY Representaciones de columnas de un nivel de dimensión
  • USER_ERRORS Errores actuales en objetos almacenados propiedad del usuario
  • USER_EVALUATION_CONTEXTS contextos de evaluación de reglas propiedad del usuario Tablas USER_EVALUATION_CONTEXT_TABLES en contextos de evaluación de reglas de usuario
  • USER_EVALUATION_CONTEXT_VARS variables en contextos de evaluación de reglas de usuario
  • USER_EXTENTS Extensiones que comprenden segmentos propiedad del usuario
  • USER_EXTERNAL_LOCATIONS Descripción de las ubicaciones de tablas externas del usuario
  • USER_EXTERNAL_TABLES Descripción de las propias tablas externas del usuario
  • USER_FREE_SPACE Extensiones libres en espacios de tabla accesibles para el usuario
  • USER_INDEXES Descripción de los propios índices del usuario.
  • USER_INDEXTYPES Todos los tipos de índice de usuario
  • USER_INDEXTYPE_COMMENTS Comentarios para tipos de índice definidos por el usuario
  • USER_INDEXTYPE_OPERATORS Todos los operadores de tipo de índice de usuario
  • USER_IND_COLUMNS COLUMNs que comprenden los ÍNDICES del usuario y los ÍNDICES en las TABLAS del usuario
  • USER_IND_EXPRESSIONS Expresiones de índice funcional en índices de usuario e índices en tablas de usuario
  • USER_IND_PARTITIONS
  • USER_IND_SUBPARTITIONS
  • USER_INTERNAL_TRIGGERS Descripción de los disparadores internos en las propias tablas del usuario.
  • USER_JOBS Todos los trabajos propiedad de este usuario
  • USER_JOIN_IND_COLUMNS columnas de índice de unión que comprenden las condiciones de unión
  • USER_LIBRARIES Descripción de las propias bibliotecas del usuario.
  • USER_LOBS Descripción de los LOB propios del usuario contenidos en sus propias tablas.
  • USER_LOB_PARTITIONS
  • USER_LOB_SUBPARTITIONS
  • USER_LOB_TEMPLATES
  • USER_LOG_GROUPS Definiciones de grupos de registros en las propias tablas del usuario
  • USER_LOG_GROUP_COLUMNS Información sobre columnas en definiciones de grupos de registro
  • USER_METHOD_PARAMS Descripción de los parámetros del método de los tipos propios del usuario.
  • USER_METHOD_RESULTS Descripción de los resultados del método de los tipos propios del usuario.
  • USER_MVIEWS Todas las vistas materializadas en la base de datos
  • USER_MVIEW_AGGREGATES Descripción de los agregados de vista materializados creados por el usuario
  • USER_MVIEW_ANALYSIS Descripción de las vistas materializadas creadas por el usuario
  • USER_MVIEW_DETAIL_RELATIONS «Descripción de la vista materializada tablas de detalles de la materializada vistas creadas por el usuario «
  • USER_MVIEW_JOINS «Descripción de una unión entre dos columnas en la Cláusula WHERE de una vista materializada creada por el usuario «
  • USER_MVIEW_KEYS «Descripción de las columnas que aparecen en GROUP BY lista de una vista materializada creada por el usuario «
  • USER_MVIEW_LOGS Todos los registros de vista materializados propiedad del usuario
  • USER_MVIEW_REFRESH_TIMES Vistas materializadas y sus últimos tiempos de actualización para cada tabla maestra que el usuario puede ver
  • USER_NESTED_TABLES Descripción de tablas anidadas contenidas en las propias tablas del usuario
  • USER_OBJECTS Objetos propiedad del usuario
  • USER_OBJECT_SIZE Tamaños, en bytes, de varios objetos pl / sql
  • USER_OBJECT_TABLES Descripción de las propias tablas de objetos del usuario.
  • USER_OBJ_AUDIT_OPTS Opciones de auditoría para las propias tablas y vistas del usuario
  • USER_OBJ_COLATTRS Descripción de las columnas y atributos de los objetos contenidos en las tablas propiedad del usuario.
  • USER_OPANCILLARY Todos los operadores auxiliares definidos por el usuario
  • USER_OPARGUMENTS Todos los argumentos de operador de operadores definidos por el usuario
  • USER_OPBINDINGS Todas las funciones o métodos de enlace en operadores definidos por el usuario
  • USER_OPERATORS Todos los operadores de usuarios
  • USER_OPERATOR_COMMENTS Comentarios para operadores definidos por el usuario
  • USER_OUTLINES Contornos almacenados propiedad del usuario
  • USER_OUTLINE_HINTS Sugerencias almacenadas en contornos propiedad del usuario
  • USER_PARTIAL_DROP_TABS Tablas de usuarios con columnas no utilizadas
  • USER_PART_COL_STATISTICS
  • USER_PART_HISTOGRAMS
  • USER_PART_INDEXES
  • USER_PART_KEY_COLUMNS
  • USER_PART_LOBS
  • USER_PART_TABLES
  • USER_PASSWORD_LIMITS Muestra los límites de contraseña del usuario
  • USER_PENDING_CONV_TABLES Todas las tablas de usuario que no están actualizadas a la última versión de tipo
  • USER_POLICIES Todas las políticas de seguridad de nivel de fila para sinónimos, tablas o vistas propiedad del usuario
  • USER_POLICY_CONTEXTS Todo el contexto de conducción de políticas definido para sinónimos, tablas o vistas en el esquema actual
  • USER_POLICY_GROUPS Todos los grupos de políticas definidos para cualquier sinónimo, tabla o vista
  • USER_PROCEDURES Descripción de los propios procedimientos de los usuarios.
  • USER_PROXIES Descripción de las conexiones que el usuario puede usar como proxy
  • USER_PUBLISHED_COLUMNS
  • USER_QUEUES Todas las colas propiedad del usuario.
  • USER_QUEUE_PUBLISHERS
  • USER_QUEUE_SCHEDULES
  • USER_QUEUE_TABLES Todas las tablas de colas creadas por el usuario
  • USER_REFRESH Todos los grupos de actualización
  • USER_REFRESH_CHILDREN Todos los objetos en grupos de actualización, donde el usuario posee el grupo de actualización
  • USER_REFS Descripción de las propias columnas REF del usuario contenidas en sus propias tablas.
  • USER_REGISSTEM_MVIEWS Vistas materializadas remotas de tablas locales que actualmente usan registros propiedad del usuario
  • USER_REGISSTEM_SNAPSHOTS Instantáneas remotas de tablas locales que actualmente usan registros propiedad del usuario
  • USER_REGISTRY
  • USER_REPAUDIT_ATTRIBUTE Información sobre atributos mantenidos automáticamente para la replicación
  • USER_REPAUDIT_COLUMN Información sobre columnas en todas las tablas de sombra para tablas replicadas del usuario
  • USER_REPCAT
  • USER_REPCATLOG Información sobre las solicitudes de administración asincrónicas del usuario actual
  • USER_REPCOLUMN Columnas replicadas para la tabla del usuario actual en orden ascendente
  • USER_REPCOLUMN_GROUP Todos los grupos de columnas de las tablas replicadas del usuario
  • USER_REPCONFLICT
  • USER_REPDDL Argumentos que no caben en un solo registro de registro de repcat
  • USER_REPFLAVORS Aromatiza al usuario actual creado para grupos de objetos replicados
  • USER_REPFLAVOR_COLUMNS Columnas replicadas de tablas del usuario actual en sabores
  • USER_REPFLAVOR_OBJECTS Objetos de usuario replicados en sabores
  • USER_REPGENERATED Objetos generados para que el usuario actual admita la replicación
  • USER_REPGENOBJECTS Objetos generados para que el usuario actual admita la replicación
  • USER_REPGROUP Información de replicación sobre el usuario actual
  • USER_REPGROUPED_COLUMN Columnas en todos los grupos de columnas de las tablas replicadas del usuario
  • USER_REPGROUP_PRIVILEGES Información sobre usuarios que están registrados para privilegios de grupo de objetos
  • USER_REPKEY_COLUMNS Columnas primarias para una tabla que usa replicación a nivel de columna
  • USER_REPOBJECT Información de replicación sobre los objetos del usuario actual
  • USER_REPPARAMETER_COLUMN Todas las columnas utilizadas para resolver conflictos en las tablas replicadas del usuario
  • USER_REPPRIORITY Valores y sus prioridades correspondientes en los grupos de prioridad del usuario
  • USER_REPPRIORITY_GROUP Información sobre los grupos de prioridad del usuario
  • USER_REPPROP Información de propagación sobre los objetos del usuario actual
  • USER_REPRESOLUTION Descripción de todas las resoluciones de conflictos para las tablas replicadas del usuario
  • USER_REPRESOLUTION_METHOD Todos los métodos de resolución de conflictos accesibles para el usuario
  • USER_REPRESOLUTION_STATISTICS Estadísticas de resolución de conflictos para tablas replicadas del usuario
  • USER_REPRESOL_STATS_CONTROL Información sobre la recopilación de estadísticas para la resolución de conflictos para las tablas replicadas del usuario
  • USER_REPSCHEMA Información de replicación N-way sobre el usuario actual
  • USER_REPSITES Información de replicación N-way sobre el usuario actual
  • USER_RESOURCE_LIMITS Muestra el límite de recursos del usuario
  • USER_RESUMABLE Información de sesión reanudable para el usuario actual
  • USER_ROLE_PRIVS Roles otorgados al usuario actual
  • USER_RSRC_CONSUMER_GROUP_PRIVS Cambiar privilegios para grupos de consumidores para el usuario
  • USER_RSRC_MANAGER_SYSTEM_PRIVS privilegios del sistema para el administrador de recursos para el usuario
  • REGLAS DEL USUARIO Reglas propiedad del usuario
  • USER_RULESETS Reglas de propiedad del usuario: mantenidas para compatibilidad con versiones anteriores
  • USER_RULE_SETS Conjuntos de reglas propiedad del usuario
  • USER_RULE_SET_RULES Reglas en conjuntos de reglas de usuario
  • USER_SECONDARY_OBJECTS Todos los objetos secundarios para índices de dominio
  • USER_SEGMENTS Almacenamiento asignado para todos los segmentos de la base de datos
  • USER_SEQUENCES Descripción de las SECUENCIAS propias del usuario
  • USER_SNAPSHOTS Instantáneas que el usuario puede ver
  • USER_SNAPSHOT_LOGS Todos los registros de instantáneas propiedad del usuario
  • USER_SOURCE Fuente de objetos almacenados accesibles para el usuario
  • USER_SOURCE_TABLES
  • USER_SOURCE_TAB_COLUMNS
  • USER_SQLJ_TYPES Descripción de los tipos propios del usuario.
  • USER_SQLJ_TYPE_ATTRS Descripción de los atributos de los tipos propios del usuario
  • USER_SQLJ_TYPE_METHODS Descripción de los métodos de los propios tipos de usuario.
  • USER_STORED_SETTINGS Configuración de parámetros para objetos propiedad del usuario
  • USER_SUBPARTITION_TEMPLATES
  • USER_SUBPART_COL_STATISTICS
  • USER_SUBPART_HISTOGRAMS
  • USER_SUBPART_KEY_COLUMNS
  • USER_SUBSCRIBED_COLUMNS
  • USER_SUBSCRIBED_TABLES
  • USER_SUBSCRIPTIONS
  • USER_SUMMARIES Descripción de los resúmenes creados por el usuario.
  • USER_SYNONYMS Los sinónimos privados del usuario
  • USER_SYS_PRIVS Privilegios del sistema otorgados al usuario actual
  • USER_TABLES Descripción de las propias tablas relacionales del usuario.
  • USER_TABLESPACES Descripción de espacios de tabla accesibles
  • USER_TAB_COLS Columnas de tablas, vistas y clústeres de usuarios
  • USER_TAB_COLUMNS Columnas de tablas, vistas y clústeres de usuarios
  • USER_TAB_COL_STATISTICS Columnas de tablas, vistas y clústeres de usuarios
  • USER_TAB_COMMENTS Comentarios sobre las tablas y vistas que posee el usuario
  • USER_TAB_HISTOGRAMS Histogramas en columnas de tablas de usuario
  • USER_TAB_MODIFICATIONS Información sobre modificaciones a tablas
  • USER_TAB_PARTITIONS
  • USER_TAB_PRIVS Donaciones en objetos para los cuales el usuario es el propietario, otorgante o concesionario
  • USER_TAB_PRIVS_MADE Todas las concesiones en objetos propiedad del usuario
  • USER_TAB_PRIVS_RECD Donaciones en objetos para los cuales el usuario es el concesionario
  • USER_TAB_SUBPARTITIONS
  • USUARIO_TRANSFORMACIONES
  • USER_TRIGGERS Disparadores propiedad del usuario
  • USER_TRIGGER_COLS Uso de columna en activadores del usuario
  • USER_TS_QUOTAS Cuotas de espacio de tabla para el usuario
  • USER_TYPES Descripción de los tipos propios del usuario.
  • USER_TYPE_ATTRS Descripción de los atributos de los tipos propios del usuario.
  • USER_TYPE_METHODS Descripción de los métodos de los propios tipos de usuario.
  • USER_TYPE_VERSIONS Descripción de cada versión de los tipos de usuario.
  • USER_UNUSED_COL_TABS Tablas de usuario con columnas no utilizadas
  • USER_UPDATABLE_COLUMNS Descripción de columnas actualizables
  • USER_USERS Información sobre el usuario actual
  • USER_USTATS Todas las estadísticas en tablas o índices propiedad del usuario
  • USER_VARRAYS Descripción de las matrices contenidas en las propias tablas del usuario.
  • USER_VIEWS Descripción de las propias vistas del usuario.
  • AUDIT_ACTIONS Tabla de descripción para códigos de tipo de acción de seguimiento de auditoría. Asigna números de tipo de acción a nombres de tipo de acción
  • COLUMN_PRIVILEGES «Donaciones en columnas para las cuales el usuario es el otorgante, el concesionario, el propietario o  un rol habilitado o PUBLIC es el concesionario «
  • DATABASE_COMPATIBLE_LEVEL Conjunto de parámetros compatibles con la base de datos a través de init.ora
  • DBMS_ALERT_INFO
  • DBMS_LOCK_ALLOCATED
  • DICCIONARY Descripción de las tablas y vistas del diccionario de datos.
  • DICT_COLUMNS Descripción de columnas en tablas y vistas de diccionario de datos DOBLE
  • GLOBAL_NAME Nombre de la base de datos global
  •  INDEX_HISTOGRAM  Estadísticas en teclas con recuento repetido
  • INDEX_STATS  Estadística en el b-tree
  • NLS_DATABASE_PARAMETERS Parámetros NLS permanentes de la base de datos
  • NLS_INSTANCE_PARAMETERS Parámetros NLS de la instancia
  • NLS_SESSION_PARAMETERS Parámetros NLS de la sesión del usuario
  • RESOURCE_COST Costo por cada recurso
  • ROLE_ROLE_PRIVS Roles que se otorgan a roles
  • ROLE_SYS_PRIVS Privilegios del sistema otorgados a roles
  • ROLE_TAB_PRIVS Privilegios de tabla otorgados a roles
  • SESSION_PRIVS Privilegios que el usuario ha establecido actualmente
  • SESSION_ROLES Roles que el usuario ha habilitado actualmente.
  • TABLE_PRIVILEGES «Donaciones sobre objetos para los cuales el usuario es el otorgante, el concesionario, el propietario, o un rol habilitado o PUBLIC es el concesionario «
  • ALL_HISTOGRAMS Sinónimo de ALL_TAB_HISTOGRAMS
  • ALL_JOBS Sinónimo de USER_JOBS
  • ALL_OUTLINES Sinónimo de USER_OUTLINES
  • ALL_OUTLINE_HINTS Sinónimo de USER_OUTLINE_HINTS
  • ALL_SNAPSHOT_REFRESH_TIMES Sinónimo de ALL_MVIEW_REFRESH_TIMES
  • CAT sinonimo para USER_CATALOG
  • CLU sinonimo para USER_CLUSTERS
  • COLS sinomimo para USER_TAB_COLUMNS
  • DICT Sinónimo de DICCIONARIO
  • GV $ ACTIVE_INSTANCES Sinónimo de GV_ $ ACTIVE_INSTANCES
  • GV $ ACTIVE_SESS_POOL_MTH Sinónimo de GV_ $ ACTIVE_SESS_POOL_MTH
  • GV_ $ AW_CALC  Sinónimo de GV_ $ AW_CALC
  •  GV $ AW_OLAPSinónimo de  GV_ $ AW_OLAP
  • GV $ AW_SESSION_INFO Sinónimo de GV_ $ AW_SESSION_INFO
  • GV $ BH Sinónimo de GV_ $ BH
  • GV $ LOADISTAT Sinónimo de GV_ $ LOADISTAT
  • GV $ LOCK_ACTIVITY Sinónimo de GV_ $ LOCK_ACTIVITY
  • GV $ MAX_ACTIVE_SESS_TARGET_MTH Sinónimo de GV_ $ MAX_ACTIVE_SESS_TARGET_MTH
  • GV $ MLS_PARAMETERS Sinónimo de GV_ $ MLS_PARAMETERS
  • GV $ NLS_PARAMETERS Sinónimo de GV_ $ NLS_PARAMETERS
  • GV $ NLS_VALID_VALUES Sinónimo de GV_ $ NLS_VALID_VALUES
  • GV $ OPTION Sinónimo de GV_ $ OPTION
  • GV $ PARALLEL_DEGREE_LIMIT_MTH Sinónimo de GV_ $ PARALLEL_DEGREE_LIMIT_MTH
  • GV $ PQ_SESSTAT Sinónimo de GV_ $ PQ_SESSTAT
  • GV $ PQ_TQSTAT Sinónimo de GV_ $ PQ_TQSTAT
  • GV $ QUEUEING_MTH Sinónimo de GV_ $ QUEUEING_MTH
  • GV $ RSRC_CONSUMER_GROUP Sinónimo de GV_ $ RSRC_CONSUMER_GROUP
  • GV $ RSRC_CONSUMER_GROUP_CPU_MTH Sinónimo de GV_ $
  • RSRC_CONSUME_GROUP_CPU_MTH
  • GV $ RSRC_PLAN Sinónimo de GV_ $ RSRC_PLAN
  • GV $ RSRC_PLAN_CPU_MTH Sinónimo de GV_ $ RSRC_PLAN_CPU_MTH
  • GV $ SESSION_LONGOPS Sinónimo de GV_ $ SESSION_LONGOPS
  • GV $ TEMPORARY_LOBS Sinónimo de GV_ $ TEMPORARY_LOBS
  • GV $ TIMEZONE_NAMES Sinónimo de GV_ $ TIMEZONE_NAMES
  • GV $ VERSION Sinónimo de GV_ $ VERSION
  •  IND Sinónimo para USER_INDEXES
  •  OBJ Sinónimo para USER_OBJECTS
  •  SEQ Sinónimo para USER_SEQUENCES
  • SM $ VERSION Sinónimo de SM_ $ VERSION
  •  SYN Sinónimo para USER_SYNONYMS
  •  TABS Sinónimo para USER_TABLES
  • USER_HISTOGRAMS Sinónimo de USER_TAB_HISTOGRAMS
  • USER_SNAPSHOT_REFRESH_TIMES Sinónimo de USER_MVIEW_REFRESH_TIMES
  • V $ ACTIVE_INSTANCES Sinónimo de V_ $ ACTIVE_INSTANCES
  • V $ ACTIVE_SESS_POOL_MTH Sinónimo de V_ $ ACTIVE_SESS_POOL_MTH
  • V $ AW_CALC Sinónimo de V_ $ AW_CALC
  • V $ AW_OLAP Sinónimo de V_ $ AW_OLAP
  • V $ AW_SESSION_INFO Sinónimo de V_ $ AW_SESSION_INFO
  • V $ BH Sinónimo de V_ $ BH
  • V $ INSTANCE Sinónimo de V_ $ INSTANCE
  • V $ LOADISTAT Sinónimo de V_ $ LOADISTAT
  • V $ LOADPSTAT Sinónimo de V_ $ LOADPSTAT
  • V $ LOCK_ACTIVITY Sinónimo de V_ $ LOCK_ACTIVITY
  • V $ MAX_ACTIVE_SESS_TARGET_MTH Sinónimo de V_ $ MAX_ACTIVE_SESS_TARGET_MTH
  • V $ MLS_PARAMETERS Sinónimo de V_ $ MLS_PARAMETERS
  • V $ NLS_PARAMETERS Sinónimo de V_ $ NLS_PARAMETERS
  • V $ NLS_VALID_VALUES Sinónimo de V_ $ NLS_VALID_VALUES
  • V $ OPTION Sinónimo de V_ $ OPTION
  • V $ PARALLEL_DEGREE_LIMIT_MTH Sinónimo de V_ $ PARALLEL_DEGREE_LIMIT_MTH
  • V $ PARAMETER Sinónimo de V_ $ PARAMETER
  • V $ PQ_SESSTAT Sinónimo de V_ $ PQ_SESSTAT
  • V $ PQ_TQSTAT Sinónimo de V_ $ PQ_TQSTAT
  • V $ QUEUEING_MTH Sinónimo de V_ $ QUEUEING_MTH
  • V $ RSRC_CONSUMER_GROUP Sinónimo de V_ $ RSRC_CONSUMER_GROUP
  • V $ RSRC_CONSUMER_GROUP_CPU_MTH Sinónimo de V_ $ RSRC_CONSUMER_GROUP_CPU_MTH
  • V $ RSRC_PLAN Sinónimo de V_ $ RSRC_PLAN
  • V $ RSRC_PLAN_CPU_MTH Sinónimo de V_ $ RSRC_PLAN_CPU_MTH
  • V $ SESSION Sinónimo de V_ $ SESSION
  • V $ SESSION_CONNECT_INFO Sinónimo de V_ $ SESSION_CONNECT_INFO
  • V $ SESSION_LONGOPS Sinónimo de V_ $ SESSION_LONGOPS
  •  V $ SQLAREA Sinónimo de  V_ $ SQLAREA
  •  V $ SQLTEXT Sinónimo para V_ $ SQLTEXT
  • V $ SYSTEM_PARAMETER Sinónimo de V_ $ SYSTEM_PARAMETER
  • V $ TEMPORARY_LOBS Sinónimo de V_ $ TEMPORARY_LOBS
  • V $ TIMEZONE_NAMES Sinónimo de V_ $ TIMEZONE_NAMES
  • V $ VERSION Sinónimo de V_ $ VERSIONGV $ LOADPSTAT Sinónimo de GV_ $ LOADPSTAT

Basándonos en el resultado  anterior  vamos a  ver algunas consultas sencillas:

  • Podemos lanzar  una consulta  que muestra los datos de una tabla especificada.En este caso filtramos  por todas las tablas que lleven la cadena «XXX»: select * from ALL_ALL_TABLES where upper(table_name) like ‘%XXX%’
  • Tambien podemos lanzar un consulta  que muestra las descripciones de los campos de una tabla especificada, peor en este caso con todas las tablas que lleven la cadena «XXX»:select * from ALL_COL_COMMENTS where upper(table_name) like ‘%XXX%’
  • Consulta para conocer las tablas propiedad del usuario actual: select * from user_tables
  • Consulta  para conocer todos los objetos propiedad del usuario conectado a Oracle select * from user_catalog
  • Consulta Oracle SQL para conocer los productos Oracle instalados y la versión   select * from product_component_version
  • Consulta Oracle SQL para conocer los roles y privilegios por roles : select * from role_sys_privs
  • Consulta Oracle SQL para conocer las reglas de integridad y columna a la que afectan:   select constraint_name, column_name from sys.all_cons_columns
  • Consulta Oracle SQL para conocer las tablas de las que es propietario un usuario, en este caso «xxx»   SELECT table_owner, table_name from sys.all_synonyms where table_owner like ‘xxx’. Otra consulta Oracle SQL como la anterior, pero de otra forma más efectiva  contra  las(tablas de las que es propietario un usuario: SELECT DISTINCT TABLE_NAME  FROM ALL_ALL_TABLES WHERE OWNER LIKE ‘HR’
  •  Consulta Oracle SQL que muestra los usuarios de Oracle y datos suyos    (fecha de creación, estado, id, nombre, tablespace temporal,…)  Select * FROM dba_users

  • Consulta Oracle SQL para conocer todos los tablespaces   select * from V$TABLESPACE 
  • Consulta Oracle SQL para conocer la memoria Share_Pool libre y usada     select name,to_number(value) bytes   from v$parameter where name =’shared_pool_size’ union all select name,bytes  from v$sgastat where pool = ‘shared pool’ and name = ‘free memory’

Consulta Oracle SQL para obtener todas las funciones de Oracle: NVL, ABS, LTRIM, …

SELECT distinct object_name
FROM all_arguments
WHERE package_name = 'STANDARD'
order by object_name



Consulta Oracle SQL para conocer tablespaces y propietarios de los mismos

select owner, decode(partition_name, null, segment_name,
segment_name || ':' || partition_name) name,
segment_type, tablespace_name,bytes,initial_extent,
next_extent, PCT_INCREASE, extents, max_extents
from dba_segments
Where 1=1 And extents > 1 order by 9 desc, 3

Cursores abiertos por usuario

select b.sid, a.username, b.value Cursores_Abiertos

from v$session a,

v$sesstat b,

v$statname c

where c.name in (‘opened cursors current’)

and b.statistic# = c.statistic#

and a.sid = b.sid

and a.username is not null

and b.value >0

order by 3

ULTIMAS  CONSULTAS LANZADAS CONTRA LA BBDD

Sentencias SQL completas ejecutadas con un texto determinado en el SQL

SELECT c.sid, d.piece, c.serial#, c.username, d.sql_text

FROM v$session c, v$sqltext d

WHERE c.sql_hash_value = d.hash_value

and upper(d.sql_text) like ‘%WHERE CAMPO LIKE%’

ORDER BY c.sid, d.piece

Ultima consulta

SELECT module,
sql_text,
username,
disk_reads_per_exec,
buffer_gets,
disk_reads,
parse_calls,
sorts,
executions,
rows_processed,
hit_ratio,
first_load_time,
sharable_mem,
persistent_mem,
runtime_mem,
cpu_time,
elapsed_time,
address,
hash_value
FROM
(SELECT module,
sql_text ,
u.username ,
ROUND((s.disk_reads/DECODE(s.executions,0,1, s.executions)),2) disk_reads_per_exec,
s.disk_reads ,
s.buffer_gets ,
s.parse_calls ,
s.sorts ,
s.executions ,
s.rows_processed ,
100 - ROUND(100 * s.disk_reads/greatest(s.buffer_gets,1),2) hit_ratio,
s.first_load_time ,
sharable_mem ,
persistent_mem ,
runtime_mem,
cpu_time,
elapsed_time,
address,
hash_value
FROM sys.v_$sql s,
sys.all_users u
WHERE s.parsing_user_id =u.user_id
AND UPPER(u.username) NOT IN ('SYS','SYSTEM')
ORDER BY 4 DESC
)
WHERE --MODULE like '[email protected]%' and rownum <= 20

Últimas consultas SQL ejecutadas en Oracle y usuario que las ejecutó

SELECT DISTINCT vs.sql_text,
vs.sharable_mem,
vs.persistent_mem,
vs.runtime_mem,
vs.sorts,
vs.executions,
vs.parse_calls,
vs.module,
vs.buffer_gets,
vs.disk_reads,
vs.version_count,
vs.users_opening,
vs.loads,
TO_CHAR(to_date(vs.first_load_time, 'YYYY-MM-DD/HH24:MI:SS'),'MM/DD HH24:MI:SS') first_load_time,
rawtohex(vs.address) address,
vs.hash_value hash_value ,
rows_processed ,
vs.command_type,
vs.parsing_user_id ,
OPTIMIZER_MODE ,
au.USERNAME parseuser
FROM v$sqlarea vs ,
all_users au
WHERE (parsing_user_id != 0)
AND (au.user_id(+) =vs.parsing_user_id)
AND (executions >= 1)
ORDER BY buffer_gets/executions DESC
Con esta interesante consulta no solo obtenemos casi toda la ultima consulta lanzada  por el usuario  sino también otros datos interesantes en cuanto a la ultima ejecución;
  • sharable_mem
  • persistent_mem
  • .runtime_mem
  • sorts
  • executions
  • parse_calls
  • module
  • buffer_gets
  • disk_reads
  • version_count
  • users_opening
  • loads
  • first_load_time en formato fecha hora
  •  address
  • hash_value
  • rows_processed
  • command_type
  • parsing_user_id
  • OPTIMIZER_MODE
  • USERNAME parseuser

Una sentencia SQL concreta (filtrado por sid)

SELECT c.sid, d.piece, c.serial#, c.username, d.sql_text
FROM v$session c, v$sqltext d
WHERE c.sql_hash_value = d.hash_value
and sid = 105
ORDER BY c.sid, d.piece
Anuncio publicitario

Como instalar un servidor de BBD y no morir en el intento


PostgreSQL, también llamado Postgres, es un sistema de gestión de bases de datos relacional orientado a objetos y de código abierto, publicado bajo la licencia PostgreSQL,​ similar a la BSD o la MIT.

Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado por una empresa o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre o apoyados por organizaciones comerciales denominada el PGDG (PostgreSQL Global Development Group).

 

Instalación PostgreSQL

Empezaremos descargando pgAdmin desde este enlace: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads#windows

Una vez en la página, seleccionamos la versión PostgreSQL deseada y sistema operativo con el que estamos trabajando

En el caso de W10 ,la ultima version es la 13.1  pero en muchos casos  por compatibiliad   podria ser  necesario  versiones mas antiguas   motivo por el cual   hay disponibles  para descargar  desde  la 9.3.25  hasta 13.1 tanto para Mac como para Windows  .

 


Pulsamos en el botón download now y se iniciará la descarga del instaladorun ejecutable.

Una vez descargado, vamos a instalar pgAdmin en nuestro equipo, veremos una pantalla como la que muestro a continuación.

Ya sabemos que hacer, pulsamos «Siguiente», seleccionando el directorio donde queremos realizar la instalación ( pordefecto C:\Program Files\PostgreSQL\13)  y pulsamos «Siguiente» un par de veces más hasta que el proceso de instalación comience.

Al terminar, nos preguntará si queremos instalar Stack Builder u otros compoenentes   que viene npor defecto.

 

Puulsamos siguinte para contunuar la instalacion.

A continuacion ,es interesante saber la ubicacion donde se almacenara  la BBDD  propiamente que el asistente permite cambiar

 


Ahora  nos pide la clave del administrador de la BBDD

 

Tambien es personalizable el puerto donde servira el interfaz de administracion ( por defecto es el puerto 5432)

 

Ya solo nos queda la configuración regional y empezara la instalación   propiamente dicha  hasta que veamos el mensaje  de finalización de la instalación y tras un rato habrá concluido la instalación de modo  que desde este momento ya tendremos PostgreSQL instalado en nuestro equipo.

 

Al terminar de la instalación , reiniciaremos  el pc, y en la primera ejecución es posible que Stack builder pida proseguir el resto de instalación.

 

Primeros pasos con el gestor de PostgreSQL pgAdmin.

Una vez finalizado el proceso de instalación, ya podemos abrir nuestro programa. Al abrir por primera vez el gestor de bases de datos comprueba si existe una nueva versión  ( en caso por ejemplo de haber instalado alguna version anterior,en cuyo caso pulsamos sobre el texto «here» y nos abrirá en otra ventana del gestor la página para actualizar nuestra versión.Una vez completada la descarga, podemos cerrar la ventana del gestor e ir donde hayamos descargado el ejecutable para lanzarlo. Aquí más de lo mismo, aceptamos las condiciones e instalamos el contenido donde deseemos. Para tenerlo todo bien organizado he hecho la instalación en el directorio raíz donde instalé PostgreSQL.

Al finalizar la instalación se abrirá automáticamente otra ventana del gestor de bases de datos pgAdmin donde ya no aparecerá la advertencia de actualización.

Trabajando con el gestor de PostgreSQL pgAdmin.

Para empezar a trabajar con pgAdmin tan solo tenemos que pulsar sobre el símbolo (+) correspondiente a «Servers» localizado en la parte superior izquierda. Y a continuación pulsaremos sobre el símbolo (+) correspondiente a «PostgreSQL 9.6». Veremos que el icono del aspa roja cambia por el logo del elefante, esto quiere decir que nuestro servidor está levantado.

Recordemos que el puerto utilizado por PostgreSQL es el 5432.

Creando perfil y nueva base de datos.

Pulsamos botón derecho en «Login/Group Roles»->»Create»->»Login/Group Role», y creamos el perfil deseado. Yo he creado un perfil llamado igual que mi usuario de windows ya que por defecto vamos a estar atacando a las bases de datos desde cmd con este perfil.

Ponemos en la casilla «General» el nombre, insertamos en la casilla «Definition» una contraseña para este nuevo perfil y ponemos en la casilla de «Privilegios» todo a YES. Bien pues si pulsamos sobre el botón «Guardar» ya disponemos de perfil para conectar a las bases de datos de PostgreSQL.

Ahora vamos a crear una base de datos de testeo para hacer nuestras pruebas. Para ello pulsamos botón derecho sobre «Database»->»Create»->»Database». En la pestaña «General»->»Database» ponemos el nombre  de la base de datos, yo la he llamado «test» y le damos permisos sobre ella al usuario creado anteriormente, por lo tanto lo seleccionamos del desplegable.

Pulsamos sobre el botón «Save» y listo, ya tenemos los preparativos para poder trabajar.

Comprobando acceso desde cmd a las bases de datos de Postgresql.

Abrimos una ventana de consola con permisos de administrador y accedemos a la ruta donde tenemos nuestro binario de PostgreSQL y tecleamos lo siguiente: psql — h

D:\Program Files\PostgreSQL\9.6\bin>psql -- test
Contraseña:

Con esto le estamos diciendo a PostgreSQL que queremos acceder mediante consola a la base de datos test y para ello nos pide una contraseña. La contraseña que pide es la relacionada con el que estamos trabajando (en mi caso el de windows que fue el perfil que creamos en pgAdmin en el paso anterior).

Ahora ya podemos realizar cualquier tipo de consulta mediante cmd.

Creando nuestra primera tabla en PostgreSQL.

Ya que tenemos la interface gráfica pgAdmin, vamos a crear desde aquí nuestra primera tabla y campos. También utilizaremos alguna consulta que devuelva datos a modo gráfico.

Pulsamos sobre el símbolo (+) de la base de datos «test» -> símbolo (+) de Schemas -> símbolo (+) de public. ahora pulsamos con el botón derecho sobre «Tables»->Create->Table.
A continuación asignamos un nombre a la tabla y pulsamos el botón «Save». Llegados aquí pulsamos con el botón derecho sobre la tabla y seleccionamos Create->Column.

Ahora ya sabemos crear tablas y crear columnas. Tan solo queda hacer una simple select y el resultado que veremos será similar a la siguiente imagen.

Comandos de interes para ejecutar desde consola.

1 – psql \l :: Te muestra las bases de datos existentes.
2 – psql \d :: Te muestra las relaciones (tablas, secuencias, etc.) existentes en la base de datos.
3 – psql \d [nombre_tabla] :: Para ver la descripción (nombre de columnas, tipo de datos, etc.) de una tabla.
4 – psql \c [nombre_bd] :: Para conectarte a otra base de datos.
5 – psql SHOW search_path; :: Para ver la ruta de búsqueda actual.
6 – psql SET search_path TO [nombre_esquema]; :: Para actualizar la ruta de busqueda.
7 – psql \q :: Para salir de psql.

 

 

Consultas útiles Oracle parte 1 de 2


¿Quién no tiene su chuleta de consultas útiles que se suelen utilizar en el día a día, y en nuestras aventuras y desventuras con un BBDD  Oracle?

En este pequeño  post vamos  a ver un resumen de consultas SQL de Oracle,  basadas  la mayoría sobre las vistas del diccionario de Oracle,  y animo a todo el que quiera añadir otras que considere de utilidad a responder el post publicando las suyas, a ver si entre todos creamos un repositorio que podamos consultar desde cualquier lugar para facilitarnos la vida, o sacarnos de algún que otro apuro.

 

 

Consulta Oracle SQL sobre la vista que muestra el estado de la base de datos

En primer lugar veamos  uan simple consulta muy general para    ver como esta la BBDD  en el momento de la consulta  .

 

La  consulta es bastante sencilla:

select * from v$instance




Con esta interesante consulta podemos  ver el numero de la instancia y su sombre , la version de BBDD, el tiempo desde el que esta arrancada la BBDD y es  estado en general  de la BBDD

Esa vista es tan interesante que de hecho se usa otra consulta Oracle SQL que muestra si la base de datos está abierta  :

select status from v$instance






Consulta Oracle SQL sobre la vista que muestra los parámetros generales de Oracle

Si queremos leer unos  258 parámetros generales de una BBDD  Oracle v 9   , en efecto  podemos recuperar  sus valores directamente con la siguiente consulta:

select * from v$system_parameter






De esta  consulta podemos obtener valores muy  interesantes ,como podemos ver en la pantalla anterior. De hecho basada en esa vista , podemos recuperar  algunos  de los mas importantes   simplemente filtrando  por el campo «name«.   A continuación   aquí algunas de las mas destacadas: 

  • Si solo queremos  conocer la Versión de Oracle   lanzaremos esta consulta

select value from v$system_parameter where name = ‘compatible’

  • Si solo queremos  conocer  la Ubicación y nombre del fichero spfile

select value from v$system_parameter where name = ‘spfile’

  • Esta Consulta Oracle SQL es  para conocer la Ubicación y número de ficheros de control

select value from v$system_parameter where name = ‘control_files

 
  • Y por ultimo una consulta Oracle SQL para conocer el Nombre de la base de datos

select value from v$system_parameter where name = ‘db_name’

 

 

Una vista muy parecida  a v$system  es la vista  v$parameter  ,la cual nos permite ver parámetros de Oracle, valor actual y su descripción

 

SELECT v.name, v.value value, decode(ISSYS_MODIFIABLE, 'DEFERRED',

'TRUE', 'FALSE') ISSYS_MODIFIABLE, decode(v.isDefault, 'TRUE', 'YES',

'FALSE', 'NO') "DEFAULT", DECODE(ISSES_MODIFIABLE, 'IMMEDIATE',

'YES','FALSE', 'NO', 'DEFERRED', 'NO', 'YES') SES_MODIFIABLE,

DECODE(ISSYS_MODIFIABLE, 'IMMEDIATE', 'YES', 'FALSE', 'NO',

'DEFERRED', 'YES','YES') SYS_MODIFIABLE , v.description

FROM V$PARAMETER v

WHERE name not like 'nls%' ORDER BY 1


 




Consulta Oracle SQL sobre la vista que muestra las conexiones actuales a Oracle


Ahora  vamos   a ver la vista v$session . La vista V$SESSION es la base de toda la información relacionada con el estado actual del sistema:

  • ¿Cuántas sesiones hay actualmente corriendo en la base de datos?
  • ¿Qué consulta se está ejecutando?
  • ¿Cuánto tardan en ejecutarse estas consultas?
 V$SESSION es el primer lugar cuando DBA comienza a buscar información relacionada con el rendimiento  e información de la ejecución de las consultas, un DBA puede llegar a consultar un centenar de veces al día esta vista, así que puede ser interesante inspeccionar su contenido


 Como casi todas las consultas que vamos a ver ,para visualizar  el resultado de esta consulta  es necesario entrar con privilegios de administrador


Veamos una consulta general para obtener los usuarios conectados a la BBDD;

select osuser, username, machine, program from v$session order by osuser




También sobre esa misma vista podemos lanzar una consulta  que muestra el número de conexiones actuales a Oracle    agrupado por aplicación que realiza la  conexión:

 

select program Aplicacion, count(program) Numero_Sesiones

from v$session

group by program

order by Numero_Sesiones desc



Otra consulta interesante  basada en la vista v$session ,  es la siguiente que  muestra los usuarios de Oracle conectados y el número de sesiones por usuario:

select username Usuario_Oracle, count(username) Numero_Sesiones

from v$session

group by username

order by Numero_Sesiones desc






Cada vez que se conecta a los datos se crea una sesión en la base de datos para realizar sus operaciones. Un DBA puede ver fácilmente esto consultando la vista de sistema V$SESSION.

Para ello  podemos lanzar  la siguiente consulta (en el caso del entorno RAC, DBA debe utilizar GV$SESSION en lugar de V$SESSION).

selectcount(*),type fromv$sessiongroup by type;

 

 

Puede utilizar la consulta siguiente para identificar qué usuario está creando un número alto de sesiones.

select SID,USERNAME,COMMAND,PROCESS,TERMINAL,PROGRAM from v$session where type=’USER’;

 

 

 

  • SID es la ID de la sesión, USERNAME es el nombre del usuario de la base de datos.
  • Process es el número de proceso. 
  • Terminal es el nombre del sistema que esta ejecutando la consulta. 
  • Program muestra el nombre del programa que esta usando la consulta.



Consultas  sobre el Diccionario de datos

Esta es una de las consultas mas potentes pues incluye todas las vistas y tablas de la Base de Datos. segun la version de la BBDD Oracle  puede llegar la consulta  a lanzar el resultados de unss 500 tablas.

Simplemente    para obtenerla podemos lanzar la siguiente consulta:

select * from dictionary

 

Este es resultado obtenido  lanzado  contra una BBDD Oracle 9:

 

TABLE_NAME COMMENTS
ALL_ALL_TABLES Description of all object and relational tables accessible to the user
ALL_APPLY Details about each apply process that dequeues from the queue visible to the current user
ALL_APPLY_CONFLICT_COLUMNS Details about conflict resolution on tables visible to the current user
ALL_APPLY_DML_HANDLERS Details about the dml handler on tables visible to the current user
ALL_APPLY_ERROR Error transactions that were generated after dequeuing from the queue visible to the current user
ALL_APPLY_KEY_COLUMNS Alternative key columns for a STREAMS table visible to the current user
ALL_APPLY_PARAMETERS Details about parameters of each apply process that dequeues from the queue visible to the current user
ALL_APPLY_PROGRESS Information about the progress made by the apply process that dequeues from the queue visible to the current user
ALL_ARGUMENTS Arguments in object accessible to the user
ALL_ASSOCIATIONS All associations available to the user
ALL_AUDIT_POLICIES All fine grained auditing policies in the database
ALL_BASE_TABLE_MVIEWS All materialized views with log(s) in the database that the user can see
ALL_CAPTURE Details about each capture process that stores the captured changes in a queue visible to the current user
ALL_CAPTURE_PARAMETERS Details about parameters for each capture process that stores the captured changes in a queue visible to the current user
ALL_CAPTURE_PREPARED_DATABASE Is the local database prepared for instantiation?
ALL_CAPTURE_PREPARED_SCHEMAS All user schemas at the local database that are prepared for instantiation
ALL_CAPTURE_PREPARED_TABLES All tables visible to the current user that are prepared for instantiation
ALL_CATALOG All tables, views, synonyms, sequences accessible to the user
ALL_CLUSTERS Description of clusters accessible to the user
ALL_CLUSTER_HASH_EXPRESSIONS Hash functions for all accessible clusters
ALL_COLL_TYPES Description of named collection types accessible to the user
ALL_COL_COMMENTS Comments on columns of accessible tables and views
ALL_COL_PRIVS Grants on columns for which the user is the grantor, grantee, owner,
 or an enabled role or PUBLIC is the grantee
ALL_COL_PRIVS_MADE Grants on columns for which the user is owner or grantor
ALL_COL_PRIVS_RECD Grants on columns for which the user, PUBLIC or enabled role is the grantee
ALL_CONSTRAINTS Constraint definitions on accessible tables
ALL_CONS_COLUMNS Information about accessible columns in constraint definitions
ALL_CONS_OBJ_COLUMNS List of types an object column or attribute is constrained to in the tables accessible to the user
ALL_CONTEXT Description of all active context namespaces under the current session
ALL_DB_LINKS Database links accessible to the user
ALL_DEF_AUDIT_OPTS Auditing options for newly created objects
ALL_DEPENDENCIES Dependencies to and from objects accessible to the user
ALL_DIMENSIONS Description of the dimension objects accessible to the DBA
ALL_DIM_ATTRIBUTES Representation of the relationship between a dimension level and
 a functionally dependent column
ALL_DIM_CHILD_OF Representaion of a 1:n hierarchical relationship between a pair of levels in
 a dimension
ALL_DIM_HIERARCHIES Representation of a dimension hierarchy
ALL_DIM_JOIN_KEY Representation of a join between two dimension tables. 
ALL_DIM_LEVELS Description of dimension levels visible to DBA
ALL_DIM_LEVEL_KEY Representations of columns of a dimension level
ALL_DIRECTORIES Description of all directories accessible to the user
ALL_ERRORS Current errors on stored objects that user is allowed to create
ALL_EVALUATION_CONTEXTS rule evaluation contexts seen by user
ALL_EVALUATION_CONTEXT_TABLES tables in all rule evaluation contexts seen by the user
ALL_EVALUATION_CONTEXT_VARS variables in all rule evaluation contexts seen by the user
ALL_EXTERNAL_LOCATIONS Description of the external tables locations accessible to the user
ALL_EXTERNAL_TABLES Description of the external tables accessible to the user
ALL_INDEXES Descriptions of indexes on tables accessible to the user
ALL_INDEXTYPES All indextypes available to the user
ALL_INDEXTYPE_COMMENTS Comments for user-defined indextypes
ALL_INDEXTYPE_OPERATORS All operators available to the user
ALL_IND_COLUMNS COLUMNs comprising INDEXes on accessible TABLES
ALL_IND_EXPRESSIONS FUNCTIONAL INDEX EXPRESSIONs on accessible TABLES
ALL_IND_PARTITIONS
ALL_IND_SUBPARTITIONS
ALL_INTERNAL_TRIGGERS Description of the internal triggers on the tables accessible to the user
ALL_JOIN_IND_COLUMNS Join Index columns comprising the join conditions
ALL_LIBRARIES Description of libraries accessible to the user
ALL_LOBS Description of LOBs contained in tables accessible to the user
ALL_LOB_PARTITIONS
ALL_LOB_SUBPARTITIONS
ALL_LOB_TEMPLATES
ALL_LOG_GROUPS Log group definitions on accessible tables
ALL_LOG_GROUP_COLUMNS Information about columns in log group definitions
ALL_METHOD_PARAMS Description of method parameters of types accessible
to the user
ALL_METHOD_RESULTS Description of method results of types accessible
to the user
ALL_MVIEWS All materialized views in the database
ALL_MVIEW_AGGREGATES Description of the materialized view aggregates accessible to the user
ALL_MVIEW_ANALYSIS Description of the materialized views accessible to the user
ALL_MVIEW_DETAIL_RELATIONS Description of the materialized view detail tables accessible to the user
ALL_MVIEW_JOINS Description of a join between two columns in the
WHERE clause of a materialized view accessible to the user
ALL_MVIEW_KEYS Description of the columns that appear in the GROUP BY
list of a materialized view accessible to the user
ALL_MVIEW_LOGS All materialized view logs in the database that the user can see
ALL_MVIEW_REFRESH_TIMES Materialized views and their last refresh times  for each master table that the user can look at
ALL_NESTED_TABLES Description of nested tables in tables accessible to the user
ALL_OBJECTS Objects accessible to the user
ALL_OBJECT_TABLES Description of all object tables accessible to the user
ALL_OBJ_COLATTRS Description of object columns and attributes contained in the tables accessible to the user
ALL_OPANCILLARY All ancillary operators available to the user
ALL_OPARGUMENTS All arguments of the operators available to the user
ALL_OPBINDINGS All binding functions for operators available to the user
ALL_OPERATORS All operators available to the user
ALL_OPERATOR_COMMENTS Comments for user-defined operators
ALL_PARTIAL_DROP_TABS All tables with patially dropped columns accessible to the user
ALL_PART_COL_STATISTICS
ALL_PART_HISTOGRAMS
ALL_PART_INDEXES
ALL_PART_KEY_COLUMNS
ALL_PART_LOBS
ALL_PART_TABLES
ALL_PENDING_CONV_TABLES All tables accessible to the user which are not upgraded to the latest type version
ALL_POLICIES All policies for objects if the user has system privileges or owns the objects
ALL_POLICY_CONTEXTS All policy driving context defined for all synonyms, tables, or views accessable to the user
ALL_POLICY_GROUPS All policy groups defined for any synonym, table or view accessable to the user
ALL_PROBE_OBJECTS
ALL_PROCEDURES Description of all procedures available to the user
ALL_PROPAGATION Streams propagation seen by the user
ALL_PUBLISHED_COLUMNS
ALL_QUEUES All queues accessible to the user
ALL_QUEUE_PUBLISHERS
ALL_QUEUE_TABLES All queue tables accessible to the user
ALL_REFRESH All the refresh groups that the user can touch
ALL_REFRESH_CHILDREN All the objects in refresh groups, where the user can touch the group
ALL_REFRESH_DEPENDENCIES Description of the detail tables that materialized views depend on for
refresh
ALL_REFS Description of REF columns contained in tables accessible to the user
ALL_REGISTERED_MVIEWS Remote materialized views of local tables that the user can see
ALL_REGISTERED_SNAPSHOTS Remote snapshots of local tables that the user can see
ALL_REGISTRY_BANNERS
ALL_REPAUDIT_ATTRIBUTE Information about attributes automatically maintained for replication
ALL_REPAUDIT_COLUMN Information about columns in all shadow tables for replicated tables which are accessible to the user
ALL_REPCAT
ALL_REPCATLOG Information about asynchronous administration requests
ALL_REPCOLUMN Replicated top-level columns (table) sorted alphabetically in ascending order
ALL_REPCOLUMN_GROUP All column groups of replicated tables which are accessible to the user
ALL_REPCONFLICT All conflicts with available resolutions for user’s replicated tables
ALL_REPDDL Arguments that do not fit in a single repcat log record
ALL_REPFLAVORS Flavors defined for replicated object groups
ALL_REPFLAVOR_COLUMNS Replicated columns in flavors
ALL_REPFLAVOR_OBJECTS Replicated objects in flavors
ALL_REPGENERATED Objects generated to support replication
ALL_REPGENOBJECTS Objects generated to support replication
ALL_REPGROUP Information about replicated object groups
ALL_REPGROUPED_COLUMN Columns in the all column groups of replicated tables which are accessible to the user
ALL_REPGROUP_PRIVILEGES Information about users who are registered for object group privileges
ALL_REPKEY_COLUMNS Primary columns for a table using column-level replication
ALL_REPOBJECT Information about replicated objects
ALL_REPPARAMETER_COLUMN All columns used for resolving conflicts in replicated tables which are accessible to the user
ALL_REPPRIORITY Values and their corresponding priorities in all priority groups which are accessible to the user
ALL_REPPRIORITY_GROUP Information about all priority groups which are accessible to the user
ALL_REPPROP Propagation information about replicated objects
ALL_REPRESOLUTION Description of all conflict resolutions for replicated tables which are accessible to the user
ALL_REPRESOLUTION_METHOD All conflict resolution methods accessible to the user
ALL_REPRESOLUTION_STATISTICS Statistics for conflict resolutions for replicated tables which are accessible to the user
ALL_REPRESOL_STATS_CONTROL Information about statistics collection for conflict resolutions for replicated tables which are accessible to the user
ALL_REPSCHEMA N-way replication information
ALL_REPSITES N-way replication information
ALL_RULES Rules seen by the user
ALL_RULESETS Rulesets seen by the user: maintained for backward compatibility
ALL_RULE_SETS Rule sets seen by the user
ALL_RULE_SET_RULES Rules in all rule sets seen by the user
ALL_SECONDARY_OBJECTS All secondary objects for domain indexes
ALL_SEQUENCES Description of SEQUENCEs accessible to the user
ALL_SNAPSHOTS Snapshots the user can access
ALL_SNAPSHOT_LOGS All snapshot logs in the database that the user can see
ALL_SOURCE Current source on stored objects that user is allowed to create
ALL_SOURCE_TABLES
ALL_SOURCE_TAB_COLUMNS
ALL_SQLJ_TYPES Description of types accessible to the user
ALL_SQLJ_TYPE_ATTRS Description of attributes of types accessible to the user
ALL_SQLJ_TYPE_METHODS Description of methods of types accessible to the user
ALL_STORED_SETTINGS Parameter settings for objects accessible to the user
ALL_STREAMS_GLOBAL_RULES Global rules created on the streams capture/apply/propagation process that interact with the queue visible to the current user
ALL_STREAMS_SCHEMA_RULES Rules created by streams administrative APIs on all user schemas
ALL_STREAMS_TABLE_RULES Rules created by streams administrative APIs on tables visible to the current user
ALL_SUBPARTITION_TEMPLATES
ALL_SUBPART_COL_STATISTICS
ALL_SUBPART_HISTOGRAMS
ALL_SUBPART_KEY_COLUMNS
ALL_SUBSCRIBED_COLUMNS
ALL_SUBSCRIBED_TABLES
ALL_SUBSCRIPTIONS
ALL_SUMDELTA Direct path load entries accessible to the user
ALL_SUMMARIES Description of the summaries accessible to the user
ALL_SYNONYMS All synonyms accessible to the user
ALL_TABLES Description of relational tables accessible to the user
ALL_TAB_COLS Columns of user’s tables, views and clusters
ALL_TAB_COLUMNS Columns of user’s tables, views and clusters
ALL_TAB_COL_STATISTICS Columns of user’s tables, views and clusters
ALL_TAB_COMMENTS Comments on tables and views accessible to the user
ALL_TAB_HISTOGRAMS Histograms on columns of all tables visible to user
ALL_TAB_MODIFICATIONS Information regarding modifications to tables
ALL_TAB_PARTITIONS
ALL_TAB_PRIVS Grants on objects for which the user is the grantor, grantee, owner,
 or an enabled role or PUBLIC is the grantee
ALL_TAB_PRIVS_MADE User’s grants and grants on user’s objects
ALL_TAB_PRIVS_RECD Grants on objects for which the user, PUBLIC or enabled role is the grantee
ALL_TAB_SUBPARTITIONS
ALL_TRIGGERS Triggers accessible to the current user
ALL_TRIGGER_COLS Column usage in user’s triggers or in triggers on user’s tables
ALL_TYPES Description of types accessible to the user
ALL_TYPE_ATTRS Description of attributes of types accessible to the user
ALL_TYPE_METHODS Description of methods of types accessible to the user
ALL_TYPE_VERSIONS Description of each type version accessible to the user
ALL_UNUSED_COL_TABS All tables with unused columns accessible to the user
ALL_UPDATABLE_COLUMNS Description of all updatable columns
ALL_USERS Information about all users of the database
ALL_USTATS All statistics
ALL_VARRAYS Description of varrays in tables accessible to the user
ALL_VIEWS Description of views accessible to the user
USER_ALL_TABLES Description of all object and relational tables owned by the user’s
USER_AQ_AGENT_PRIVS
USER_ARGUMENTS Arguments in object accessible to the user
USER_ASSOCIATIONS All assocations defined by the user
USER_ATTRIBUTE_TRANSFORMATIONS
USER_AUDIT_OBJECT Audit trail records for statements concerning objects, specifically: table, cluster, view, index, sequence,  [public] database link, [public] synonym, procedure, trigger, rollback segment, tablespace, role, user
USER_AUDIT_POLICIES All fine grained auditing policies for objects in user schema
USER_AUDIT_SESSION All audit trail records concerning CONNECT and DISCONNECT
USER_AUDIT_STATEMENT Audit trail records concerning  grant, revoke, audit, noaudit and alter system
USER_AUDIT_TRAIL Audit trail entries relevant to the user
USER_AWS Analytic Workspaces owned by the user
USER_AW_PS Pagespaces in Analytic Workspaces owned by the user
USER_BASE_TABLE_MVIEWS All materialized views with log(s) owned by the user in the database
USER_CATALOG Tables, Views, Synonyms and Sequences owned by the user
USER_CLUSTERS Descriptions of user’s own clusters
USER_CLUSTER_HASH_EXPRESSIONS Hash functions for the user’s hash clusters
USER_CLU_COLUMNS Mapping of table columns to cluster columns
USER_COLL_TYPES Description of the user’s own named collection types
USER_COL_COMMENTS Comments on columns of user’s tables and views
USER_COL_PRIVS Grants on columns for which the user is the owner, grantor or grantee
USER_COL_PRIVS_MADE All grants on columns of objects owned by the user
USER_COL_PRIVS_RECD Grants on columns for which the user is the grantee
USER_CONSTRAINTS Constraint definitions on user’s own tables
USER_CONS_COLUMNS Information about accessible columns in constraint definitions
USER_CONS_OBJ_COLUMNS List of types an object column or attribute is constrained to in the tables owned by the user
USER_DB_LINKS Database links owned by the user
USER_DEPENDENCIES Dependencies to and from a users objects
USER_DIMENSIONS Description of the dimension objects accessible to the DBA
USER_DIM_ATTRIBUTES Representation of the relationship between a dimension level and
 a functionally dependent column
USER_DIM_CHILD_OF Representaion of a 1:n hierarchical relationship between a pair of levels in
 a dimension
USER_DIM_HIERARCHIES Representation of a dimension hierarchy
USER_DIM_JOIN_KEY Representation of a join between two dimension tables. 
USER_DIM_LEVELS Description of dimension levels visible to DBA
USER_DIM_LEVEL_KEY Representations of columns of a dimension level
USER_ERRORS Current errors on stored objects owned by the user
USER_EVALUATION_CONTEXTS rule evaluation contexts owned by user
USER_EVALUATION_CONTEXT_TABLES tables in user rule evaluation contexts
USER_EVALUATION_CONTEXT_VARS variables in user rule evaluation contexts
USER_EXTENTS Extents comprising segments owned by the user
USER_EXTERNAL_LOCATIONS Description of the user’s external tables locations
USER_EXTERNAL_TABLES Description of the user’s own external tables
USER_FREE_SPACE Free extents in tablespaces accessible to the user
USER_INDEXES Description of the user’s own indexes
USER_INDEXTYPES All user indextypes
USER_INDEXTYPE_COMMENTS Comments for user-defined indextypes
USER_INDEXTYPE_OPERATORS All user indextype operators
USER_IND_COLUMNS COLUMNs comprising user’s INDEXes and INDEXes on user’s TABLES
USER_IND_EXPRESSIONS Functional index expressions in user’s indexes and indexes on user’s tables
USER_IND_PARTITIONS
USER_IND_SUBPARTITIONS
USER_INTERNAL_TRIGGERS Description of the internal triggers on the user’s own tables
USER_JOBS All jobs owned by this user
USER_JOIN_IND_COLUMNS Join Index columns comprising the join conditions
USER_LIBRARIES Description of the user’s own libraries
USER_LOBS Description of the user’s own LOBs contained in the user’s own tables
USER_LOB_PARTITIONS
USER_LOB_SUBPARTITIONS
USER_LOB_TEMPLATES
USER_LOG_GROUPS Log group definitions on user’s own tables
USER_LOG_GROUP_COLUMNS Information about columns in log group definitions
USER_METHOD_PARAMS Description of method parameters of the user’s own types
USER_METHOD_RESULTS Description of method results of the user’s own types
USER_MVIEWS All materialized views in the database
USER_MVIEW_AGGREGATES Description of the materialized view aggregates created by the user
USER_MVIEW_ANALYSIS Description of the materialized views created by the user
USER_MVIEW_DETAIL_RELATIONS Description of the materialized view detail tables of the materialized
views created by the user
USER_MVIEW_JOINS Description of a join between two columns in the
WHERE clause of a materialized view created by the user
USER_MVIEW_KEYS Description of the columns that appear in the GROUP BY
list of a materialized view  created by the user
USER_MVIEW_LOGS All materialized view logs owned by the user
USER_MVIEW_REFRESH_TIMES Materialized views and their last refresh times for each master table that the user can look at
USER_NESTED_TABLES Description of nested tables contained in the user’s own tables
USER_OBJECTS Objects owned by the user
USER_OBJECT_SIZE Sizes, in bytes, of various pl/sql objects
USER_OBJECT_TABLES Description of the user’s own object tables
USER_OBJ_AUDIT_OPTS Auditing options for user’s own tables and views
USER_OBJ_COLATTRS Description of object columns and attributes contained in tables owned by the user
USER_OPANCILLARY All ancillary opertors defined by user
USER_OPARGUMENTS All operator arguments of operators defined by user
USER_OPBINDINGS All binding functions or methods on operators defined by the user
USER_OPERATORS All user operators
USER_OPERATOR_COMMENTS Comments for user-defined operators
USER_OUTLINES Stored outlines owned by the user
USER_OUTLINE_HINTS Hints stored in outlines owned by the user
USER_PARTIAL_DROP_TABS User tables with unused columns
USER_PART_COL_STATISTICS
USER_PART_HISTOGRAMS
USER_PART_INDEXES
USER_PART_KEY_COLUMNS
USER_PART_LOBS
USER_PART_TABLES
USER_PASSWORD_LIMITS Display password limits of the user
USER_PENDING_CONV_TABLES All user’s tables which are not upgraded to the latest type version
USER_POLICIES All row level security policies for synonyms, tables, or views owned by the user
USER_POLICY_CONTEXTS All policy driving context defined for synonyms, tables, or views in current schema
USER_POLICY_GROUPS All policy groups defined for any synonym, table, or view
USER_PROCEDURES Description of the users own procedures
USER_PROXIES Description of connections the user is allowed to proxy
USER_PUBLISHED_COLUMNS
USER_QUEUES All queues owned by the user
USER_QUEUE_PUBLISHERS
USER_QUEUE_SCHEDULES
USER_QUEUE_TABLES All queue tables created by the user
USER_REFRESH All the refresh groups
USER_REFRESH_CHILDREN All the objects in refresh groups, where the user owns the refresh group
USER_REFS Description of the user’s own REF columns contained in the user’s own tables
USER_REGISTERED_MVIEWS Remote materialized views of local tables currently using logs owned by the user
USER_REGISTERED_SNAPSHOTS Remote snapshots of local tables currently using logs owned by the user
USER_REGISTRY
USER_REPAUDIT_ATTRIBUTE Information about attributes automatically maintained for replication
USER_REPAUDIT_COLUMN Information about columns in all shadow tables for user’s replicated tables
USER_REPCAT
USER_REPCATLOG Information about the current user’s asynchronous administration requests
USER_REPCOLUMN Replicated columns for the current user’s table in ascending order
USER_REPCOLUMN_GROUP All column groups of user’s replicated tables
USER_REPCONFLICT
USER_REPDDL Arguments that do not fit in a single repcat log record
USER_REPFLAVORS Flavors current user created for replicated object groups
USER_REPFLAVOR_COLUMNS Replicated columns from current user’s tables in flavors
USER_REPFLAVOR_OBJECTS Replicated user objects in flavors
USER_REPGENERATED Objects generated for the current user to support replication
USER_REPGENOBJECTS Objects generated for the current user to support replication
USER_REPGROUP Replication information about the current user
USER_REPGROUPED_COLUMN Columns in the all column groups of user’s replicated tables
USER_REPGROUP_PRIVILEGES Information about users who are registered for object group privileges
USER_REPKEY_COLUMNS Primary columns for a table using column-level replication
USER_REPOBJECT Replication information about the current user’s objects
USER_REPPARAMETER_COLUMN All columns used for resolving conflicts in user’s replicated tables
USER_REPPRIORITY Values and their corresponding priorities in user’s priority groups
USER_REPPRIORITY_GROUP Information about user’s priority groups
USER_REPPROP Propagation information about the current user’s objects
USER_REPRESOLUTION Description of all conflict resolutions for user’s replicated tables
USER_REPRESOLUTION_METHOD All conflict resolution methods accessible to the user
USER_REPRESOLUTION_STATISTICS Statistics for conflict resolutions for user’s replicated tables
USER_REPRESOL_STATS_CONTROL Information about statistics collection for conflict resolutions for user’s replicated tables
USER_REPSCHEMA N-way replication information about the current user
USER_REPSITES N-way replication information about the current user
USER_RESOURCE_LIMITS Display resource limit of the user
USER_RESUMABLE Resumable session information for current user
USER_ROLE_PRIVS Roles granted to current user
USER_RSRC_CONSUMER_GROUP_PRIVS Switch privileges for consumer groups for the user
USER_RSRC_MANAGER_SYSTEM_PRIVS system privileges for the resource manager for the user
USER_RULES Rules owned by the user
USER_RULESETS Rulesets owned by the user: maintained for backward compatibility
USER_RULE_SETS Rule sets owned by the user
USER_RULE_SET_RULES Rules in user rule sets
USER_SECONDARY_OBJECTS All secondary objects for domain indexes
USER_SEGMENTS Storage allocated for all database segments
USER_SEQUENCES Description of the user’s own SEQUENCEs
USER_SNAPSHOTS Snapshots the user can look at
USER_SNAPSHOT_LOGS All snapshot logs owned by the user
USER_SOURCE Source of stored objects accessible to the user
USER_SOURCE_TABLES
USER_SOURCE_TAB_COLUMNS
USER_SQLJ_TYPES Description of the user’s own types
USER_SQLJ_TYPE_ATTRS Description of attributes of the user’s own types
USER_SQLJ_TYPE_METHODS Description of methods of the user’s own types
USER_STORED_SETTINGS Parameter settings for objects owned by the user
USER_SUBPARTITION_TEMPLATES
USER_SUBPART_COL_STATISTICS
USER_SUBPART_HISTOGRAMS
USER_SUBPART_KEY_COLUMNS
USER_SUBSCRIBED_COLUMNS
USER_SUBSCRIBED_TABLES
USER_SUBSCRIPTIONS
USER_SUMMARIES Description of the summaries created by the user
USER_SYNONYMS The user’s private synonyms
USER_SYS_PRIVS System privileges granted to current user
USER_TABLES Description of the user’s own relational tables
USER_TABLESPACES Description of accessible tablespaces
USER_TAB_COLS Columns of user’s tables, views and clusters
USER_TAB_COLUMNS Columns of user’s tables, views and clusters
USER_TAB_COL_STATISTICS Columns of user’s tables, views and clusters
USER_TAB_COMMENTS Comments on the tables and views owned by the user
USER_TAB_HISTOGRAMS Histograms on columns of user’s tables
USER_TAB_MODIFICATIONS Information regarding modifications to tables
USER_TAB_PARTITIONS
USER_TAB_PRIVS Grants on objects for which the user is the owner, grantor or grantee
USER_TAB_PRIVS_MADE All grants on objects owned by the user
USER_TAB_PRIVS_RECD Grants on objects for which the user is the grantee
USER_TAB_SUBPARTITIONS
USER_TRANSFORMATIONS
USER_TRIGGERS Triggers owned by the user
USER_TRIGGER_COLS Column usage in user’s triggers
USER_TS_QUOTAS Tablespace quotas for the user
USER_TYPES Description of the user’s own types
USER_TYPE_ATTRS Description of attributes of the user’s own types
USER_TYPE_METHODS Description of methods of the user’s own types
USER_TYPE_VERSIONS Description of each version of the user’s types
USER_UNUSED_COL_TABS User tables with unused columns
USER_UPDATABLE_COLUMNS Description of updatable columns
USER_USERS Information about the current user
USER_USTATS All statistics on tables or indexes owned by the user
USER_VARRAYS Description of varrays contained in the user’s own tables
USER_VIEWS Description of the user’s own views
AUDIT_ACTIONS Description table for audit trail action type codes.  Maps action type numbers to action type names
COLUMN_PRIVILEGES Grants on columns for which the user is the grantor, grantee, owner, or
 an enabled role or PUBLIC is the grantee
DATABASE_COMPATIBLE_LEVEL Database compatible parameter set via init.ora
DBMS_ALERT_INFO
DBMS_LOCK_ALLOCATED
DICTIONARY Description of data dictionary tables and views
DICT_COLUMNS Description of columns in data dictionary tables and views
DUAL  
GLOBAL_NAME global database name
INDEX_HISTOGRAM statistics on keys with repeat count
INDEX_STATS statistics on the b-tree
NLS_DATABASE_PARAMETERS Permanent NLS parameters of the database
NLS_INSTANCE_PARAMETERS NLS parameters of the instance
NLS_SESSION_PARAMETERS NLS parameters of the user session
RESOURCE_COST Cost for each resource
ROLE_ROLE_PRIVS Roles which are granted to roles
ROLE_SYS_PRIVS System privileges granted to roles
ROLE_TAB_PRIVS Table privileges granted to roles
SESSION_PRIVS Privileges which the user currently has set
SESSION_ROLES Roles which the user currently has enabled.
TABLE_PRIVILEGES Grants on objects for which the user is the grantor, grantee, owner,
 or an enabled role or PUBLIC is the grantee
ALL_HISTOGRAMS Synonym for ALL_TAB_HISTOGRAMS
ALL_JOBS Synonym for USER_JOBS
ALL_OUTLINES Synonym for USER_OUTLINES
ALL_OUTLINE_HINTS Synonym for USER_OUTLINE_HINTS
ALL_SNAPSHOT_REFRESH_TIMES Synonym for ALL_MVIEW_REFRESH_TIMES
CAT Synonym for USER_CATALOG
CLU Synonym for USER_CLUSTERS
COLS Synonym for USER_TAB_COLUMNS
DICT Synonym for DICTIONARY
GV$ACTIVE_INSTANCES Synonym for GV_$ACTIVE_INSTANCES
GV$ACTIVE_SESS_POOL_MTH Synonym for GV_$ACTIVE_SESS_POOL_MTH
GV$AW_CALC Synonym for GV_$AW_CALC
GV$AW_OLAP Synonym for GV_$AW_OLAP
GV$AW_SESSION_INFO Synonym for GV_$AW_SESSION_INFO
GV$BH Synonym for GV_$BH
GV$LOADISTAT Synonym for GV_$LOADISTAT
GV$LOADPSTAT Synonym for GV_$LOADPSTAT
GV$LOCK_ACTIVITY Synonym for GV_$LOCK_ACTIVITY
GV$MAX_ACTIVE_SESS_TARGET_MTH Synonym for GV_$MAX_ACTIVE_SESS_TARGET_MTH
GV$MLS_PARAMETERS Synonym for GV_$MLS_PARAMETERS
GV$NLS_PARAMETERS Synonym for GV_$NLS_PARAMETERS
GV$NLS_VALID_VALUES Synonym for GV_$NLS_VALID_VALUES
GV$OPTION Synonym for GV_$OPTION
GV$PARALLEL_DEGREE_LIMIT_MTH Synonym for GV_$PARALLEL_DEGREE_LIMIT_MTH
GV$PQ_SESSTAT Synonym for GV_$PQ_SESSTAT
GV$PQ_TQSTAT Synonym for GV_$PQ_TQSTAT
GV$QUEUEING_MTH Synonym for GV_$QUEUEING_MTH
GV$RSRC_CONSUMER_GROUP Synonym for GV_$RSRC_CONSUMER_GROUP
GV$RSRC_CONSUMER_GROUP_CPU_MTH Synonym for GV_$RSRC_CONSUME_GROUP_CPU_MTH
GV$RSRC_PLAN Synonym for GV_$RSRC_PLAN
GV$RSRC_PLAN_CPU_MTH Synonym for GV_$RSRC_PLAN_CPU_MTH
GV$SESSION_LONGOPS Synonym for GV_$SESSION_LONGOPS
GV$TEMPORARY_LOBS Synonym for GV_$TEMPORARY_LOBS
GV$TIMEZONE_NAMES Synonym for GV_$TIMEZONE_NAMES
GV$VERSION Synonym for GV_$VERSION
IND Synonym for USER_INDEXES
OBJ Synonym for USER_OBJECTS
SEQ Synonym for USER_SEQUENCES
SM$VERSION Synonym for SM_$VERSION
SYN Synonym for USER_SYNONYMS
TABS Synonym for USER_TABLES
USER_HISTOGRAMS Synonym for USER_TAB_HISTOGRAMS
USER_SNAPSHOT_REFRESH_TIMES Synonym for USER_MVIEW_REFRESH_TIMES
V$ACTIVE_INSTANCES Synonym for V_$ACTIVE_INSTANCES
V$ACTIVE_SESS_POOL_MTH Synonym for V_$ACTIVE_SESS_POOL_MTH
V$AW_CALC Synonym for V_$AW_CALC
V$AW_OLAP Synonym for V_$AW_OLAP
V$AW_SESSION_INFO Synonym for V_$AW_SESSION_INFO
V$BH Synonym for V_$BH
V$INSTANCE Synonym for V_$INSTANCE
V$LOADISTAT Synonym for V_$LOADISTAT
V$LOADPSTAT Synonym for V_$LOADPSTAT
V$LOCK_ACTIVITY Synonym for V_$LOCK_ACTIVITY
V$MAX_ACTIVE_SESS_TARGET_MTH Synonym for V_$MAX_ACTIVE_SESS_TARGET_MTH
V$MLS_PARAMETERS Synonym for V_$MLS_PARAMETERS
V$NLS_PARAMETERS Synonym for V_$NLS_PARAMETERS
V$NLS_VALID_VALUES Synonym for V_$NLS_VALID_VALUES
V$OPTION Synonym for V_$OPTION
V$PARALLEL_DEGREE_LIMIT_MTH Synonym for V_$PARALLEL_DEGREE_LIMIT_MTH
V$PARAMETER Synonym for V_$PARAMETER
V$PQ_SESSTAT Synonym for V_$PQ_SESSTAT
V$PQ_TQSTAT Synonym for V_$PQ_TQSTAT
V$QUEUEING_MTH Synonym for V_$QUEUEING_MTH
V$RSRC_CONSUMER_GROUP Synonym for V_$RSRC_CONSUMER_GROUP
V$RSRC_CONSUMER_GROUP_CPU_MTH Synonym for V_$RSRC_CONSUMER_GROUP_CPU_MTH
V$RSRC_PLAN Synonym for V_$RSRC_PLAN
V$RSRC_PLAN_CPU_MTH Synonym for V_$RSRC_PLAN_CPU_MTH
V$SESSION Synonym for V_$SESSION
V$SESSION_CONNECT_INFO Synonym for V_$SESSION_CONNECT_INFO
V$SESSION_LONGOPS Synonym for V_$SESSION_LONGOPS
V$SQLAREA Synonym for V_$SQLAREA
V$SQLTEXT Synonym for V_$SQLTEXT
V$SYSTEM_PARAMETER Synonym for V_$SYSTEM_PARAMETER
V$TEMPORARY_LOBS Synonym for V_$TEMPORARY_LOBS
V$TIMEZONE_NAMES Synonym for V_$TIMEZONE_NAMES
V$VERSION Synonym for V_$VERSION


Basándonos en el resultado  anterior  vamos a  ver algunas consultas sencillas ,por ejemplo:

  • Podemos lanzar  una consulta  que muestra los datos de una tabla especificada.En este caso filtramos  por todas las tablas que lleven la cadena «XXX»:  select * from ALL_ALL_TABLES where upper(table_name) like ‘%XXX%’
  • Consulta  que muestra las descripciones de los campos de una tabla especificada, peor en este caso con todas las tablas que lleven la cadena «XXX»: select * from ALL_COL_COMMENTS where upper(table_name) like ‘%XXX%’
  • Consulta para conocer las tablas propiedad del usuario actual: select * from user_tables
  • Consulta  para conocer todos los objetos propiedad del usuario conectado a Oracle  select * from user_catalog

 

 

Extracion de documentos en Oracle text


Oracle incorpora un tipo de datos llamado BLOB que permite almacenar documentos de cualquier tipo (imágenes, excel, word, access, comprimidos, vídeos, música, etc). En principio admite cualquier tipo de documento y de cualquier tamaño aunque aún sigue manteniendo el tipo de datos LONG RAW que está obsoleto, sustituido por BLOB. Las instrucciones que os mostramos a continuación admiten ambos tipos de datos: BLOB y LOB RAW.

 

Insertar o extraer documentos  desde Visual Basic

Para poder insertar documentos en un campo BLOB de Oracle con Visual Basic necesitaremos una librería (dll) llamada SAFileMgr Module (SAFileMgr.dll), esta librería está disponible de forma gratuita en la web http://www.softartisans.com. Tras descargar este fichero, deberemos copiarlo a la carpeta del sistema (normalmente C:/Windows/System32) y registrarlo con el comando:  regsvr32 C:/Windows/System32/SAFileMgr.dll .  Tras copiar y registrar el fichero SAFileMgr.dll, también necesitaremos disponer de una base de datos Oracle activa

Tras tener la tabla creada con el campo BLOB, procederemos a abrir Visual Basic y a crear un nuevo proyecto para insertar y extraer documentos en Oracle. En la ventana de «Nuevo proyecto» seleccionaremos «EXE estándar» y pulsaremos «Abrir»:Para que la aplicación funcione correctamente deberemos agregar las referencias necesarias. Para ello pulsaremos en el menú «Proyecto » – «Referencias» de Visual Basic:Seleccionaremos la referencia FileMgr 1.1:Si no aparece en la lista, pulsaremos en Examinar y seleccionaremos el fichero .dll copiado y registrado anteriormente:C:/Windows/System32/SAFileMgr.dll y seleccionaremos también Microsoft ActiveX Data Objects 2.6 Library: Si no aparece en la lista, pulsaremos en Examinar y seleccionaremos el fichero ubicado en: C:/Archivos de programa/Archivos comunes/system/ado/msado26.tlb

 

Ahora veamos el código de cada uno de los tres  botones de un  formulario tipo para lanzar una consulta de inserción o extracción de un documento :

  • Para el botón «Insertar documento«:

Private Sub btInsertarDocumento_Click()

Dim Conn As New ADODB.Connection

Dim Rs As New ADODB.Recordset

Dim FileMgr As New FileManager

Dim SQL As String

On Error GoTo cError

‘ Conexión mediante OLEDB

Conn.Provider = «OraOLEDB.Oracle»

Conn.Open txtServicio.Text, _

txtUsuario.Text, txtContrasena.Text

‘ Ejecutamos una consulta SQL sobre la tabla  para activar el recordset

SQL = «Select * from » + txtTabla.Text + » where 1=2″

Rs.Open SQL, Conn, 2, 3

‘ Añadimos un nuevo registro con los datos indicados

Rs.AddNew

Rs(txtCampoTitulo.Text).Value = txtDocumentoTitulo.Text

Rs(txtCampoRutaDocumento.Text).Value = txtDocumento.Text

‘ Insertamos el documento en el campo BLOB/RAW

FileMgr.ExportToBlob txtDocumento.Text, Rs(txtCampoBLOB.Text)

Rs.Update

Rs.Close

Conn.Close

Set Conn = Nothing

MsgBox «Documento insertado correctamente en » + «la base de datos: » + vbCrLf + vbCrLf + txtDocumento.Text, vbOKOnly + vbInformation

cSalir:

Exit Sub

cError:

MsgBox Err.Description

GoTo cSalir

End Sub

  • Para el botón «Ejecutar«:

Private Sub btEjecutar_Click()

Dim Conn As New ADODB.Connection

Dim Rs As New ADODB.Recordset

On Error GoTo cError

‘ Conexión a Oracle mediante OLEDB

Conn.Provider = «OraOLEDB.Oracle»

Conn.Open txtServicio.Text,  txtUsuario.Text, txtContrasena.Text

‘ Ejecutamos consulta SQL introducida por el usuario

Rs.Open txtSQL.Text, Conn, 0, 1

txtExtraerTitulo.Text = Rs(txtCampoTitulo.Text)

txtDestino.Text = Rs(txtCampoRutaDocumento.Text)

Rs.Close

Conn.Close

Set Conn = Nothing

MsgBox «Consulta SQL ejecutada correctamente.»,  vbOKOnly + vbInformation

cSalir:

Exit Sub

cError:

MsgBox Err.Description

GoTo cSalir

End Sub

  • Para el botón «Ejecutar«:

Private Sub btExtraer_Click()

Dim Conn As New ADODB.Connection

Dim Rs As New ADODB.Recordset

Dim FileMgr As New FileManager

Dim continuar As Boolean

On Error GoTo cError

‘ Conexión a Oracle mediante OLEDB

Conn.Provider = «OraOLEDB.Oracle»

Conn.Open txtServicio.Text, _

txtUsuario.Text, txtContrasena.Text

‘ Ejecutamos consulta SQL introducida por el usuario 

Rs.Open txtSQL.Text, Conn, 0, 1

‘ Comprobamos si existe ya un fichero destino

‘ con el mismo nombre

continuar = False

If Dir(txtDestino.Text) <> «» Then

continuar = MsgBox(«Ya existe un documento » + «con este nombre ¿desea reemplazarlo?», vbYesNo + vbQuestion) = vbYes

Else

continuar = True

End If

‘ Extraemos el documento del primer   registro de la consulta SQL  en el destino especificado por el usuario

If continuar Then

FileMgr.ImportFromBlob Rs(txtCampoBLOB.Text), txtDestino.Text

MsgBox «Fichero extraído correctamente en: » + vbCrLf + vbCrLf +  txtDestino.Text, vbOKOnly + vbInformation

End If

Rs.Close

Conn.Close

Set Conn = Nothing

cSalir:

Exit Sub

cError:

MsgBox Err.Description

GoTo cSalir

End Sub

 

Extracción desde java

 

Ahora  veamos  usando el lenguaje   Java un ejemplo de como podemos extraer  documentos almacenados en  CLOB’s   en una base de Datos Oracle Text 9 en Java

Necesitaremos tener instalado el cliente Oracle instalado en la maquina, las credenciales de acceso  ,    asi como referenciar en el proyecto desde el Eclipse las siguientes librerías

 

 

 

Y ahora veamos  un ejemplo de una clase de extracción de campos clob’s

La clase principal es Main , la cual debería seleccionarse al exportar el proyecto desde Eclipse

Se puede ejecutar en local  o crear un pequeño script para invocar el java

En este ejemplo es  obligatorio usar tres argumentos y en este orden  para llamar al programa:

  • nodo= número del nodo a exportar
  • tope = numero de orden donde se quedo la última exportación empezando por cero
  • topefinal= umbral donde termina

 

En el proyecto se han referenciado dos versiones de la MV Java porque puede ocurrir que la MV usada en local ( 1.6 ) sea diferente a la del host  donde se ejecute ( por ejemplo  la 1.4.2_08, razon por la habria que copiar tambien esa version 1.4.2.08  dedseel host  a una ruta local

También se hace referencia al driver de oracle classes12.jar , ruta que también existe en la maquina

 

 

Este proyecto debería exportarse situándose en la raiz del proyecto como un jar sin incluir tanto los ficheros .classspath como el de .project

Antes de compilar debe eliminar manualmente el war existente desde el propio eclipse asi como el log de ejecución (manualmente habría que ubicarse en c:\ users\xxx\workspace\application)

Asimismo por ultimo , al   compilarlo  no debemos incluir el classpath

 

Veamos el código completo;

 

/*
Main.java
*
* Created on 20 de Marzo de 20174, 11:43
*

*/

import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
import oracle.jdbc.driver.OracleDriver;

/**
* @author CRN
*
* EXTRACTOR DOCUMENTOS
*/

public class Main {

private static int nodo;

private static int tope;

private static int topefinal;

public static void main(final String[] args) {

System.out.println(«Inicializando programa …»);

Connection conn = null;

GestorDeConexiones gc = null;

try{

gc = new GestorDeConexiones(«xxxx», «yyyyyy»); // credenciales de  acceso a la BBDD con el user y pwd de acceso 

conn = gc.getConnection();

// Comprueba si hay argumentos en la linea de comandos

final int nnodo=1;

if(args.length != 0)
//CON ARGUMENTOS

{
for(int counter = 0; counter < args.length; counter++)
{
System.out.println(«Argument index » + counter + «: » + args[counter]);
}

System.out.println(» fin argumentos»);

nodo = Integer.parseInt(args[0]); // primer argumento ( el nodo)

tope = Integer.parseInt(args[1]); //segundo argumento (inicio

topefinal = Integer.parseInt(args[2]); //tercer argumento ( tope)

System.out.println(«Argumento nodo= » + nodo);
System.out.println(«Argumento conteo incial= » + tope);
System.out.println(«Argumento numero de documentos= » + topefinal);

}

else

//SIN ARGUMENTOS

{
System.out.println («No se ha incluido ningún argumento»);
System.exit(0);
}

System.out.println(«NODO» + nodo);
System.out.println(«Valor inicial= » + tope);
System.out.println(«Valor final= » + topefinal);

final String path1 =»d:\»;

final String nfichero= path1+»previa_carga_jd_»+nodo+»tope«+tope+»topefinal_»+ topefinal;

//generacion del fichero de salida

File theDir = new File(nfichero);

if (!theDir.exists())
{
System.out.println(«..creando directorio: » + theDir.getName()); // SI EL DIRECTORIO NO EXISTE ,. SE CREA
boolean result = false;
try{
theDir.mkdir();

result = true;
}
catch(SecurityException se){   //handle it
}
if(result) {
System.out.println(«Directorio creado»);
}
}

//Intentamos cambiar los permisos al directorio creado
System.out.println(«Cambiamos permisos 777 a «+nfichero);
Process theProcess = null;
try
{
theProcess = Runtime.getRuntime().exec(«chmod 777 «+ nfichero);
}
catch(IOException e)
{
System.out.println(«Error en el método exec()»);
}

//creacion fichero de log

final String log1=path1;

final String nfichero1= log1+»directorio_»+nodo+»tope«+tope+»topefinal_»+ topefinal+».log»;

System.out.println(«Fichero Log de proceso :[» +nfichero1+»]»);
System.out.println(«+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++»);

//generación del fichero de salida

File fichero = new File(nfichero1);

 

if (!fichero.exists())
{

// SI NO EXISTE , SE CREA
System.out.println(«..creando fichero de log: » + fichero.getName());
boolean result = false;
try{
fichero.createNewFile();

result = true;
}
catch(SecurityException se){ //handle it
}
if(result) {
System.out.println(«Fichero creado»);
}
}

//abre fichero de log
File TextFile = new File(nfichero1);
FileWriter TextOut = new FileWriter(TextFile, true);
TextOut.write(«********************************************************************\r\n»);
TextOut.write(«INICIANDO PROCESO DE EXTRACCIÓN DE DOCUMENTOS r\n»);
TextOut.write(«Fichero Log de proceso :[» +nfichero1+»]\r\n»);
TextOut.close();

String path=nfichero +»/»;

System.out.println («RUTA DESTINO FINAL»+ path);

//extraemos los objetos de texto
RecuperadorBD2.RecuperarBD2(conn,path, tope,topefinal,nodo,nfichero1);

}
catch (final SQLException sqle) {
System.out.println
(«Error de acceso a BD:» + sqle.getMessage());
sqle.printStackTrace();
}
catch (final IOException ioe){
System.out.println
(«Error de acceso a disco:» + ioe.getMessage());
ioe.printStackTrace();
}

try{
if (gc != null && conn != null)
gc.closeConnection();
}

catch (final SQLException sqle)
{
System.out.println
(«Error de acceso a BD:» + sqle.getMessage());
sqle.printStackTrace();
conn = null;
gc = null;
}
System.out.println(» **** Fin extraccion ****»);
}
}

class RecuperadorBD2
{
public static void RecuperarBD2 (final Connection cn, final String path , final int topec, final int topex, final int nodo ,final String path1)
throws SQLException, IOException
{

 

String topex1= String.valueOf(topex);

String topec1= String.valueOf(topec);

String nnodo= String.valueOf(nodo);

int contador=0;
FileOutputStream fos = null;

Statement st = null;
ResultSet rs = null;

 

final String sql=» SELECT «+
«FROM(SELECT to_number (rownum) cuenta,»+
» p.
«+
» FROM «+
» ( «+
«SELECT c.nodo_co_nodo, «+
» c.infi_nu_infi, «+
» c.docu_co_documento, «+
» d.docu_no_documento, «+
» d.docu_no_extension ,»+
» d.docu_nu_version, «+
» d.DOCU_FX_MODIFICACION fecha,»+
» e.doct_do_documento doc «+
» FROM tablametadatos c, «+
» tablaauxiliar d, «+
» tabladocumentos e «+
» WHERE c.nodo_co_nodo = » + nnodo +
» AND c.docu_co_documento =d.docu_co_documento «+
» AND d.docu_co_documento =e.docu_co_documento «+
» AND e.docu_nu_version =d.docu_nu_version «+
» AND c.docu_nu_version =e.docu_nu_version «+
» ) «+
» where (cuenta >»+topec1 + » and cuenta <» +topex1 +» )»;

 

//abre fichero de log
File TextFile = new File(path1);
FileWriter TextOut = new FileWriter(TextFile, true);

System.out.println(«»);
System.out.println(«********************************************************************»);
System.out.println(«COMENZANDO PROCESO INICIAL») ;
System.out.println(«sql general=»+sql);
System.out.println(«»);

TextOut.write(«********************************************************************\r\n»);
TextOut.write(«COMENZANDO PROCESO INICIAL\r\n»);
TextOut.write(«sql general=»+sql+»\r\n»);

try
{

st = cn.createStatement();
rs = st.executeQuery(sql);

while (rs.next())
{
++contador;
//para blobs
final String verdocu= rs.getString(«docu_no_documento») ;
System.out.println(«Ndocu =» + verdocu );

final String verinfi =rs.getString(«infi_nu_infi»);
System.out.println(«Infi =» + verinfi );

final String verloc = rs.getString(«docu_co_documento»);
System.out.println(«Cdocc =» + verloc );

final String vernombre= verinfi+»«+verloc + ««+ verdocu;

System.out.println(«Nombre =» + vernombre );

System.out.println(«+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++»);
System.out.println(«Numero fichero a extraer =» + contador );

TextOut.write(«Numero fichero a extraer =» + contador+»\r\n»);

final String nfichero =vernombre; //LE PASAMOS COMO ARGUMENTO EL NOMBRE YA MONTADO:INFI_DOCU+LOC

System.out.println(» Fichero a extraer: » +nfichero);
TextOut.write(«Fichero a extraer =» + nfichero+»\r\n»);

final String pathname= path + nfichero ;
System.out.println(» Extrayendo fichero multimedia : «+pathname);
TextOut.write(«Extrayendo fichero multimedia =» + pathname +»\r\n»);

//deberíamos comprobar si existe ese fichero
final File file = new File(pathname);

fos = new FileOutputStream(file);
final Blob bin = rs.getBlob(«doc»);
System.out.println(«…Extrayendo BLOB»);
TextOut.write(«Extrayendo BLOB \r\n»);

final InputStream inStream = bin.getBinaryStream();
final int size = (int)bin.length();
System.out.println(«Tamaño: «+size);
TextOut.write(«Tamaño =» + size+»\r\n»);

final byte[] buffer = new byte[size];
int length = -1;

while ((length = inStream.read(buffer)) != -1)
{
fos.write(buffer, 0, length);
}

if (fos != null)

{

//Intentamos cambiar los permisos al directorio creado
TextOut.write(«Fichero extraido ok \r\n»);

permisos777(pathname);
fos.close();
System.out.println(» Fichero extraido ok.»);
System.out.println(«+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++»);
TextOut.write(«+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n»);

}
}
}
catch (final IOException ioe)
{
throw new IOException(ioe.getMessage());

}
finally
{
if (fos !=null)
{
fos.close();
TextOut.write(«FIN DEL PROCESO \r\n»);
TextOut.close();

}
if (rs !=null)
{
rs.close();

TextOut.close();
}
rs=null;
st=null;

 

 

System.out.println(«Fin RecuperaBD2»);

System.out.println(«FIN PROCESO») ;

TextOut.close();

}
}

 

//funcion para añadir permisos 777 a los ficheros extraidos 
public static void permisos777 (final String pathname)
{

Process theProcess = null;

//intentamos cambiar los permisos del fichero recién creeado
System.out.println(«Cambiamos permisos 777 a «+pathname);
try
{
theProcess = Runtime.getRuntime().exec(«chmod 777 «+ pathname);
}
catch(IOException e)
{
System.out.println(«Error en el método exec()»);
}
//fin de cambio de permisos

}

}

//clase para gestionar las conexiones con la BBDD

class GestorDeConexiones
{
private final String user;
private final String password;
private Connection conn = null;
private boolean conectado = false;

public GestorDeConexiones(final String usr, final String pwd){
user = usr;
password = pwd;
}

public void closeConnection() throws SQLException{
if (conectado)
conn.close();
}

private void conectar() throws SQLException {

String url;
DriverManager.registerDriver(new OracleDriver());

url = «jdbc:oracle:thin:@x.x.x.x:yyy:cadena»; ///ojo PROD

 

conn = DriverManager.getConnection(url,user, password);
System.out.println(«Conexion correcta»);
conectado = true;

}

public Connection getConnection() throws SQLException
{
if (!conectado)
conectar();
return conn;
}
}

 

 

 

 

Diferencias en un RAC Oracle activo-activo a un stand-alone


Uno de los grandes problemas a la hora de implementar soluciones activo‐activo se encuentra en la capa de base de datos, ya que la pérdida de la cabina de discos supone la caída total delservicio.

Ademas  en algunos casos se superan los 15 minutos de tiempo máximo de parada  por lo que es importante estudiar  que soluciones pueden permitir la estabilidad de una BBDD Oracle en el menor tiempo posible

En principio  existe para  ello   tres soluciones:

  • Réplica síncrona basada en cabina(disk array mirroring). Se trata de una solción sencilla de implementar y que no requiere licencias adicionales al mantener  la base de datos de respaldo inactiva. Por el contrario, supone una infrautilización de recursos y un tiempo deparada medio‐alto en caso de contingencia. Además, si la contingencia es brusca, sólo se conservarán aquellos datos que estén consolidados en disco y podrían perderse transacciones.

 

  •  Oracle Datagard. Este producto de Oracle requiere tener una infraestructura de base de datos paralela a la de producción,si bien puede ser inferior en recursos.En este caso,cada transacción de la BBDD se va replicando automáticamente mediante el software de Oracle en la base de datos de datagard.En caso de contingencia,esta segunda BBDD podría actuar como base de datosprincipal,si bien requiere al igual que en el caso anterior una serie de procedimientos
 manuales para su puesta en producción.La ventaja frente a la anterior es que,al ser el mismo software de Oracle el que gestiona la réplica, la pérdida de datos no consolidados en caso de contingencia se ve muy disminuida. En contra, sí  requiere licencia adicional y supone, como en el caso anterior, una infrautilización de recursos, si bien es cierto que las últimas versiones de Datagard permiten tener la
 base de datos de respaldo levantada en modo de solo lectura.

 

  • RAC extendido con tecnología Oracle RAC   11g.  En este sistema  cada uno de los nodos tiene visibilidad de los dispositivos de almacenamiento que le presentan las dos cabinas. Para evitar el punto de fallo,los nodos tiene tarjetas de fibra redundadas y en ambas cabinas por dos caminos diferentes.

Existe una capa de software,Oracle ASM (Automatic Storage Management),que gestiona el almacenamiento de forma que todos nodos vean los discos que les presentan las cabinas como un único pool de almacenamiento. Los nodos se comunican entre sí mediante una red privada (red de interconnect) a Giga. A través de esta red intercambian información de lo que esta  haciendo cada nodo y realizan una fusión de caches (todos los nodos comparten la caché), que es lo que permite que la ca¡da de uno de ellos sea transparente para la sesión del usuario. Todas la interfaces de red, tanto las del interconnect como las de la red de servicio deben estar redundadas (mediante bonding en Linux, IPMP en Solaris,etc.)para evitar que constituyan un punto de fallo.

Otra capa de software por debajo de ASM, Oracle Clusterware, gestiona todos los recursos del cluster, mantiene al nodo dentro del grupo y proporciona a ASM los recursos necesarios para su funcionamiento.

Toda la información de estado del cluster se ubica en un dispositivo denominado voting disk.Para evitar que este constituya un punto de fallo, Oracle recomienda mantener tres voting disk, uno en cada cabina y un tercero en un servidor ubicado en otro CPD al que accedan los nodos mediante NFS.

Este tipo de cluster extendido muy usado en la actualidad , presenta las siguientes hitos:

  • En una configuración activo-activo pura hay aprovechamiento de todos los recursos disponibles.
  • Es completamente tolerante a fallos gracias a la redundancia de todos sus elementos.
  • Alta disponibilidad total: 24 x 7 garantizado.
  • Fácilmente escalable con posibilidad de a¤adir nuevos nodos en caliente.

 

Desde el punto de vista del desarrollador  en una BBDD en RAC activo -activo   necesitaremos  tener en el  tnsanames.ora dos entradas ( o tantas como instancias como haya)  en el que  se alternaran en cada entradas tantos campos  ADDRESS como instancias también haya   ( cada  una con ip’s y  puertos diferentes  )  y ADEMAS  alternos en cada  entrada  pero compartiendo el mismo SERVICE_NAME(SSID)

Por ejemplo    si tenemos dos instancias  , tendríamos en el tnsanames.ora las dos siguientes entradas

INSTANCIA1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=TCP)(HOST=maquina1)(PORT=50150))
(ADDRESS=(PROTOCOL=TCP)(HOST=maquina2)(PORT=50046))
)
(CONNECT_DATA =
(SERVICE_NAME = SSID)
(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC))
)
)

INSTANCIA2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=TCP)(HOST=maquina2)(PORT=50046))
(ADDRESS=(PROTOCOL=TCP)(HOST=maquina1)(PORT=50150))
)
(CONNECT_DATA =
(SERVICE_NAME = SSID)
(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC))
)
)

 

 

 

SOLUCION STANDALONE

Frente   a la soluciones activo-activo comentadas   Oracle también propone una solución standalone  llamada Oracle Grid Infrastructure para un servidor independiente  también conocido como Oracle Restart, proporcionado soporte del sistema para una base de datos Oracle de instancia única.  Este sistema  incluye administración de volumen, sistema de archivos y capacidades de reinicio automático.

Oracle Restart mejora la disponibilidad de una BBDD Oracle al proporcionar lo siguiente:

  • Cuando hay una fallo de hardware o software, Oracle Restart inicia automáticamente todos los componentes de Oracle, incluida la instancia de la base de datos de Oracle, el servicio de escucha de Net de Oracle, los servicios de base de datos y el ASM de Oracle.
  • Oracle Restart inicia los componentes en el orden correcto cuando se reinicia el host de la base de datos.
  • Oracle Restart ejecuta verificaciones periódicas para monitorear el estado de los componentes de Oracle. Si una operación de verificación falla para un componente, entonces el componente se apaga y se reinicia.

En caso de  que se necesite  usar Oracle Automatic Storage Management (Oracle ASM), se  debera instalar tambien  Oracle Restart antes de instalar la BBDD.

Oracle combinó dos productos de infraestructura (Oracle Grid Infrastructure para un servidor independiente que  incluye Oracle Restart y Oracle Automatic Storage Management.) en un único conjunto de binarios que se instalan desde la  página de inicio de Oracle Restart.

Respecto a Oracle Automatic Storage Management es un administrador de volúmenes y un sistema de archivos para archivos de base de datos Oracle que admite configuraciones de Oracle Database y Oracle Real Application Clusters (Oracle RAC) de instancia única.  También admite un sistema de archivos de propósito general para las necesidades de su aplicación, incluidos los binarios de Oracle Database.

En resumen Oracle Automatic Storage Management es la solución de administración de almacenamiento recomendada de Oracle que ofrece una alternativa a los administradores de volumen convencionales, sistemas de archivos y dispositivos sin formato.

Presenta incompatibilidades

  • No puede instalar Oracle Restart en un nodo miembro de clúster de Oracle Grid Infrastructure, ni agregar un servidor de Oracle Restart a un nodo miembro de clúster de Oracle Grid Infrastructure.
  • Oracle Restart admite bases de datos de instancia única en un servidor, mientras que Oracle Grid Infrastructure para un clúster admite bases de datos de instancia única o Oracle RAC en un clúster.
  • Si desea usar Oracle ASM o Oracle Restart, debe instalar Oracle Grid Infrastructure para un servidor independiente antes de instalar y crear la base de datos. De lo contrario, debe registrar manualmente la base de datos con Oracle Restart. Oracle Restart se utiliza en entornos de instancia única (no agrupados).

 

Desde el punto de vista del desarrollador  en una BBDD en RAC stanalone   necesitaremos  tener en el  tnsanames.ora una única entrada   pues toda la gestion se abastrae  tanto a lso servidores de aplicaciones como al propio desarrolalador

 

 

 

Diferencias entre DBA_FREE_SPACE y DBA_TABLESPACE_USAGE_METRICS


Resultado de imagen de tablespaces

 

 

He estado durante  muchísimo  tiempo  realizando consultas nivel de ocupación de los tablespaces en Oracle 9  que utilizan las vistas del sistema DBA_FREE_SPACE y DBA_DATA_FILES   , lo cual esta muy bien,  pero recientemente he sabido que  hay personas que  en  Oracle 11  están usando  otra vista del sistema para conocer  el  nivel de ocupación de los tablespaces   que es muy rápida: DBA_TABLESPACE_USAGE_METRICS .

Esta  vista contiene información sobre espacios de tablas permanentes, temporales y de deshacer, y tiene solo cuatro columnas:

  • TABLESPACE_NAME TABLESPACE_NAME
  • USED_SPACE ESPACIO USADO
  • TABLESPACE_SIZE TABLESPACE_SIZE
  • USED_PERCENT USED_PERCENT

Hay tres cosas importantes acerca de esas columnas:

  1. Los números de USED_SPACE y TABLESPACE_SIZE están en bloques , no en bytes, por lo que necesitamos unir   esta vista a la vista del sistema DBA_TABLESPACES para terminar con números en bytes. ( ellos la ofrecen  tal cual sin hacer la  conversión a  bytes , de modo que  lo que nos están dando son el nº de bloques y no el de bytes)
  2. La columna TABLESPACE_SIZE muestra el tamaño total posible , no el tamaño actual  
  3. USED_PERCENT muestra el uso del tamaño total posible de un espacio de tabla.

Es decir ,    la información de esta vista no es la que muestra el tamaño real , sino el posible  tamaño   máximo lo cual  explica  la gran diferencia   que nos encontraremos  entre  cálculos realizados sobre la vista  DBA_FREE_SPACE   o sobre la  vista  DBA_TABLESPACE_USAGE_METRICS

Algo muy importante es que la vista  DBA_TABLESPACE_USAGE_METRICS nos ofrece la volumetría en bloques lo cual no es muy útil , por lo que para traducirlo a bytes  tendremos que saber  el tamaño del bloque . Con esta consulta podemos ver el tamaño del bloque:

show parameter block_size

Ahora , lo mejor es hacer la conversión  usando el valor de Block_size de modo que obtengamos  en la  consulta el  tamaño de los Tablespaces  en MB y no en bloques

select * from(
SELECT
a.tablespace_name,
ROUND((a.used_space * b.block_size) / 1048576, 2) AS «Used space (MB)»,
ROUND((a.tablespace_size * b.block_size) / 1048576, 2) AS «Tablespace size (MB)»,
ROUND(a.used_percent, 2) AS «Used %»
FROM dba_tablespace_usage_metrics a
JOIN dba_tablespaces b ON a.tablespace_name = b.tablespace_name) where TABLESPACE_NAME LIKE ‘%EJEMPLO_TB%’

 

También podemos usar el método «antiguo » basado en las vista   DBA_FREE_SPACE  uniéndolas con las vistas DBA_DATA_FILES  y s.DBA_TABLESPACES  tanto en oracle 9, 10 y 11:, 

select ‘EJEMPLO2_TB’, usados, total ,100*usados/total used_percent,libre from

(select sum(total)total , sum(usados) usados, sum(libre) libre

from (
Select t.tablespace_name Tablespace, t.status Estado,
ROUND(MAX(d.bytes)/1024/1024,2) Total,
ROUND((MAX(d.bytes)/1024/1024) –
(SUM(decode(f.bytes, NULL,0, f.bytes))/1024/1024),2) Usados,
ROUND(SUM(decode(f.bytes, NULL,0, f.bytes))/1024/1024,2) Libre,
t.pct_increase «% incremento»,
SUBSTR(d.file_name,1,80) «Fichero de datos»
FROM  sys.DBA_FREE_SPACE f, sys.DBA_DATA_FILES d, sys.DBA_TABLESPACES t
WHERE

t.tablespace_name = d.tablespace_name AND
f.tablespace_name(+) = d.tablespace_name
AND f.file_id(+) = d.file_id

GROUP BY t.tablespace_name,
d.file_name, t.pct_increase, t.status ORDER BY 1,3 DESC )

where Tablespace=’EJEMPLO2_TB’)

 

 

El resultado de ambos consultas sobre la  vista    DBA_TABLESPACE_USAGE_METRICS  o sobre la  vista  DBA_FREE_SPACE  con datos de ejemplo   las podemos ver reflejados en la siguiente tabla:

TABLESPACE_NAME Used space (MB) Tablespace size (MB) Usado % Esta consulta usa dba_tablespace_usage_metrics
dba_tablespaces
EJEMPLO1_ 454310 572776,94 79,3
  234853 295259,47 79,5
EJEMPLO2 454246 459200,94 98,9 Esta consulta  solo usa dba_fee_space
  234853,3 241833,53 97,1

Es decir,   en los cálculos anteriores    teniendo en cuanta  que la vista  dba_tablespace_usage_metric solo muestra el tamaño total posible ,  como vemos como   la información anterior , solo nos están dando  la volumetría  máxima   posible  y no la real dba_tablespace_usage_metrics

Como  puede  apreciar querido lector en este ejemplo las diferencias son  notables  entre los resultados arrojados por  ambas consultas   :para el caso del primer da una ocupación del 79’3% para el  TB de datos  y 79,5 % de ocupación  para los  TB de los indices  usando la vista dba_tablespace_usage_metric, lo cual da resultados esperanzadores ( aun quedaría  mas del 20% por ocupar) mientras en el segundo caso la query  da una ocupación del 98’9 para el  TB de datos  y 97,1 % de ocupación  para los  TB de los indices  usando la vista dba_fee_space, lo cual son resultados  reales   bastantes alejados de los resultados obtenidos en la primer vista

 

 

 

Espero que encuentre útil la consulta. Aquí está el enlace de la documentación de Oracle sobre la vista:  Oracle Documentation – DBA_TABLESPACE_USAGE_METRICS

 

Como crear un tunel ssh para acceder a una BBDD Oracle


En una presentación de krisrice y thatjeffsmith en KScope15, Jeff señaló algunas nuevas características, incluyendo una para crear túneles SSH usando el programa gratuito que ofrece Oracle para manejar cualquier BBDD ORacle :  el   SQL Developer.

SQL Developer es un entorno de desarrollo de uso general (y gratuito) para la base de datos Oracle. Esta característica parece que debería funcionar independientemente de si realmente desea conectarse a una base de datos Oracle

Sí, puede crear túneles SSH de la forma tradicional utilizando su cliente de línea de comandos SSH favorito   tambien deberia poderse hacer de un ambiente mas potente   como es el entorno de SQL Developer. Este post no es un pros / contras, es sólo una introducción a la función.

Si usted necesita a veces crear túneles de SSH  para lanzar  SQL entonces usted puede encontrar esto interesante.

En esta  introducción se hacen los siguientes supuestos::

  • Tiene un servidor remoto que tiene SSH en ejecución y admite la autenticación basada en claves.
  • Ya tiene sus claves públicas y privadas SSH generadas y correctamente instaladas en el servidor remoto.
  • Debe enviar las solicitudes a cualquier servicio que se ejecute en un puerto del servidor remoto que pueda estar bloqueado por un servidor de seguridad o, de lo contrario, sólo es accesible una vez que haya iniciado sesión en ese servidor remoto. Para este último punto,  se supone que se cuenta con una instancia de una base de datos Oracle que se ejecuta detrás de un firewall en un servidor remoto y el único puerto accesible a los hosts externos es el puerto TCP 22 (predeterminado para SSH). Usando un túnel SSH con reenvío de puertos, puede obtener SQL Developer para arriba y corriendo en su PCl para que pueda conectarse a su instancia de base de datos remota de Oracle. 

Aquí está el  modo  de hacerlo:

  • En primer lugar, si no lo tiene todavía tendrá que descargar SQL Developer versión 4.1 o posterior (en la versión 4.0  esta característica aún no estaba disponible)

 

  • A continuación, abra SQL Developer y elija View > SSH que abrirá el panel de conexiones SSH.
  • En el panel SSH, haga clic con el botón derecho en Hosts SSH y seleccione Nuevo host SSH …
  • Rellene el cuadro de diálogo con sus datos de conexión según sea necesario y pulse OK. Nota: si especifica el puerto incorrecto (como lo hice) en el servidor remoto o desea especificar el puerto TCP para enlazar sus conexiones locales, puede editar las conexiones posteriormente.

 

 

 

  • En este ejemplo,se  esta utilizando claves SSH para conectarse al servidor remoto. Esta es la práctica recomendada y también eliminará el paso de tener que ingresar una contraseña en el futuro. Nota: La clave que especifique en este cuadro de diálogo debe ser su clave privada y su clave pública ya debe estar configurada en el servidor remoto con los permisos correctos para que esto funcione correctamente.
  • El primer puerto especificado es el puerto del servicio (Oracle DB) que se ejecuta en el servidor remoto y el segundo (puerto local) puede ser cualquier puerto disponible en su máquina que desee utilizar. Este túnel enviará el tráfico de su máquina en el puerto local al servidor remoto. En este caso, probablemente recomendaría usar el mismo puerto que el servidor remoto a menos que tenga varios túneles ejecutándose a servidores remotos al mismo tiempo.

 

  • En el panel SSH debe aparecer su nueva conexión. Haga clic con el botón derecho en la conexión y elija Connect .
  • En este punto, si su conexión tiene éxito usted no necesariamente recibe ninguna retroalimentación positiva. Puede comprobar si está conectado al pasar el ratón sobre el túnel SSH con su ratón o haciendo clic con el botón Disconnect en él de nuevo para ver si se le pide que Disconnect .
  • Por último, debe tener un túnel SSH que se ejecute en su máquina local que puede utilizar para acceder a su base de datos remota de Oracle mediante la conexión a localhost:<local port> que reenvía su solicitud de conexión y todos los otros SQL Developer TCP tráfico Al servidor remoto en el puerto TCP que ha especificado. Excepto para el nombre de host y el número de puerto TCP, debe especificar todos los demás detalles de conexión como de costumbre.

 

 

Desde  luego era  una característica muy demandada por la comunidad de usuarios de BBDD Oracle que necesitan conectarse  en un ambiente de host .  Espero que haya encontrado esta visión general de la creación de túneles SSH en Oracle SQL Developer  útil y que le ayude en el camino.