Volumen 24 - Abril 2010
5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300 Fax: (502)2364-5311
Email. info@datum.com.gt Pagina 1/10
Eventos de espera de bases de datos
Oracle
Por: Ing. Luis Fernando Alonzo lalonzo@datum.com.gt
Los eventos de espera son estadísticas de tiempo incrementadas por procesos servidores de la base de datos, para indicar que se ha esperado por la finalización de un evento particular para poder continuar procesando. Estas estadísticas son acumulativas desde el momento en que se inicio la sesión o la instancia de base de datos.
Los eventos de espera ayudan a encontrar las causas de problemas que pueden estar afectando al desempeño, como por ejemplo contención en acceso a recursos de memoria, acceso a disco, latencia de la red, entre otros. Estos eventos son síntomas de problemas, no la causa de ellos.
Existen alrededor de 890 eventos de espera, los cuales se encuentran clasificados de acuerdo al tipo de espera asociada.
Un evento de espera puede llegar a tener asociados hasta tres parámetros; el significado de cada parámetro depende del evento de espera; su descripción y significado se puede obtener a través de la vista V$EVENT_NAME.
select name, parameter1, parameter2, parameter3 from v$event_name
where name in
('buffer busy waits','free buffer waits',
'db file scattered read','db file sequential read')
NAME PARAMETER1 PARAMETER2 PARAMETER3 --- --- --- ---
free buffer waits file# block# set-id# buffer busy waits file# block# class# db file sequential read file# block# blocks db file scattered read file# block# blocks
A continuación se presenta una breve descripción de los tipos de eventos de espera:
Contenido Página
1 Eventos de espera de base de datos Oracle 3 Oracle Information Lifecycle Management 8 Data Quality Option 12 Versionamiento en Jdeveloper Editores Generales Karlo Espinoza Sergio Alonzo Debbie Moran Francisco Barrundia Autores Contribuyentes
Luis Fernando Alonzo Manuel Carrillo Luis Cordon Luis Gálvez
Administrative
Esperas asociadas a actividades realizadas por el DBA. Por ejemplo, la recreación de un índice.
Application
Esperas asociadas al código de la aplicación: bloqueos a nivel de registros o de un objeto completo.
Cluster Esperas asociadas a recursos de una base de datos RAC (GCS y GES)
Commit Esta clase solo tiene asociado el evento 'log file sync'
Concurrency Esperas por recursos internos (latches)
Configuration Esperas por problemas de configuración de base de datos (parámetros, estructuras)
Idle Esperas asociadas a sesiones o procesos inactivos, esperando que se le asigne trabajo.
Network Esperas asociadas a eventos de red.
Other Esperas fuera de la actividad normal; no deberían de ocurrir.
Scheduler Esperas asociadas al manejo de recursos (Resource Manager)
System I/O Esperas de los procesos de background por acceso a disco
User I/O Esperas de los procesos de usuario por acceso a disco
Ahora se analizará dos eventos de espera, los cuales se encuentran entre los más comunes observados en bases de datos Oracle.
Buffer busy waits
Este evento ocurre cuando la sesión o proceso servidor trata de acceder un bloque del buffer cache pero no logra accederlo porque el bloque se encuentra ocupado, por dos razones posibles:
1. Otra sesión está colocando el bloque en el buffer cache
2. Otra sesión mantiene bloqueado el bloque en un modo incompatible con la solicitud de la sesión actual
Los parámetros asociados a este evento son: file#. Indica el numero de datafile asociado al
bloque ocupado
block#. Indica el numero de bloque dentro del file#
La reducción de esperas asociadas a este evento, en la mayoría de casos va relacionada directamente con afinamiento de la aplicación; múltiples sesiones están tratando de acceder el mismo bloque a la vez de forma incompatible entre ellas.
Dependiendo del tipo segmento al que pertenece el bloque congestionado se pueden tomar acciones correctivas, lo que puede identificarse consultando v$session_wait. La ocurrencia de este evento está relacionada directamente con el parámetro de memoria db_cache_size y el proceso de background DBWR.
Free buffer waits
Este, al igual que el evento anterior, está relacionado al área del buffer cache y las características y parámetros de acceso a disco.
Por cada bloque que se coloca en el buffer cache, el proceso servidor debe buscar un bloque libre en la lista de bloques recientemente utilizados (LRU), iniciando desde los bloques más antiguos. Se examina el primer bloque; si no está libre se examina el siguiente, y así hasta encontrar un bloque libre, hasta un máximo de 4 bloques examinados. Si no se encuentra un bloque libre, el proceso servidor solicita al proceso DBWR escribir bloques sucios a disco, para obtener bloques libres. Mientras esto sucede, el proceso servidor registra esperas en el evento Free buffer waits.
En base a lo anterior, podemos deducir que la ocurrencia de este evento indica que el proceso DBWR no está liberando bloques del buffer cache lo suficientemente rápido para satisfacer la demanda de la aplicación. Se debe enfocar los esfuerzos de afinación en:
1. Reducir el número de bloques requeridos (afinamiento de sentencias SQL para reducir barridos de tablas)
2. Incrementar el espacio en memoria para bloques de datos, y así permitir que el proceso DBWR tenga más tiempo para bajar bloques a disco.
3. Mejorar la tasa de escritura a disco a través de opciones a nivel de la capa de almacenamiento
Oracle Information Lifecycle Management
Por: Ing. Manuel CarrilloMcarrillo@datum.com.gt
Oracle Information Lifecycle Management es una herramienta que está relacionada con todo lo que ocurre en los datos durante su existencia. Muchas empresas tienen gran cantidad de información valiosa almacenada, la manera en la que estos datos fueron administrados y mantenidos variaron de manera estrepitosa. Originalmente, los datos fueron utilizados para cumplir metas de operaciones de almacenamiento, hacer funcionar el negocio y ayudar con la identificación de las direcciones a tomar por parte de la empresa en busca del éxito.
Sin embargo, nuevas regulaciones (como Sarbanes-Oxley o HIPAA), validas en muchas partes del mundo, obligan a que sea necesario re-organizar la manera en la que los datos son mantenidos, principalmente como técnicas de control para mantener los datos seguros por largos periodos de tiempo.
La información, hoy en día, se presenta en una variedad de formas, puede ser un mail, una fotografía, o una orden procedente de una transacción. El reto ahora es entender como los datos van a evolucionar, determinar cómo va a ser su crecimiento, monitorear como cambia el uso de los datos a través del tiempo y decidir el tiempo de vida útil de los datos. Para poder llevar a cabo estas actividades, podemos utilizar la herramienta conocida como Oracle ILM (Information Lifecycle Management).
Oracle 11g provee un entorno ideal para
implementar nuestra solución de ILM, porque ofrece una solución barata, segura, transparente a las aplicaciones y logra todos sus objetivos sin comprometer el rendimiento. Tiene la habilidad para:
Administrar almacenamiento
Usar características de la base de datos en beneficio de ILM Asegurar y proteger los datos
Reforzar políticas aplicables a los datos
Las dificultades que pueden presentarse es que, por ejemplo, los diferentes tipos de datos requieran ser almacenados en diferentes medios. Oracle 11g soluciona este problema ya que puede manejar tanto tipos de datos estructurados como no estructurados bajo la misma capa de almacenamiento, además el uso de SecureFiles hace mucho más segura la información almacenada en la base de datos.
Para poder implementar una solución con Oracle ILM, se necesitan completar los siguientes pasos: Definir las clases de Datos
Crear capas de almacenamiento para las clases de Datos Crear políticas para el acceso y migración de Datos Definir y reforzar políticas de cumplimiento
Definir las clases de Datos
Los métodos más comunes para poder clasificar los datos son: Por antigüedad
Por fecha
Sin embargo pueden crearse múltiples tipos de clasificación en base a las reglas definidas a nivel de almacenamiento de la información en la base de datos.
Una técnica para poder clasificar la información y mantenerla de una manera optima es mediante el uso de Oracle Partitioning, podemos asignar clases de Datos hacia una partición lo cual tendrá (entre sus beneficios) el tiempo de respuesta por parte algunas consultas realizadas.
Crear capas de almacenamiento para las clases de Datos
Podemos definir segmentos lógicos de almacenamiento (Tablespaces por ejemplo) mapeados hacia capas ya sea de:
Alto rendimiento Bajo costo
Almacenamiento en línea para Archive Logs Crear políticas para el acceso y migración de los Datos Controlar el acceso a los datos
La seguridad de los datos es otra parte importante en cuanto a la configuración de Oracle ILM ya que los derechos de acceso de la información pueden cambiar durante su ciclo de vida. Podemos asegurar dichas características mediante el uso de:
Database Security Virtual Private Database Vistas
Los datos no solamente tienen que estar seguros, también van a ser movidos de alguna manera durante su ciclo de vida. Incorporando Partitioning en la base de datos facilitamos en gran medida tanto el movimiento de datos como la administración de cambios realizados.
Definir y reforzar las políticas de cumplimiento
Debemos revisar lo siguiente para poder cumplir con el último punto en la configuración de Oracle ILM: Retención de Datos Inmutabilidad Privacidad Auditoria Expiración
En la siguiente pantalla podemos ver el asistente de Oracle ILM en cuanto al manejo de firmas digitales (parte fundamental en todo entorno de seguridad)
Para poder llevar a cabo la configuración de Oracle ILM podemos hacer uso de un asistente, el cual nos provee de una herramienta grafica.
Mediante el asistente podemos crear definiciones de ciclos de vida, en este ejemplo estamos definiendo que los datos van a estar en la capa de Alto Rendimiento durante 15 días, luego es movido hacia una capa de Bajo Costo donde permanece por 6 meses. Después de 9 meses es comprimido y finalmente después de 19 meses es movido a la capa de Archive Logs donde reside por 2 años.
Inicialmente, ILM puede administrar únicamente tablas particionadas, para las tablas no particionadas, el asistente generara un script de cómo la tabla seria si estuviera particionada, además proveerá la capacidad de simular un particionado para ver como las acciones se llevarían a cabo si los datos estuvieran particionados.
Para mayor información y poder descargar el asistente, visite la página oficial de Oracle: http://www.oracle.com/technology/software/deploy/ilm/index.html
Data Quality Option
Por: Ing. Luis Gálvez lgalvez@datum.com.gt
La opción de Data Quality está presente en la herramienta para administración de datos y metadatos Oracle Warehouse Builder en sus versiones 10g y 11g. OWB cuenta con las propiedades y medios necesarios para asegurar la calidad en los datos que maneje, permitiendo así crear ambientes propensos para Data Warehousing y proveyendo medios útiles para la carga y mantenimiento de datos proveniente de un ambiente transaccional (relacional) hacia uno especialmente optimizado para análisis de información (multidimensional) y facilitando la tarea de administración del ciclo de vida de los datos y metadatos que este traslado de información genere.
Una de las opciones que pueden ser adquiridas con Oracle Warehouse Builder es Data Quality, como parte de la edición Enterprise de la base de datos.
Pérfido de Datos y Correcciones
Una de las características más importantes en cuanto a la manipulación y administración que posee Warehouse Builder es la capacidad de evaluar la calidad de los datos de un sistema u organización. Esta característica se conoce común mente como Perfilado de Datos (Data Profiling). En la siguiente imagen podemos observar la sección de Warehouse Builder en donde se realiza la perfilación de los datos.
Este componente nos permite obtener estadísticas de la forma y estructura actual de los datos y metadatos, ya sea de una o de varias tablas sometidas al análisis. Nos indica sobre posibles relaciones entre tablas o restricciones que puedan ser aplicadas en determinadas columnas. Quizá la característica más útil es la que nos permite por medio de patrones establecidos y dominios de información, encontrar anomalías en los datos y generar Data Rules para que sean corregidas y que ocurra así la limpieza de los datos por medio de los Correction Mappings.
El proceso de corrección de datos de integra perfectamente con las rutinas de extracción, transformación y carga (ETL), hecho que le da a Warehouse Builder una importante ventaja frente a las herramientas clásicas de perfilado de datos. Adicionalmente, esta integración con los procesos de ETL permite que la obtención y publicación de datos de alta calidad se efectúe de forma ágil y dinámica cumpliendo con los requerimientos del negocio.
Reglas de Negocio
Con el correcto conjunto de herramientas y la correcta aproximación a la integración de datos, los desarrolladores pueden de manera ágil producir datos integrados de alta calidad.
Para garantizar que el sistema sea flexible y evitar grandes y complejos bloques de código, los desarrolladores pueden hacer uso de los metadatos para encapsular reglas de negocio de manera más efectiva. Warehouse Builder posee además una gran cantidad de reglas de negocio y lógica pre configurada que se puede implementar dentro de los procesos ETL, brindando mayor agilidad y flexibilidad en la etapa de desarrollo.
Otra vía para aprovechar las características de perfilamiento de datos es definir reglas asociadas a objetos de datos (por ejemplo a tablas). Esto permitirá manipular los errores y validaciones basados en una sola configuración. De esta manera el mantenimiento y actualización de estas reglas se puede hacer de una manera mucho más fácil.
Auditoria
Para asegurar que los objetivos de calidad de datos del negocio se cumplan a cabalidad, se puede crear un Data Auditor, que continuamente monitorea la calidad de los datos durante las cargas. Si el índice de calidad es menor a los límites especificados, se envía una alerta y para que se tomen las acciones apropiadas. Warehouse Builder a la vez almacena esta información en tablas de registro de ejecuciones, para revisar el progreso de carga y validación, y extraer tendencias relacionadas a las múltiples cargas a través del tiempo.
Integrando Calidad de Información con los procesos de ETL
Oracle Warehouse Builder provee el entorno necesario para generar un esquema de completo de ETL, basado en los datos actuales, luego generar el mapeo y el nuevo esquema para finalmente aplicar las correciones que apliquen a los datos mientras estos fluyen destino.
Así es como funciona: Basándose en los resultados del perfilado de datos, se pueden derivar y diseñar reglas que definan cómo se desean ver los datos. Después se seleccionan las correcciones (Correction Mappings) y los esquemas destino a los que se desean aplicar. Cuando se generan las correcciones, es posible escoger que métodos de limpieza se quieren aplicar para asegurar así que las reglas se apliquen correctamente durante el movimiento de datos dentro del esquema destino.
Versionamiento en JDeveloper
Por: Ing. Luis Eduardo Cordónecordon@datum.com.gt
Desde JDeveloper podemos hacer uso de software para el control de versiones en nuestros proyectos a travez de Subversion, que se instala como un plug-in de JDeveloper.
Cuando se está trabajando con un software de versionamiento, se debe tener en cuenta que existe un repositorio de datos donde se encuentran todas las versiones del software realizados, nosotros decidimos en que momento cambiamos a una nueva versión y por lo tanto crear un nuevo directorio en nuestro repositorio para la nueva versión en específico.
Este software permite al administrador del proyecto observar la productividad de su equipo de trabajo, así como visualizar el historial de cambios de un producto, permitiendo una mejor administración. Esto también le da la opción de trabajar en múltiples secciones de forma paralela, dentro del mismo proyecto, mediante las ramificaciones que maneja.
Características
Un sistema de control de versiones debe proporcionar: Mecanismo de almacenaje de los elementos a gestionar.
Posibilidad de realizar cambios sobre los elementos almacenados. Registro histórico de las acciones realizadas con cada elemento o conjunto de elementos.
Beneficios del Subversión
Lleva a cabo el proceso de guardar los cambios, llamado comúnmente como commit, en un repositorio de manera atómica es decir, dicho proceso se realiza de manera completa o no se realiza del todo. Esto permite deshacer un proceso guardado en caso de que ocurran problemas durante dicha tarea, lo que significa que si el proceso de guardado de cambios es interrumpido por alguna razón, no provocará inconsistencias en el repositorio.
La herramienta permite acceso a los archivos de un proyecto, observar el trabajo, realizar cambios y guardar estos cambios en su repositorio, donde se almacenan todos los archivos involucrados. Al finalizar una acción de guardar cambios, se considera que se ha creado una nueva “revisión”.
Nos permite trabajar más de una persona al mismo tiempo ya que en un proyecto se pueden hacer cambios a nivel de paquete, archivo (clase, servlet, jsp, xml) o inclusive únicamente un método en específico.
Facilita mantener involucrada a cada persona en el proyecto, ya que los cambios son visibles para todos una vez que son realizados.
Ayuda a medir la calidad y cantidad del trabajo realizado en una unidad de tiempo. Esta visibilidad instantánea nos permite observar la productividad del equipo de trabajo, así como los beneficios a escala administrativa para un líder de grupo.
Con respecto a las diferencias de versión a versión, utiliza un algoritmo de diferenciación binaria cuando almacena el historial de versiones, el cual trabaja igual tanto en archivos de texto como archivos binarios. Esto significa que utiliza exactamente el mismo proceso para “versionar” cualquiera de estos tipos de archivos.
Cabe destacar que Subversion guardará únicamente las diferencias de una versión a otra en el servidor, en contraposición con sistemas como CVS que, para cada versión, hace una copia completa del archivo original.
Instalando Subversion en JDeveloper
Para instalar Subversion en JDeveloper como primer paso debemos ver en las actualizaciones, desde el menú Help la opción “Check for Updates”.
Utilizando el wizard para descargar actualizaciones elegimos la opción de buscar en “Official Oracle Extensions and Updates”
Descargamos los paquetes y al finalizar el wizard de instalación reiniciamos JDeveloper. En este momento ya tenemos instalado Subversion en JDeveloper.
Oracle provee la siguiente documentación para la configuración de Subversion a un repositorio y ver la guía de uso:
http://www.oracle.com/technology/products/jdev/htdocs/partners/addins/exchange/subversion/subv ersion.html
Tip técnico del día: Personalizar SQL*Plus: Link:
http://soporte.datum.com.gt/welcome/tip.jsp
En un ambiente donde coexisten muchas base de datos , en un mismo sistema operativo puede llegar a ser confuso para un dba a que base de datos está conectado en ese momento basándose en la el campo instance de la vista v$instance, para evitar confuncion de correr un comando en la base de equivocada y ahorrar tiempo puede mejorar la salida la interfaz estándar de SQL*Plus para cambie el prompt de “SQL>” a algo como “PROD>” para la base de datos de producción , esto puede hacerse modificando el archivo glogin.sql que se encuentra ubicado en el directorio : $ORACLE_HOME/sqlplus/admin
Se agrega el siguiente código: set termout off
define new_prompt='nolog'
column value new_value new_prompt select username || ': ' || substr(substr(global_name,1,30),1, instr(substr(global_name,1,30),'.')-1) value from user_users, global_name;
set sqlprompt "&new_prompt> " set termout on
Esto Cambiara la salida de la siguiente manera: set ORACLE_SD=PROD;
export ORACLE_SID sqlplus system/manager
PROD> select name from v$database;
PROD
1 Row selected.
PROD>
Por Lic. Francisco Barrundia
Nuevo Web Site
Le invitamos a visitar nuestro totalmente nuevo sitio web, una nueva herramienta de contacto al servicio de nuestros clientes. Ingrese a www.datum.com.gt para conocer más sobre nuestros servicios, productos, noticias, etc.
Gracias a la retroalimentación de nuestros clientes, Datum – Educacional estará impartiendo el siguiente curso:
Oracle Database 10g: Backup and Recovery Qué aprenderá:
Después de completar este curso, los estudiantes podrán evaluar sus propios requerimientos de recuperación y desarrollar una estrategia adecuada para procedimientos de respaldo y
recuperación. Ellos aprenderán cómo utilizar RMAN y Enterprise Manager para realizar
operaciones de respaldo y recuperación. Características de Flashback son descritas como una forma adicional de recuperarse de un error humano.
Este curso incluye Oracle Secure Backup, el cual provee un respaldo a cinta confiable de la base de datos a través de integración directa con RMAN y también provee respaldo general de sistema de archivos a la cinta. Los estudiantes instalan Oracle Secure Backup y lo utilizan para respaldar archivos de la base de datos Oracle y del sistema de archivos.
Aprenda a:
Desarrollar un respaldo y una estrategia de recuperación efectiva Realizar operaciones de respaldo y recuperación utilizando RMAN Instalar y configurar Oracle Secure Backup para respaldos a cinta
Utilizar Oracle Secure Backup para respaldar la base de datos y el sistema de archivos.
Retroalimentación, comentarios, temas de interés y sugerencias para hands-on sessions:
newsletter@datum.com.gt
Comentarios y Sugerencias:
Su opinión es muy importante; si desea hacernos algún comentario o sugerencia, por favor escríbanos al correo electrónico: