lunes, 2 de julio de 2012

5.4. DICCIONARIO Y VISTAS DINÁMICAS


USO DEL DICCIONARIO DE DATOS Y VISTAS DINAMICAS DE RENDIMIENTO
Una base de datos se define por un Diccionario de Datos. El diccionario no es muy entendible para los seres humanos. Por esta razón. Oracle ofrece un conjunto de vistas hacia el diccionario de datos mucho más fácil de entender. Estas vistas son la herramienta para un dba para ver que está ocurriendo en la base de datos. La instancia también tiene un conjunto de tablas también no comprensible. Esto también se puede ver mediante vistas para entender que está ocurriendo en la base de datos.

VISTAS AL DICCIONARIO DE DATOS.
El diccionario de datos son metadatos, datos sobre los datos, en el se describe la base de datos física, lógicamente y su contenido. Definiciones de usuario, seguridad de la información, restricciones de integridad desde la versión 10 la información de supervisión del rendimiento son todos parte del diccionario de datos. El diccionario de datos se almacena en un conjunto de segmentos en los tablespace SYSTEM y SYSAUX.
En muchos sentidos. Los segmentos que componen el diccionario de datos son segmentos como los demás: solo tablas e índices. La diferencia principal es que el diccionario de datos las tablas son creadas en el proceso de creación de la base de datos y nose permite el acceso directamente. No hay nada que impida a un DBA la investigación del diccionario de datos directamente, pero si hace actualizaciones puede causar daños irreparables, oracle no ofrece soporte para estos casos.
La creación de un diccionario de datos es parte del proceso de creación de la base de datos. Se mantiene posteriormente por los comandos del Lenguaje de Definición. Al emitir el comando CREATE TABLE, lo que hace es insertar filas en tablas del diccionario de datos, así como también con: CREATE USER o GRANT.
Para consultar el diccionario de datos. Oracle ofrece un conjunto de vistas. Las opciones de dividen en tres formas, los prefijos son: DBA_, ALL_ o USER_. La mayoría de las vistas están en los tres prefijos. Cualquier vista con prefijo USER_ se rellenará con files que describen objetos de propiedad del usuario.
Así que no hay dos personas que podrán ver el mismo contenido. Si el usuario SCOTT consulta USER_TABLES mostrara información de sus tablas. Si consulta USER_TABLES, se mostraran información sobre las tablas. Cualquier vista con el prefijo ALL_ se rellenará con filas que describen objetos a los que tiene acceso. Así ALL_TABLES contendrá registros describiendo sus propias tablas, además tablas que se tienen permiso aun que no sean de el. Cualquier vista con el prefijo DBA_ tendrá filas para cada objeto en la base de datos. Para DBA_TABLES tendrá una fila para cada tabla en la base de datos sin importar quien la creo. Estas vistas se crean como parte del proceso de creación de la base de datos asi como un gran número de paquetes PL/SQL.

DENTRO DEL EXAMEN
Que vista le mostrará todas las tablas de la base de datos. DBA_TABLES no ALL_TABLES.

Hay cientos de vistas al diccionario de datos, algunos de los más comunes utilizados por los dbas son:

- DBA_OBJECTS. Una fila para descrbir cada objeto de base de datos.
- DBA_DATA_FILES. Una fila para describir cada datafile.
- DBA_USERS. Una fila para describir cada usuario.
- DBA_TABLES: Una fila para describir cada tabla.
- DBA_ALERT_HISTORY. Una fila para describir últimas condiciones de alerta.

Hay muchos más que éstos, algunos de los cuales se utilizarán en capítulos posteriores. Como
así como las vistas, no son sinónimos públicos en los puntos de vista.

select object_name,owner, object_type from dba_objects where object_name='DBA_OBJECTS';

Demostrará que en realidad no hay una vista llamada DBA_OBJECTS propiedad de SYS y
sinónimo público con el mismo nombre.

VISTAS DINAMICAS
Hay más de trescientos vistas dinámicas. Son invocadas con prefijos v$.


La figura muestra v$sql, que tiene una fila por cada sentencia sql actualmente almacenados en el shared pool, con información como la frecuencia de la declaración ha sido ejecutada.

Obtener todas las vistas.

Select * from dba_object where object_name like ‘v$*’

Las vistas acceden a una cantidad fenomenal de información acerca de la instancia y acerca de la base de datos. La mayoría de las vistas son generadas a partir de la información de la instancia. El resto de los controlfile. Todas ellas brindan información de tiempo real. Las vistas dinamicas se rellenan apartir de la instancia, como v$instance o v%sysstat están disponibles cuando la instancia esta en modo nomount. Las vistas dinamicas se rellenan de los controlfile como v$database o v$datafile no se pueden consultar a menos que la instancia se halla montado. Que es cuando los controfile se han leído. Por el contrario las vistas al diccionario de datos se puede consultar hasta que la base de datos se ha abierto.

EXAMEN
Las vistas se rellenan apartir de la instancia y controlfiles. Las ALL_, DBA_, USER_ se rellenan a partir del diccionario de datos. Esta diferencia marca que podemos consultar en las diferentes fase de inicio de una instancia.
Las vistas dinámicas son creadas en el inicio, actualizando durante la vida de la instancia y eliminada al apagar la instancia. Esto significa que contendrá valores que se han acumulado desde el inicio de la instancia. Si tu base de datos ha estado abierta durante seis meses sin parar, se disponen de datos acumulados durante ese periodo. Después de un apagado/inicio, va iniciar desde el principio. Si bien los totales pueden ser interesantes, no le dirá nada acerca de lo que sucedió durante ciertos periodos definidos, cuando puede haber habido problemas de rendimiento. Por esta razón. Esto es generalmente cierto las vista dinámicas obtienen las estadísticas y no las métricas. La conversión de estas estadísticas en metricas es un trabajo calificado y algunas veces esta tarea consume mucho tiempo, mucho más fácil por el ajuste automático y capacidades de monitoreo de la base de datos.

EN EL TRABAJO
Existe cierta coincidencia entre v$ vistas y vistas del diccionario de datos. Para la instancia, V$TABLESPACE tiene un registro para cada tablespace, al igual que DBA_TABLESPACE. Tenga en cuenta por regla general. V$ Vistas son singular y data dictionary son plural. Pero hay excepciones.

Escenario y Solución
Usted esta ha carga la administración de una base de datos. Como iniciaría?
Mirar el registro de alerta (Alert Log). Tú puedes verificar esto buscando el parámetro BACKGROUND_DUMP_DEST. Mirar todos los parámetros  non-default para ver como se construyó la instancia. Consultar las vistas que muestran la estructura física: V$DATAFILE, V$LOGFILE.
Si usted no tiene un login para la base de datos. Se puede hacer algo.
Si. Usted puede. Si usted tiene un inicio de sesión de sistema operativo apropiado, como un usuario de sistema operativo que es miembro del grupo al que pertenece  ORACLE_HOME, se puede conectar como sys usando la autentificación del sistema operativo. A continuación, puede crear un usuario normal, le concede privilegios como dba y conectarse con este nuevo usuario a partir de ahora.
En Windows. Siempre parece que hay dos maneras de iniciar las cosas: BAT o CMD Scripts Shells, o Servicios. ¿Cómo puede administrar el inicio del Entorno de Oracle?
Si hay dos opciones: Iniciar los servicios definidos en el registro, o escribiendo un archivo por lotes que iniciará los procesos. La excepción es la instancia de la base de datos. El servicio debe ser iniciado y luego el servicio puede seguir iniciar la instancia, o puede iniciar la instancia con un comando sql plus llamado desde un archivo por lotes. Las personas se familiarizan definiendo servicios, en particular con la definición la dependencias entre ellos, prefieren este método. Las personas menos familiarizadas con los servicios o quieran un despliegue del inicio prefieren utilizar Shell script.


EJERCICIO 5-4.
CONSULTAS AL DICCIONARIO DE DATOS Y VISTAS DINAMICAS

En este ejercicio, investigará la estructura física de la base de datos consultando vistas.

1.Conéctese a la base de datos con Sql plus o Sql Developer.
2.Use vistas dinámicas para determinar los datafile y tablespaces.
Select t.name, d.name, d.bytes from v$tablespace t join v$datafile d on t.ts# = d.ts# order by t.name
3.Obtener la misma información del diccionario de datos.
Select t.tablespace _name, d.file_name, d.bytes from dba_tablespace t join dba_data_files d on t.tablespace_name = d.tablespace_name order by tablespace_name
4.Determinar la localización de las copias de los controlfiles. Use dos técnicas.
Select * from v$controlfile;
Select value from v$parameter where name=’control_files’;
5.Determine la locacizacion de los online redo log file miembros. Y su tamaño. Como el tamaño es un atributo del grupo y no del miembro. Tú tienes que realizar in join de vistas.
select m.group#,m.member,g.bytes from v$log g join v$logfile m on m.group#=g.group# order by m.group#,m.member;

RESUMEN DE CERTIFICACION.
El inicio de una base de datos es un proceso en etapas. Cada etapa requiere varios archivos que estén disponibles. Solo cuando todas las etapas son completadas usuarios regulares pueden logearse. Antes de eso, solo usuarios con privilegios SYSDBA o SYSOPER pueden conectarse y deben utilizar una forma de autentificación que no sea el diccionario de datos. La instancia se construye de acuerdo a los parámetros almacenados en un archivo de parámetros. Muchos de estos parámetros pueden ser cambiados con la instancia ejecutándose, pero otros solo pueden ser escritos en el archivo de parámetros y estos afectaran la instancia hasta que sea reiniciada. En el modo NOMOUNT y MOUNT, varias vistas dinámicas serán visibles. Una vez en modo OPEN el diccionario de datos puede ser consultado.

DOS MINUTOS DE ESTUDIO.
Describe las etapas de Inicio y Parada de la Base de Datos.
- Las etapas son NOMOUNT, MOUNT y OPEN.
- Modo NOMOUNT requiere de un Archivo de parámetros.
- Modo MOUNT requiere de los controlfiles.
- Modo OPEN. Requiere de los datafiles y online redo log files.

Establecer parámetros en la base de datos.
- Los parámetros estáticos no pueden ser cambiados sin una shutdown/startup.
- Otros parámetros pueden ser cambiados dinámicamente. Para la instancia o una sesión.
- Los parámetros pueden ser visulizados con vistas dinamicas, las cuales son V$PARAMETER y V$SPPARAMETER.

Usando los Alert Log y Trace Files.
- Los alert log son un continuo flujo de mensajes con respecto a las operaciones criticas.
- Las trace files son generados por procesos de fondo, usualmente cuando hay errores.

Usando diccionario de datos y Vistas dinamicas.
- Las vistas dinámicas son llenadas de la instacia o el controlfiles.
- El diccionario de datos son llenados de el diccionario de datos.
- Las vistas dinámicas acumulan valores durante el tiempo de vida de la instancia y son reiniciados con un startup.
- El diccionario de datos muestra información que persiste atraves de shutdown y startup.
- Ambos el diccionario de datos y vistas dinámicas son publicados atreves de sinónimos.

1 comentario: