PG 3800
PG 3800
PG 3800
PROYECTO DE GRADO
METODO DE AFINAMIENTO DEL SISTEMA GESTOR DE
BASE DE DATOS ORACLE 11G PARA LA AGENCIA
NACIONAL DE HIDROCARBUROS (ANH)
Proyecto de Grado para obtener el Título de Licenciatura en Informática
Mención Ingeniería de Sistemas Informáticos
LA PAZ – BOLIVIA
2020
HOJA DE CALIFICACIONES
UNIVERSIDAD MAYOR DE SAN ANDRÉS
FACULTAD DE CIENCIAS PURAS Y NATURALES
CARRERA DE INFORMÁTICA
PROYECTO DE GRADO:
METODO DE AFINAMIENTO DEL SISTEMA GESTOR DE BASE DE DATOS
ORACLE 11G PARA LA AGENCIA NACIONAL DE HIDROCARBUROS (ANH)
HA SIDO: …………………………………………………
TRIBUNAL: ………………………………….
TRIBUNAL: ………………………………….
TRIBUNAL: ………………………………….
UNIVERSIDAD MAYOR DE SAN ANDRÉS
FACULTAD DE CIENCIAS PURAS Y NATURALES
CARRERA DE INFORMÁTICA
LICENCIA DE USO
A Dios, por brindarme cada día el regalo de la vida, por enseñarme sus principios,
sentir su amor y fidelidad, que de los tropiezos se aprende yo no se debe renunciar a lograr
las metas trazadas en la vida.
Al Licenciado M. Sc. Franz Cuevas Quiroz, por darnos a conocer sus experiencias y
conocimientos que motivaron a los alumnos del Taller a concluir sus proyectos y de forma
particular a mi persona.
Al Ingeniero Rene David Chávez Ortiz, por todos sus consejos, por su amistad, jefe
e impulsor para la realización de este proyecto de grado.
GRACIAS
zamoranogabo@gmail.com
RESUMEN
El proyecto de grado denominado “MÉTODO DE AFINAMIENTO DEL SISTEMA
GESTOR DE BASE DE DATOS ORACLE 11G PARA LA AGENCIA NACIONAL DE
HIDROCARBUROS (ANH)” se presenta como solución para optimizar el rendimiento del
Motor 11g. El Sistema Gestor de Base de Datos Oracle 11g lanzado por primera vez en
septiembre de 2008; sucedió a Oracle 10g. Cada nueva versión tiene versiones de conjuntos
de parches más recientes, las más importantes de las cuales se conoce como versión. Un
objetivo principal de cada versión actualizada es aumentar el rendimiento y escalabilidad
sobre la versión anterior. Por lo tanto, hay muchas características nuevas en 11g.
La Agencia Nacional de Hidrocarburos cuenta con dos servidores de datos, los cuales
se encuentran con el Motor 11g, los servidores son HP Proliant BL620cG7 con sistema
operativo Red Hat 6.4, que fue una distribución Linux.
Para el desarrollo del método, se consideran las buenas prácticas de afinamiento, una
buena práctica de afinamiento es un procedimiento para afinar un determinado motor
(perteneciente a Oracle) de acuerdo a un entorno (recursos de hardware y software). El
método es aplicable solo para el entorno de producción de la Agencia Nacional de
Hidrocarburos, pero para futuros estudios también podría ser considerada una buena práctica
de afinamiento. El método propuesto, aportará a la Agencia Nacional de Hidrocarburos una
forma de obtener información de cómo se encuentra actualmente el rendimiento de su
Sistema Gestor de Base de datos (monitorización del rendimiento), saber interpretar esta
monitorización y proceder a ajustar lo que se requiera, ya sea el ajuste en las estructuras de
memoria o en las estructuras físicas.
Las herramientas utilizadas en el método (Oracle Enterprise Manager y SQL*) vienen
incluidas a la hora de instalar el Sistema Gestor de Base de Datos Oracle 11g, entonces no se
pagan licencias por el uso de estas herramientas.
Palabras clave: Oracle, método de afinamiento 11g, Red Hat, motor de Oracle, gestor de
base de datos Oracle 11g
RESUME
The National Hydrocarbons Agency has two data servers, which are with the 11g Engine, the
servers are HP Proliant BL620cG7 with Red Hat 6.4 operating system, which was a Linux
distribution.
For the development of the method, good tuning practices are considered, a good
tuning practice is a procedure to tune a certain engine (belonging to Oracle) according to an
environment (hardware and software resources). The method is applicable only for the
production environment of the National Hydrocarbons Agency, but for future studies it could
also be considered a good fine-tuning practice. The proposed method will provide the
National Hydrocarbons Agency with a way to obtain information on how the performance of
its Database Management System is currently being performed (performance monitoring), to
know how to interpret this monitoring and to proceed to adjust what is required, either the
adjustment in memory structures or in physical structures.
The tools used in the method (Oracle Enterprise Manager and SQL *) are included
when installing the Oracle 11g Database Management System, so no licenses are paid for the
use of these tools.
INDICE
CAPITULO I ..................................................................................................................................... 1
INTRODUCCION............................................................................................................................. 1
1.1 ANTECEDENTES ................................................................................................................ 3
1.1.1 Antecedentes Institucionales ................................................................................................... 3
1.1.2 Antecedentes de proyectos similares ...................................................................................... 6
1.2 PLANTEAMIENTO DEL PROBLEMA .................................................................................. 7
1.3 DEFINICION DE OBJETIVOS ...................................................................................... 8
1.3.1 Objetivo General .............................................................................................................. 9
1.3.2 Objetivos Específicos................................................................................................. 9
1.4 JUSTIFICACIÓN ....................................................................................................................... 9
1.5 ALCANCES Y LÍMITES ......................................................................................................... 10
1.5.1 Alcances ........................................................................................................................... 10
1.5.2 Límites ............................................................................................................................. 11
1.6 APORTES .................................................................................................................................. 11
1.6.1 Aporte Práctico............................................................................................................... 11
1.6.2 Aporte Teórico ................................................................................................................ 11
CAPITULO II.................................................................................................................................. 12
MARCO TEORICO ....................................................................................................................... 12
2.1 ORACLE 11G WINDOWS Y LINUX .................................................................................... 14
2.1.1 Arquitectura de un Servidor Oracle 11g ...................................................................... 16
2.2 ANÁLISIS ACTUAL DEL SISTEMA GESTOR DE BASE DE DATOS ORACLE 11G
DE LA AGENCIA NACIONAL DE HIDROCARBUROS ......................................................... 24
2.2.1 Monitorización del rendimiento actual del Sistema Gestor de Base de Datos Oracle
11g ............................................................................................................................................. 25
2.3 INTERPRETACIÓN DE LA MONITORIZACIÓN ............................................................. 34
2.3.1 Interpretación de la primera sección ............................................................................ 35
2.3.2 Interpretación de la segunda sección ............................................................................ 35
2.3.3 Interpretación de la tercera sección.............................................................................. 36
2.3.4 Interpretación de la cuarta sección ............................................................................... 36
2.4 FASES DE LA METODOLOGÍA ................................................................................. 37
2.4.1 Administración de rendimiento .................................................................................... 37
2.4.2 Ajuste de aplicación ....................................................................................................... 39
2.4.3 PRIMERA ETAPA: Recolección y Análisis de Información ..................................... 41
2.4.4 SEGUNDA ETAPA: Afinamiento de las Estructuras de Memoria ........................... 42
2.4.5 TERCERA ETAPA: Afinamiento de las Estructuras Físicas .................................... 43
2.5 JUSTIFICACIÓN DEL USO DE METODOLOGÍA ............................................................ 44
2.6 ANÁLISIS DE COSTOS Y BENEFICIOS ............................................................................. 45
CAPITULO III ................................................................................................................................ 47
EVOLUCIÓN Y PUESTA EN MARCHA.................................................................................... 47
3.1 PLANIFICACIÓN Y ESTRATÉGIA ..................................................................................... 47
3.2 ANÁLISIS Y AFINAMIENTO ................................................................................................ 49
3.2.1 Primera Etapa: Recolección y Análisis de Información ............................................. 52
3.2.2 Segunda Etapa: Afinamiento de las Estructuras de Memoria ................................... 61
3.2.3 TERCERA ETAPA: Afinamiento de las Estructuras Físicas .................................... 65
3.3 MEDICIÓN DEL RENDIMIENTO DEL SISTEMA GESTOR DE BASE DE DATOS
ORACLE 11G.................................................................................................................................. 68
3.4 ESTUDIO DE FACTIBILIDAD ECONÓMICA ................................................................... 72
3.4.1 Costos fijos del proyecto ................................................................................................ 73
3.5 EVALUACIÓN DEL CUMPLIMIENTO.............................................................................. 74
CAPITULO IV ................................................................................................................................ 76
CONCLUSIONES Y RECOMENDACIONES ............................................................................ 76
4.1 CONCLUSIONES ..................................................................................................................... 76
4.2 RECOMENDACIONES ........................................................................................................... 77
BIBLIOGRAFÍA ............................................................................................................................. 79
ANEXOS .......................................................................................................................................... 80
INDICE DE FIGURAS
Figura 2. 1 Arquitectura Oracle 11g ........................................................................................... 16
Figura 2. 2 Arquitectura de una sola instancia............................................................................. 17
Figura 2. 3 Estructuras de memoria ............................................................................................ 20
Figura 2. 4 Verificación de la instalación de Statspack ............................................................... 26
Figura 2. 5 Instalación de Statspack .............................................................................................. 26
Figura 2. 6 Comprobación de la existencia de Statspack ............................................................ 27
Figura 2. 7 Tomar Snapshots ......................................................................................................... 28
Figura 2. 8 Reporte diferencial ...................................................................................................... 30
INDICE DE TABLAS
Tabla 1. Acciones importantes dentro del perfil de carga .......................................................... 35
Tabla 2. Porcentajes de aciertos importantes de la instancia ...................................................... 36
Tabla 3. Hits por monitorización antes de implementar la metodología ................................... 71
Tabla 4. Hits por monitorización después de aplicar la metodología ......................................... 72
Tabla 5. Costo de material de escritorio ....................................................................................... 73
Tabla 6. Costos de recolección y producción de información ..................................................... 73
Tabla 7. Costos de la aplicación de la metodología ...................................................................... 74
INDICE DE ANEXOS
ANEXO A ........................................................................................................................................ 80
ANEXO B ......................................................................................................................................... 81
ANEXO C ........................................................................................................................................ 94
1
CAPITULO I
INTRODUCCION
Los servicios residen en servidores que nos permiten realizar nuestras labores con
mayor rapidez y eficacia. Para el rendimiento de los servidores es necesario desarrollar
procedimientos o procesos que permitan la optimización1 del recurso utilizado,
independientemente del hardware o software.
Los sistemas gestores de base de datos no son la excepción, ya que el motor de base
de datos requiere de una plataforma o sistema operativo, siendo ambos lógicamente
desarrollados.
1
Buscar la mejor manera de realizar una actividad.
2
La optimización del rendimiento forma parte del ciclo de vida de todas las
aplicaciones de base de datos, pudiendo ser esta tarea de forma secuencial o predefiniendo
un orden de acuerdo a la necesidad de la base de datos. Y cuanto antes se contemplen las
cuestiones relacionadas al rendimiento o características técnicas de una máquina será más
probable resolver con éxito los problemas.
2
Modismo usado para referirse al acto de mejorar el rendimiento de la base de datos.
3
Para optimizar el rendimiento del sistema gestor de base de datos Oracle 11g de la
Agencia Nacional de Hidrocarburos, es necesario: conocer la arquitectura, el rendimiento
actual y administración del Motor3 Oracle 11g, esto para poder desarrollar un método que se
adecue a los requerimientos específicos.
Una vez obtenido este conocimiento, se podrá desarrollar un método que sea apta
para el Motor Oracle 11g de la Agencia Nacional de Hidrocarburos, la cual podrá aplicarse
para lograr optimizar el rendimiento del mismo.
1.1 ANTECEDENTES
3
Modismo que hace referencia al Sistema Gestor de Base de Datos.
4
Siendo uno de sus productos de generar, sistematizar y publicar la información del sector
hidrocarburífero, a finales del 2012, la Dirección de Tecnologías de Información y
Comunicación, velando por niveles adecuados en el procesamiento, custodio y seguridad de
la información de la Agencia Nacional de Hidrocarburos encaro la centralización de todos
sus servicios informáticos. Citada transformación fue posible mediante la adquisición de
Infraestructura tecnológica de hardware y software.
Para el afinamiento del sistema gestor base de datos se debe considerar las nuevas
estructuras de la arquitectura existente en Oracle 11g.
5
“Evaluación del rendimiento del Diseño de una Base de Datos”, orientado a medir el
rendimiento del diseño de una Base de Datos Relacional, para lo cual requiere de un modelo,
7
Los trabajos mencionados no contemplan la evolución de las Bases de Datos el cual con
el tiempo se incorporaron nuevos componentes en estructura y en arquitectura y estos no
trabajan directamente con los mismos, ni tampoco una metodología que se adecue a los
requerimientos específicos. Sin duda alguna no plantean una optimización para el
rendimiento de sistemas gestores de base de datos.
En base a los estudios y artículos realizados que se menciona a continuación sobre la falta
de afinamiento a un sistema gestor de base de datos y los problemas que puede ocasionar:
“Alta disponibilidad con Oracle Database 11g versión 2” el cual menciona que para
obtener una alta disponibilidad de una base de datos se debe realizar el afinamiento para el
aprovechamiento de la protección de datos optimizada para Oracle, alta disponibilidad
integrada en las aplicaciones y una arquitectura integrada y abierta. Lo que si no se procede
a realizar esta tarea conlleva a un bajo rendimiento y la falta de disponibilidad de la base de
datos. [DOCUMENTO TÉCNICO DE ORACLE, 2010]
4
Las herramientas CASE son diversas aplicaciones informáticas destinadas a aumentar el balance en el
desarrollo de software reduciendo el costo en términos de tiempo y de dinero.
8
“Base de Datos” el siguiente artículo menciona que la falta de afinación puede provocar
desde un bajo rendimiento hasta la pérdida de datos importantes, sobre todo en base de datos
grandes como Oracle. El afinamiento de las bases de datos es un elemento fundamental para
la gestión de las empresas, por eso es necesario asegurar su consistencia. [ICUALITY, 2014]
Por lo que podemos mencionar los siguientes problemas secundarios a los que nos lleva
la falta de afinamiento:
Se desconoce el rendimiento del Sistema Gestor de Base de Datos Oracle 11g. por lo
que puede ocasionar la falta de disponibilidad de la base de datos.
No existe procedimientos para optimizar el rendimiento de los nuevos elementos en
la estructura de memoria del sistema gestor de base de datos 11g, lo que conlleva a
que los administradores de base de datos apliquen diferentes formas de afinamiento.
Se descuida la tarea de afinamiento como preventiva, siendo esta actualmente
correctiva, esta forma de actuar pueden ser causante de mayores conflictos como
ocasionar la falta de disponibilidad de la base de datos.
Debido a las acciones correctivas para el afinamiento al sistema gestor de base de datos
se tiene el siguiente problema central:
¿Cómo se puede optimizar el rendimiento de memoria y del motor del sistema gestor de
base de datos Oracle 11g de la Agencia Nacional de Hidrocarburos?
Ante los problemas identificados, se plantean los siguientes objetivos para la elaboración
del presente proyecto. (Ver ANEXO A).
9
Obtener métricas del rendimiento del sistema gestor de base de datos Oracle 11g antes
y después del afinado.
Determinar una estructura de pasos para el afinamiento del sistema gestor de base de
datos Oracle de acuerdo a la arquitectura 11g, considerando el entorno de producción
de la Agencia Nacional de Hidrocarburos.
Aplicar métodos y técnicas de afinamiento para optimizar el rendimiento de las
estructuras de memoria del sistema gestor de base de datos Oracle 11g.
Aplicar métodos y técnicas de afinamiento para optimizar el rendimiento de las
estructuras físicas del sistema gestor de base de datos Oracle 11g.
1.4 JUSTIFICACIÓN
Optimizar el rendimiento del motor o sistema gestor de base de datos Oracle 11g para
la Agencia Nacional de Hidrocarburos, reducirá la suerte de ejercicio de ensayo, error que se
realiza en la mayor parte del afinamiento Oracle, esto hace que incida en la disminución de
horas extras de trabajo y el consiguiente costo que esto significa.
También evita la compra de recursos de hardware innecesarios debido a un mal rendimiento
en el motor, así como también el recurso humano que interactúa con la administración del
sistema gestor de base de datos.
10
1.5.1 Alcances
Dentro de los alcances del proyecto se define la metodología está compuesta en tres
etapas:
Recolectar información, etapa principal para determinar cómo se encuentra el
rendimiento del sistema gestor de base de datos 11g para así realizar la interpretación.
Indicar los procedimientos que se deben seguir para optimizar el rendimiento de las
estructuras de memoria.
11
Indicar como optimizar las E/S a disco y optimizar el rendimiento de las estructuras
físicas de almacenamiento, como ser archivos de datos, archivos redo log y archivos
de control.
1.5.2 Límites
1.6 APORTES
Desarrollar un método, para optimizar el rendimiento del sistema gestor de base de datos
Oracle 11g de la Agencia Nacional de Hidrocarburos.
Brindar una fuente de investigación como base para posteriores proyectos relacionados
con el afinamiento de sistemas gestor de base de datos Oracle.
Así como también de un método de afinamiento apta para el sistema gestor de base de
datos Oracle 11g.
12
CAPITULO II
MARCO TEORICO
c) Total Recall, permite a los usuarios rastrear y mantener los cambios de datos de
manera fácil y económica, a través del archivo continuo de datos. En el ambiente
mundial, donde el cumplimiento ha pasado a primera plana, la capacidad de recuperar
datos rápidamente cuando se lo solicita se considera muy valiosa. En otras versiones
era extremadamente costoso, aunque necesario, almacenar cantidades masivas de
14
datos en sistemas de almacenamiento. Con Total Recall, ahora es mucho más fácil y
más económico rastrear y recopilar los datos del pasado.
La base de datos Oracle 11g es una solución optimizada de base de datos para aquellas
implementaciones que requieren escalabilidad, confiabilidad y alto desempeño, se integra
por completo con las características del sistema operativo Windows y el hardware
subyacente. Oracle 11g ofrece también desempeño de primer nivel a través del soporte de
memorias extendidas, archivos binarios y de gran volumen.
Cuando se ejecuta en Windows, Oracle Database 11g presenta las mismas características
y la misma funcionalidad que las distintas plataformas Linux y UNIX soportadas por Oracle.
No obstante, la interface entre la base de datos y el sistema operativo ha sido sustancialmente
15
modificada para aprovechar los servicios exclusivos brindado por Windows. Como resultado,
Oracle Database 11g en Windows no es un puerto directo de la base de código UNIX.
Mientras que un clúster está formados por dos o más servidores independientes pero
interconectados. Algunos clúster están configurados de modo tal que puedan proveer alta
disponibilidad permitiendo que la carga de trabajo sea transferida a un nodo secundario si el
16
nodo principal deja de funcionar. Otros clúster están diseñados para proveer escalabilidad
permitiendo que los usuarios o carga se distribuya entre los nodos. Ambas configuraciones
son consideradas clúster. Una característica importante que tienen los clúster es que se
presentan a las aplicaciones como si fuera un solo servidor. En resumen, un clúster es un
grupo de servidores independientes que cooperan comportándose como si fueran un solo
sistema.
La estructura de memoria.
17
La base de datos se refiere a los ficheros en disco que almacenan los datos.
Cuando iniciamos Oracle primero se inicia la instancia y luego se abre la base de datos.
Una instancia de Oracle siempre se corresponde con una sola base de datos. Aunque existen
muchas posibilidades de crear entornos distribuidos.
La Instancia
Esta memoria se llama System Global Area (SGA). El DBA (Administrador de Base
de Datos) puede dimensionar cuánto ocupará el SGA.
a) Los ficheros de datos, no se corresponden con las tablas de nuestro diseño. Las tablas
son diseño lógico y los ficheros diseño físico. Los procesos de Oracle se encargan de
relacionar las estructuras físicas y las lógicas.
Cambios sobre los datafiles, como cambiar su ubicación o su nombre, puede hacer
que Oracle falle.
b) Los redo log, registro secuencial de los cambios aplicados a los datos (operaciones
DML).
Suelen ser, al menos, dos ficheros físicos.
Protegen al sistema de pérdidas de datos. Son útiles, en caso de error, para recuperar
el estado anterior de los datos.
c) El fichero de control (controlfile), almacena cuál es la ubicación de las estructuras
físicas de Oracle. La instancia necesita leer primero el controlfile para poder iniciarse.
Estructura de memoria
La SGA, como mínimo, debe contener estas tres estructuras de memoria:
19
La lista objetos modificados mantiene aquellos bloques de datos que han sido
modificados y que aún no han sido escritos en el disco.
La lista de objetos menos usados recientemente mantiene los bloques libres,
los bloques a los que se está accediendo actualmente y los bloques sucios que
aún no han sido remitidos a la lista de sucios.
b) El Redo Log buffer, zona de la SGA en la que se almacenan los cambios que se
hacen sobre los datos.
Los procesos de servidor que hacen cambios en los datos de la database buffer cache
también lo apuntan en el log buffer.
Los procesos de servidor a los que se conectan los clientes, también necesitan
memoria, pero no es compartida, así que se almacena en el PGA. Además, cada proceso de
servidor tiene su propia zona de PGA.
Estructuras de procesos
Los procesos de background se inician con la instancia y están trabajando hasta que la
instancia se apaga.
a) System Monitor (SMOM), tiene asignada la tarea de abrir la base de datos, valida
que los datos que se dan que se dan en el controlfile sean correctos, se encarga de
localizar espacio libre en los datafile para guardar más datos.
b) Process Monitor (PMON), se encarga de localizar problemas con los procesos de
servidor. Si alguno de estos procesos falla, el PMON se encarga de destruir el proceso
de servidor y liberar la memoria que ocupa.
c) Database writer (DBWn), los procesos de servidor no escriben directamente sobre
los ficheros de datos, sino en la database buffer cache.
El database writer es el encargado de escribir a disco estos datos.
Una instancia puede tener más de un DBWn funcionando. A cada uno se les llama:
DBW0, DBW1, etc.
Con DBWn nos referimos a todos los Database Writer que haya.
El número de DBWn que suelen haber es uno por cada 8 CPUs aproximadamente.
d) Log writer (LGWR), este proceso es el encargado de escribir los cambios que hay
en el log buffer a los log files de disco.
Como los procesos de servidor escriben los cambios en el log buffer de memoria y la
memoria puede borrarse, el objetivo es que el LGWR escriba estos datos en los log
files lo antes posible.
Es uno de los cuellos de botella de la arquitectura de Oracle.
e) Checkpoint Process (CKPT), va asignando checkpoints dentro de los buffers de
cambio, para poder recuperar la base de datos en caso de fallo.
22
Estructuras lógicas de la base de datos, los programadores trabajan con las estructuras
lógicas, como por ejemplo tablas, toda esta información se guarda en segmentos.
Una tabla tiene asociado:
23
Diccionario de datos
Los datos que almacena son una descripción de los contenidos físicos y lógicos que tiene
la base de datos:
Definición de usuarios.
Información de seguridad.
Restricciones de integridad.
No podemos acceder al diccionario de datos directamente, a no ser que nos conectemos
como usuario DBA.
La base de datos
Fichero de control
Oracle actualiza el fichero de control automáticamente cada vez que se produce una
modificación de la estructura de la base de datos (adición o cambio de ubicación de un
fichero, por ejemplo). Oracle determina el tamaño del fichero de control.
En el mismo momento en que se ejecuta una instancia para abrir una base de datos, el
fichero de control es el primero en abrirse. Permite a la instancia localizar y abrir el resto
ficheros de la base de datos. Si no se puede encontrar el fichero de control (o está dañado),
la base de datos no se puede abrir, aunque el resto de ficheros de la base de datos esté
presente (la instancia permanece en el estado NOMOUNT).
2.2.1 Monitorización del rendimiento actual del Sistema Gestor de Base de Datos
Oracle 11g
Al ajustar una base de datos, es importante tener una línea de base establecida para una
comparación posterior cuando el sistema esté funcionando mal. Un punto de datos de
referencia ayuda a identificar los factores que se deben verificar al diagnosticar nuevos
problemas de rendimiento. Algunos factores a verificar son:
El paquete Statspack es un conjunto de scripts SQL, PL/SQL y SQL * Plus que permiten
la recopilación, automatización, almacenamiento y visualización de datos de rendimiento.
Statspack almacena las estadísticas de rendimiento de forma permanente en tablas de Oracle,
que luego se pueden utilizar para informes y análisis. Los datos recopilados se pueden
analizar mediante informes de Statspack, que incluyen una página de resumen de carga y
estado de la instancia, declaraciones SQL de recursos elevados y los parámetros de
inicialización y eventos de espera.
Ahora se debe tomar snapshots para ver el rendimiento del Sistema Gestor de Base
de Datos Oracle 11g, para ello se debe conectar a la base de datos con el usuario y password
que se crearon en el momento de instalar Statspack (el usuario dueño de los objetos de
Statspack es PERSTAT). La Figura 2.7 muestra la línea de comandos para tomar un snapshot
a las 09:30 a.m. y otra a las 15:30 p.m.
28
Por último se debe generar reportes diferenciales, esto se logra teniendo un snapshot
inicial (09:30 a.m.) y otro snapshot final (15:30 p.m.), así lograr un reporte por día.
29
Esta información es general sobre el estado del rendimiento del Sistema Gestor de Base
de Datos Oracle 11g, la información que se requiere para el caso es aquella sobre la SGA,
sus áreas de memoria (Shared Pool, DB Bufer Caché y Redo Log Buffer Caché), la E/S a
disco y los valores de algunos parámetros de inicialización.
Se toman snapshots durante cuatro días (lunes, martes, miércoles y jueves) lo cual
significa contar con ocho snapshots y de ellos generar cuatro reportes diferenciales.
A continuación se muestra el primer reporte generado:
está realizando, como ser lecturas lógicas, lecturas físicas, operaciones de ordenación,
escrituras físicas por segundo, número de transacciones por segundo.
Segunda Sección
La segunda sección muestra los porcentajes de eficiencia de la instancia, como ser la
tasa de aciertos de buffer y la tasa de aciertos de la caché de biblioteca, la tasa de no espera
del buffer, la tasa de no espera del redo log buffer, en si son indicadores que tiene el fin de
identificar si existe algún cuello de botella. También nos muestra las estadísticas del conjunto
32
Tercera Sección
La tercera sección muestra la E/S a los tablespaces, como también la dirección de los
archivos, número de lecturas por segundo, número de bloques leídos por segundo, número
de escrituras y esperas en el buffer.
33
Cuarta Sección
La cuarta sección nos muestra información respecto a la información procesada solo
en memoria, área actual de trabajo de mejoría del objetivo, porcentaje de PGA asignada al
área de trabajo.
34
Los reportes de las estadísticas de los días 2, 3 y 4 con sus respectivas secciones se
encuentran en el ANEXO B.
Una vez realizada la monitorización se deben interpretar los resultados para entender
a cabalidad como se encuentra el rendimiento del motor.
35
Los elementos importantes son las no esperas en el buffer, acceder a memoria (hit) y
no a disco (miss) para el data buffer cache, utilizar una misma consulta y la no espera del
redo log buffer cache.
Los reportes de los cuatro días muestran que los tablespace a los que más se accede
en escritura es el UNDOTBS1 y lectura el SYSTEM, esto se debe a que el tablespace
UNDOTBS1 almacena los cambios realizados a la información contenida en la base de datos
y no se hizo un commit (no se confirmó el cambio) y el tablespace SYSTEM por el hecho de
contener información administrativa de la base de datos y al diccionario de datos.
Como se puede observar en los reportes, la PGA tiene un 100% de aciertos en memoria,
esto quiere decir que no falló a la hora de asignar un proceso de servidor cuando un usuario
estableció una sesión.
37
a) Diagnóstico de rendimiento
Los pasos para lograr un buen rendimiento son los siguientes: recopilación de datos,
realización de un análisis adecuado y la posterior puesta en práctica de un plan de acción
efectivo.
El marco de autoadministración de Oracle Database 11g lleva a cabo estas tareas por
el DBA, lo cual se traduce en un diagnóstico de rendimiento simple y rutinario. El Automatic
Workload Repository (repositorio de carga de trabajo automático) recopila los datos
necesarios y el Automatic Database Diagnostics Monitor (monitor de diagnóstico automático
de base de datos) analiza los datos y brinda recomendaciones estratégicas, concretas y útiles.
Los reportes de Automatic Workload Repository (AWR), son sin duda una de las
mayores armas para realizar “troubleshooting5” en un ambiente de base de datos Oracle.
ADDM examina los datos depurados en AWR y realiza análisis para determinar los
problemas fundamentales del sistema desde una base proactiva, recomienda soluciones y
cuantifica los beneficios esperados. El objetivo del ADDM es identificar aquellas áreas del
sistema que consumen la mayor cantidad de tiempo. ADDM permite profundizar e identificar
las causas raíz de los problemas en vez de sólo señalar los síntomas, e informa el impacto de
dicho problema sobre todo el sistema. En el caso de hacer una recomendación informa acerca
de los beneficios que pueden esperarse en términos de tiempo.
5
Troubleshooting, es una búsqueda lógica y sistemática del origen del problema para que pueda ser
resuelto y así el equipo o proceso pueda ser puesto en funcionamiento otra vez.
39
ADDM comienza su análisis centrándose en las actividades en las que la base de datos
emplea la mayor parte del tiempo y luego profundiza mediante la realización de un
sofisticado árbol de clasificación de problemas.
Análisis excesivos.
Contención de bloqueo.
Capacidad ES.
Resolución del tamaño de las estructuras de memoria de Oracle, por ejemplo PGA,
caché de bufer, búfer de archivos.
deficiencias de estructura y diseño de la aplicación. Por lo tanto, una parte fundamental del
ajuste de rendimiento del sistema de la base de datos es el ajuste de las sentencias SQL.
Dado que el optimizador de consultas toma decisiones cruciales que ejercen un gran
impacto en el rendimiento de una consulta, como por ejemplo, si es conveniente utilizar un
índice o no, qué técnicas de unión utilizar si la consulta tiene que ver con la unión de tablas
múltiples, etc.
Fase 1.4 Interpretación de los resultados del Monitor de Diagnóstico de Base de Datos
Automático (ADDM).
Última fase de la etapa 1, donde serán representados como un conjunto de
conclusiones y pertenece a uno de estos tres tipos:
Problema. Resultados que describen la causa de un problema de rendimiento
de bases de datos.
Síntoma. Resultados que contienen información que a menudo conducen a
encontrar uno a más problemas.
Información. Resultados que se usan para reportar las áreas del sistema que
no tienen un impacto en el rendimiento.
2.4.4 SEGUNDA ETAPA: Afinamiento de las Estructuras de Memoria
Fase 2.2 Ajuste del Caché de Buffer de Base de Datos (Data Buffer Cache)
Data buffer caché, donde mantiene los datos traídos por las órdenes SQL de los
usuarios conectados a la base de datos. Está definido por su parámetro de inicialización.
Fase 2.3 Ajuste del Caché de Buffer de Redo Log (Redo Log Buffer Cache)
Redo log buffer, aquí se registran los cambios hechos a la base de datos. Aquí se
necesita del espacio que necesitan los procesos del servidor en el buffer de redo log sea
suficiente.
Fase 3.2 Ajuste de los archivos Redo Log (Redo Log Files)
44
La estructura más crucial para las operaciones de recuperación es el Redo Log que
consta de dos o más archivos pre asignados que almacenan todos los cambios realizados en
la base de datos a medida que ocurren. Cada instancia de una base de datos Oracle tiene
asociado un redo log para proteger la base de datos en caso de falla de la instancia. En esta
fase, al igual que los archivos de datos, los redo log deben ser ubicados en diferentes discos.
Costos
Beneficios
El monitoreo de los procesos de la base de datos será realizado 24x7 a través de las
herramientas.
Al disponer de un monitoreo 24/7 es posible detectar rápidamente los diversos cuellos
de botellas de la base de datos que pudieran llegarse a presentar
CAPITULO III
Para iniciar la resolución de los problemas, es definir síntomas primero. Los síntomas
más comunes de fallas en el desempeño del SQL son CPU, memoria, red, cuellos de botella
I/O y consultas lentas.
Una vez realizada la monitorización se deben interpretar los resultados para entender a
cabalidad como se encuentra el rendimiento del motor.
48
Cuando se crea una base de datos, hay que crear al menos un tablespace, que por
defecto es SYSTEM. Igualmente, cuando se crea un tablespace, se debe indicar al
menos un datafile que formará parte de este datafile (posteriormente se pueden añadir
más datafiles al tablespace). El datafile es un fichero físico al que tendremos que
asignar un directorio, un nombre y un tamaño inicial que posteriormente se podrá
ampliar según las necesidades.
Este tablespace es el que contendrá información de los usuarios SYS y SYSTEM que
son los usuarios que tienen la información necesaria para que funcione la base de
datos.
49
Por tanto, el tablespace SYSTEM es una pieza clave para el buen funcionamiento de
nuestra base de datos, por lo que es una buena práctica crear al menos otro tablespace
donde almacenar el resto de usuarios que vayamos creando. Podría ahorrarnos de:
La metodología propuesta está compuesta por tres etapas, donde la principal etapa es
recolectar información sobre cómo se encuentra el rendimiento del Sistema Gestor de Base
de Datos 11g, una vez obtenida esta información se debe realizar la interpretación.
La segunda etapa indica los procedimientos que se deben seguir para optimizar el
rendimiento de las estructuras de memoria.
La tercera etapa indica como optimizar las E/S a disco y optimizar el rendimiento de las
estructuras físicas (de almacenamiento), como ser los Archivos de Datos, Archivos Redo Log
y Archivos de Control.
Una vez aplicada la metodología y transcurrido un tiempo de uso del Sistema Gestor de
Base de Datos Oracle 11g, la metodología podría volver a ser aplicada pero no
necesariamente siguiendo un orden secuencial, ya que la estructura que necesite ser afinada
dependerá de la monitorización.
50
La información obtenida del estado del rendimiento del Sistema Gestor de Base de
Datos debe ser interpretada, interpretar cuál es el problema, cuales son los síntomas, en si
cuales son las áreas del SGBD que tiene mayor exigencia lo que ocasiona un bajo
rendimiento.
Paso 2. Establecer el valor de una sola vez para todas las ejecuciones del Monitor de
Diagnóstico de Base de Datos Automático. Por ejemplo, si el valor medio en
microsegundos es 8000, se debe ejecutar el siguiente comando como usuario SYS.
Crear las instantáneas. Es posible crear manualmente las instantáneas, pero esto
normalmente no es necesario porque el AWR genera imágenes de los datos de
55
rendimiento de una vez cada hora por defecto. En algunos casos, sin embargo, puede
ser necesario crear manualmente para capturar instantáneas en diferentes tiempos,
como cuando se quiere comparar datos de rendimiento a través de un período de
tiempo más breve que el intervalo de la instantánea.
Paso 3. Así como también se debe verificar los procesos de rendimiento en la sección de los
Procesos Top 10. Si un proceso está tomando demasiada memoria, entonces este proceso
debe ser investigado.
Esta fase describe como monitorizar la utilización de E/S a disco. Para monitorizar la
utilización de E/S a disco:
58
La Figura 3.4 Página detalles de disco contiene el uso de E/S a disco y el tiempo de
servicio de las estadísticas recogidas durante la última hora y la parte superior de disco de
dispositivos ordenados por porcentaje ocupado.
Paso 2. Se debe verificar la utilización actual de E/S. El gráfico anterior muestra el número
de E/S a disco que se realiza por segundo.
Paso 3. Se debe verificar también las estadísticas de las últimas 24 horas de E/S a disco.
59
Las estadísticas contienen la utilización de disco y las alertas generadas en las últimas
24 horas. Si se nota un aumento inesperado en este valor que se mantiene normal a través de
horas de trabajo, puede existir un problema de desempeño de E/S a disco y debe ser
investigado.
Paso 4. Verificar también el tiempo de servicio actual de E/S, el cual muestra el tiempo de
servicio más largo para E/S a disco.
Las estadísticas relacionadas con alertas generadas en las últimas 24 horas contienen
el tiempo de servicio de E/S. Si se nota un aumento inesperado en este valor que se mantiene
normal a través de horas de trabajo, puede existir un problema de desempeño de E/S a disco
y debe ser investigado.
Paso 5. En los Detalles del Disco, se debe comprobar si en un alto porcentaje de las veces, si
es así, este disco debe ser investigado.
En la Figura 3.5 Sección top disk devices se puede ver la unidad que aloja la Base
de Datos Oracle (unidad u07), es ocupada sólo alrededor de 1,3 por ciento del tiempo y no
parece ser un problema de rendimiento de disco.
Los resultados del análisis del Monitor de Diagnóstico de Base de Datos Automático son
representados como un conjunto de conclusiones y pertenece a uno de estos tres tipos:
Base de Datos. Por ejemplo, si un sistema realiza mucha lectura de actividades de E/S, el
Monitor de Diagnostico de Base de Datos Automático (ADDM) puede reportar una consulta
SQL de uso del 50 por ciento del tiempo de la base de datos a la actividad de E/S como un
hallazgo y una comprensión de que el buffer cache es responsable del uso del 75 por ciento
del uso del tiempo de la base de datos como otro hallazgo.
Un problema encontrado puede ser asociado con una lista de recomendaciones para la
reducción del impacto de un problema de rendimiento. Cada recomendación tiene un
beneficio que un estimado de una porción del tiempo de la base de datos puede ser grabado.
Cuando una recomendación múltiple es asociada con los hallazgos del Monitor de
Diagnóstico de Base de Datos Automático (ADDM), las recomendaciones pueden contener
alternativas para solucionar el mismo problema. En este caso, la recopilación de los
beneficios puede contener alternativas de solución al mismo problema. No es necesario
aplicar la recomendación para resolver el mismo problema.
En esta etapa las estructuras de memoria que se tomaran en cuenta para hacer la
optimización son:
Hay menos memoria para otras estructuras de memoria (con lo que se reduce el
rendimiento).
La existencia de muchas entradas puede hacer que encontrar contenido actual resulte
más lento que en un conjunto pequeño.
modificar este parámetro al valor Similar (las sentencias SQL similares compartirán cursores,
siempre que sus planes de ejecución respectivos sean los mismos).
A continuación, se muestra como alterar este parámetro (esto como usuarios SYSTEM
con rol DBA en el prompt de SQL*):
Lo segundo a realizar es asignarle más tamaño al conjunto compartido (para esto se debe
quitar espacio al conjunto grande, su tamaño es de 112 MB). A continuación se muestra como
alterar estos dos parámetros (LARGE_POOL_SIZE para el conjunto grande y
SHARED_POOL_SIZE para el conjunto compartido, siguiendo ese orden):
Fase 2.2 Ajuste del Caché de Buffer de Base de Datos (Data Buffer Cache)
El tamaño del del caché de buffer de base de datos está definido por el parámetro de
inicialización DB_CACHE_SIZE.
Para ajustar esta estructura se debe habilitar el cojunto de buffer KEEP (contiene datos
que se mantienen en la caché de buffers el máximo tiempo posible), que está definido por el
parámetro de inicialiación DB_KEEP_CACHE_SIZE, asignándole un tamaño de
8388608000 bytes (8000 MB), esto significa que el tamaño del data buffer cache será de
15737028608 (15008 MB).
A continuación se muestra como alterar los dos parámetros (esta alteración tiene un
orden, primero se debe disminuir el tamaño de DB_CACHE SIZE y luego recién se debe
asignar el tamaño a DB_KEEP_CACHE_SIZE).
ALTER SYSTEM SET DB_CACHE_SIZE=15008 MB;
ALTER SYSTEM SET DB_KEEP_CACHE_SIZE=8000 MB;
Fase 2.3 Ajuste del Caché de Buffer de Redo Log (Redo Log Buffer Cache)
Los procesos de Oracle Server copian los registros de redo del espacio de memoria
del usuario en el buffer de redo log para cada sentencia DML o DDL. Los registros de redo
65
Ajustar el buffer de redo log significa asegurarse de que el espacio que necesitan los
procesos del servidor en el buffer de redo log sea suficiente. Sin embargo, un espacio
excesivo reducirá la cantidad de memoria que se puede asignar a otras áreas.
El tamaño de redo log buffer viene definido por el parámetro LOG_BUFFER, tiene
un valor por defecto de 512 K o 128 K * el valor de CPU_COUNT (número de procesadores
con los que cuenta la instancia Oracle). El tamaño del LOG_BUFFER del Sistema Gestor de
Base de Datos Oracle 11g de la Agencia Nacional de Hidrocarburos es de 5242880 bytes (5
MB) lo que indica que la instancia cuenta con diez procesadores.
También se debe utilizar OFA (Arquitectura Flexible Óptima). OFA es un método para
configurar la base de datos Oracle. Esta arquitectura aprovecha las capacidades del Sistema
Operativo y de los subsistemas de disco para crear una configuración fácil de administrar que
permita una flexibilidad máxima para bases de datos de alto rendimiento y en crecimiento.
Sus características son:
66
La sintaxis es la siguiente:
/PM/H/U/PRODUCT/V/
Donde:
PM es el punto de montaje
H es el propósito del software.
U es el usuario de Sistema Operativo dueño de la instalación.
PRODUCT es una constante.
V es la versión del software.
Como los archivos de datos se encuentran dentro de los tablespaces entonces se deben
separar en diferentes discos, también se deben separar a aquellos a los cuales el acceso es
intenso, esto para evitar demoras en la E/S a disco.
Fase 3.2 Ajuste de los archivos Redo Log (Redo Log Files)
Al igual que los archivos de datos, los archivos redo log deben ser ubicados en
diferentes discos. Los archivos redo log pueden ser multiplexados, existen tres grupos de
redo logs, los cuales a su vez cuentan con tres miembros.
Los primeros miembros de los grupos deben ir en el disco D01, los segundos
miembros de los grupos deben ir en disco D02 y los últimos miembros de los grupos deben
ir en el disco D03.
Todo esto es para que el proeso en segundo plano LGWR al escribir del log buffer
cache a el archivo redo log no tenga esperas, no se tenga que escribir en serie, con esto se
escribirá en paralelo a los diferentes discos.
Estos archivos al igual que los archivos de datos y los archivos redo log deben ser
distribuidos en diferentes discos. El primer archivo de control debe ir en el disco D03, el
segundo archivo de control debe ir en el disco D04 y el último archivo de control debe ir en
el disco D05.
Una vez obtenidas las snapshots se procede a elaborar los reportes diferenciales por
días, estos reportes se los generan con ADDM. A diferencia de Statspack, ADDM genera el
reporte en HTML, lo cual hace más sencilla la forma en la cual se busca la sección que se
desea analizar.
A continuación se muestra parte del reporte, parte que es importante para verificar la
optimización del Sistema Gestor de Base de Datos Oracle 11g. Se muestra la monitorización
del primer día (lunes 14 de diciembre), el resto de los días se encuentra en el ANEXO C.
Cache Sizes
En la Figura 3.7 Menú del reporte generado por ADDM se observa el menú que
genera ADDM a la hora de crear el reporte, esto para agilizar la búsqueda de la información
que se requiere analizar.
En la Tabla 4 se puede observar las mediciones del rendimiento con sus respectivos Hits
después de haber aplicado la metodología.
72
Los costos fijos son aquellos que no son sensibles a pequeños cambios en los niveles
de actividad (volumen de producción), sino que permanecen invariables ante esos cambios.
En la Tabla 5 se observa los costos del material de escritorio que han sido empleados
a lo largo del desarrollo del Proyecto de Grado.
Tabla 5. Costo de material de escritorio
DESCRIPCIÓN COSTO
Internet 190
Fotocopias 200
Anillados 180
Transporte 60
TOTAL 630
74
CAPITULO IV
CONCLUSIONES Y RECOMENDACIONES
4.1 CONCLUSIONES
Una vez aplicada la metodología al Sistema Gestor de Base de Datos Oracle de la Agencia
Nacional de Hidrocarburos, se tiene las siguientes conclusiones:
Se ha obtenido métricas del rendimiento del Sistema Gestor de Base de Datos que
ayudo a obtener información sobre cómo se encontraba antes y después del afinado.
La estructura de pasos determinada como propuesta de solución para optimizar el
rendimiento del Sistema Gestor de Base de Datos Oracle 11g de la Agencia Nacional
de Hidrocarburos no sigue un orden secuencial estricto, la aplicación de las fases de
ajuste dependerán de los resultados de la monitorización (etapa de recolección y
análisis de información).
La conjunción de varias técnicas y buenas prácticas de afinamiento para Base de
Datos Oracle, dio paso a la elaboración de una metodología para optimizar el
rendimiento del Sistema Gestor de Base de Datos Oracle 11g. La metodología es
adecuada para el entorno de producción del Motor de la Agencia Nacional de
Hidrocarburos (basado en sus recursos de hardware y software).
Se aplicó en la metodología etapas y fases para la optimización del rendimiento del
Sistema Gestor de Base de Datos Oracle 11g basado en buenas prácticas de
afinamiento de la corporación Oracle.
77
De acuerdo a nuestros resultados en las Tablas 3 y 4 del capítulo anterior podemos ver
una mejora del 1.04% el día 1, 1.24% el día 2, 1.4% el día 3 y 1.19% el día 4 haciendo un
total de un 5% de mejora en el rendimiento.
4.2 RECOMENDACIONES
Una vez aplicada la metodología al Sistema Gestor de Base de Datos Oracle 11g de la
Agencia Nacional de Hidrocarburos, se tienen las siguientes sugerencias:
El presente Proyecto de Grado está limitado a ajustar las estructuras físicas y de memoria,
se sugiere revisar el uso de CPU y tráfico de red, esto para obtener resultados positivos en el
rendimiento.
Este trabajo realizado contribuye una guía para optimizar en las versiones posteriores de
Oracle 11g como una buena práctica de afinamiento para un determinado motor
(perteneciente a Oracle) de acuerdo a un entorno (recursos de hardware y software).
79
BIBLIOGRAFÍA
Sitios en Internet
ORACLE, DATABASE PERFORMANCE TUNNING GUIDE AND REFERENCE
https://docs.oracle.com/cd/B10501_01/server.920/a96533/tools.htm#29114
ORACLE, RECURSOS TÉCNICOS DE ORACLE
https://www.oracle.com/technetwork/es/database/enterprise-edition/documentation/tutorial-
real-application-testing-1705101-esa.pdf
SAWAKINOME, DIFERENCIA ENTRE ORACLE 10G Y 11G
https://es.sawakinome.com/articles/database/difference-between-oracle-10g-and-11g.html
Trabajos de Grado
BARRIOS. (1990). DISEÑO AUTOMÁTICO DE BASE DE DATOS RELACIONALES
DELGADO. (1997). MEJORA SEMÁNTICA DE CONSULTAS EN BASE DE DATOS
RELACIONALES
ESPINOZA. (1990). DISEÑO AUTOMÁTICO DE BASE DE DATOS RELACIONALES
80
ANEXOS
ANEXO A
ARBOL DE OBJETIVOS
81
ANEXO B
MONITORIZACIÓN INICIAL DE LOS DÍAS 2, 3 Y 4
Segunda Sección
Tercera Sección
83
84
85
Cuarta Sección
86
Segunda Sección
Tercera Sección
88
89
Cuarta Sección
90
Segunda Sección
Tercera Sección
92
93
Cuarta Sección
94
ANEXO C
MEDICIÓN DEL RENDIMIENTO DESPUÉS DE APLICAR LA
METODOLOGÍA DE LOS DÍAS 2, 3 Y 4
Cache Sizes
Cache Sizes
Cache Sizes