• No se han encontrado resultados

Eventos de espera de bases de datos Oracle

N/A
N/A
Protected

Academic year: 2021

Share "Eventos de espera de bases de datos Oracle"

Copied!
16
0
0

Texto completo

(1)

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

(2)

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#

(3)

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 Carrillo

Mcarrillo@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.

(4)

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.

(5)

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.

(6)

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.

(7)

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

(8)

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.

(9)

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.

(10)

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.

(11)

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.

(12)

Versionamiento en JDeveloper

Por: Ing. Luis Eduardo Cordón

ecordon@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”.

(13)

 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”

(14)

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

(15)

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.

(16)

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:

Referencias

Documento similar

El valor agregado 6 del indicador por universidad se pre- senta en una escala de 0 (mínimo valor obtenido por una universidad del sistema en ese indicador) a 100 (correspondiente

El segundo paso es elegir la comunidad autónoma o comunidades que se contemplan como lugares en los que cursar los estudios. Para ello, el usuario debe marcar las elegidas

El segundo paso es elegir la comunidad autónoma o comunidades que se contemplan como lugares en los que cursar los estudios. Para ello, el usuario debe marcar las elegidas

 Tejidos de origen humano o sus derivados que sean inviables o hayan sido transformados en inviables con una función accesoria..  Células de origen humano o sus derivados que

Este mismo régimen de deberes tiene sentido cuando la actuación de reforma o renovación significa un cambio radical de la morfología urbana, normalmente acompa- ñado por un cambio

Tabla 4.3 Descripción de prueba para el CU Definir reglas de replicación Nombre del caso de uso: Mostrar reporte de réplica. Entrada Resultados

El proceso de Limpieza de Datos, o Data Cleaning como también se le conoce, no es más que corregir o remover información incorrecta, con formato inapropiado o duplicada en una base de

Las métricas de software ayudan a los desarrolladores a valorar el trabajo desarrollado, proveen la información necesaria para la toma de decisiones técnicas,