You are on page 1of 21

Monitoreo y Auditora de la

Base de Datos
Monitoreo
1.- Monitoreo general de un DBMS

2.- Monitoreo de espacio en disco.


3.- Monitoreo de logs.
4.- Monitoreo de Memoria compartida

Instituto Tecnolgico de
Culiacn

Equipo #5

Integrantes:
Alvarado Arellano Armando
Gaxiola Rojas Carlos Mario
Hernndez Estolano Ivn Alonso
Ontiveros Nez Jos Luis

Monitoreo general de un
DBMS

Qu es la Auditora de BD?

Es el proceso que permite medir, asegurar, demostrar, monitorear y


registrar los accesos a la informacin almacenada en las bases de
datos incluyendo la capacidad de determinar:

Quin accede a los datos.


Cundo se accedi a los datos.
Desde qu tipo de dispositivo/aplicacin.
Desde que ubicacin en la Red.
Cul fue la sentencia SQL ejecutada.
Cul fue el efecto del acceso a la base de datos.

Es uno de los procesos fundamentales para apoyar la


responsabilidad delegada a IT por la organizacin frente a las
regulaciones y su entorno de negocios o actividad.

Objetivos Generales de la
Auditora de BD

Disponer de mecanismos que permitan tener trazas de


auditora completas y automticas relacionadas con el
acceso a las bases de datos incluyendo la capacidad
de generar alertas con el objetivo de:

Mitigar los riesgos asociados con el manejo


inadecuado de los datos.
Apoyar el cumplimiento regulatorio.
Satisfacer los requerimientos de los auditores.
Evitar acciones criminales.
Evitar multas por incumplimiento.

La importancia de la auditora del entorno de bases de


datos radica en que es el punto de partida para poder
realizar la auditora de las aplicaciones que utiliza esta
tecnologa.

La Auditora de BD es importante
porque:

Toda la informacin financiera de la organizacin


reside en bases de datos y deben existir controles
relacionados con el acceso a las mismas.
Se debe poder demostrar la integridad de la
informacin almacenada en las bases de datos.
Las organizaciones deben mitigar los riesgos
asociados a la prdida de datos y a la fuga de
informacin.
La informacin confidencial de los clientes, son
responsabilidad de las organizaciones.
Los datos convertidos en informacin a travs de
bases de datos y procesos de negocios representan el
negocio.
Las organizaciones deben tomar medidas mucho
ms all de asegurar sus datos.
Deben monitorearse perfectamente a fin de conocer
quin o qu les hizo exactamente qu, cundo y cmo.

Mediante la auditora de bases


de datos se evaluar:
Definicin de estructuras fsicas y
lgicas de las bases de datos.
Control de carga y mantenimiento
de las bases de datos.
Integridad de los datos y proteccin
de accesos.
Estndares para anlisis y
programacin en el uso de bases de
datos.
Procedimientos de respaldo y de
recuperacin de datos.

Aspectos Claves
No se debe comprometer el desempeo de las bases de datos
Soportar diferentes esquemas de auditora.
Se debe tomar en cuenta el tamao de las bases de datos a
auditar y los posibles SLA establecidos.

Segregacin de funciones
El sistema de auditora de base de datos no puede ser
administrado por los DBA del rea de IT.

Proveer valor a la operacin del negocio


Informacin para auditora y seguridad.
Informacin para apoyar la toma de decisiones de la organizacin.
Informacin para mejorar el desempeo de la organizacin.

Auditora completa y extensiva


Cubrir gran cantidad de manejadores de bases de datos.
Estandarizar los reportes y reglas de auditora.

Monitoreo de espacio libre en


discos
Como DBA una de las responsabilidades es supervisar el espacio
en disco. Siempre hay que asegurarse de que se tiene suficiente
para sus bases de datos, copias de seguridad de bases de datos y
cualquier otro tipo de archivos que va a almacenar en el servidor. Si
no controla su espacio en disco y se asegura de que tienes espacio
suficiente, con el tiempo uno de sus procesos crticos de bases de
datos o componentes va a fracasar porque no se puede asignar el
espacio en disco que necesita.

Dentro de SQL Server hay un procedimiento no documentado que


nos puede ayudar a cumplir este cometido. El procedimiento es
XP_FIXEDDRIVES, no lleva parmetros ni nada y nos regresa
todos los discos a los que tiene acceso SQL Server y su espacio
disponible en Megabytes.
Es muy sencillo utilizarlo, solo basta con ejecutar el comando
xp_fixeddrives de vez en cuando desde el Analizador de consultas
para revisar la cantidad de espacio libre, aunque este mtodo
consume demasiado tiempo para los administradores de bases de
datos. Un mtodo mejor sera automatizar la ejecucin de este
comando peridicamente para revisar la cantidad de espacio libre.

Algunas tareas de DBA donde la informacin


de espacio libre puede ser til:
- La primera que se alerte al DBA cuando el espacio libre cae por debajo de un umbral
especfico en cualquier unidad de SQL Server.
- La segunda sera la de realizar un seguimiento de la historia el espacio libre para la
gestin de la capacidad de espacio en disco.
La forma de construir un proceso para alertar a la DEA, cuando cualquiera de las
unidades de disco de SQL Server cae por debajo de un umbral predeterminado. Para
obtener la informacin xp_fixeddrives en una tabla temporal que se utiliza el siguiente TSQL.
createtable #FreeSpace(
Drive char(1),
MB_Freeint)
insertinto #FreeSpaceexecxp_fixeddrives
A continuacin, por cada unidad se recupera la informacin de espacio libre a partir de
esta tabla temporal y se compara con un umbral que se ha fijado para cada unidad. Si la
cantidad de espacio libre cae por debajo del valor umbral determinado para la unidad,
enviar alerta al DBA mediante xp_sendmail. Aqu est una muestra de un cdigo que
hace precisamente eso.
declare @MB_Freeint
createtable #FreeSpace(
Drive char(1),
MB_Freeint)
insertinto #FreeSpaceexecxp_fixeddrives
select @MB_Free = MB_Freefrom #FreeSpacewhere Drive = 'C'
-- Free Spaceon C drive LessthanThreshold
if @MB_Free< 1024
execmaster.dbo.xp_sendmail
@recipients ='greg.larsen@netzero.net',
@subject ='SERVER X - FreshSpaceIssueon C Drive',
@message = 'Free spaceon C Drive has droppedbelow 1 gig'

Esta alerta de espacio libre bajo permite tiempo al DBA para


resolver el problema de espacio libre antes de que sea
crtico, y provoque procesos fallidos. Tenga en cuenta que el
cdigo anterior tiene un umbral diferente de espacio libre
para cada unidad.
Otro uso de xp_fixeddrives podra ser la de controlar el uso
de espacio en disco a travs del tiempo. Para recopilar la
informacin de espacio libre a intervalos regulares, por
ejemplo, semanal y lo almacena en una tabla de base de
datos.
Mediante la recopilacin de informacin de espacio libre en el
tiempo y almacenarlo en una tabla del servidor SQL
permanente que ser capaz de producir un cuadro de
tendencias que muestra el espacio en disco extra de
consumo. Al comparar la cantidad de espacio libre entre dos
puntos sobre el grfico que ser capaz de determinar el
espacio de disco consumido entre esos intervalos.
El monitoreo del espacio disponible en disco y las tasas de
crecimiento son un par de cosas que un DBA debe realizar.
Sin vigilancia se corre el riesgo de quedarse sin espacio y
causando graves problemas para su aplicacin.

Monitoreo de log.
Monitorear el log regularmente puede ayudarnos a
resolver varios problemas dentro de nuestros sistemas,
ya que este puede indicarnos si existen demasiadas
transacciones realizadas por una sola aplicacin, que
podra resultar en un mal diseo o simplemente la
necesidad de planear mejor los recursos de log en
nuestro servidor de base de datos.
Es muy importante tener en cuenta que si el log de
transacciones llegara a saturarse, SQL Server no podr
realizar ms cambios dentro de nuestra base de datos.
La manera de monitorear un log de transacciones,
puede llevarse a cabo de 2 maneras, una de ellas es
mediante un comando desde el analizador de consultas
y la otra utilizando los contadores de SQL Server desde
el sistema operativo.

Desde el analizador de consultas ejecutar el comando


DBCC SQLPERF(LOGSPACE).
Utilizando los contadores de SQL Server que se
describen a continuacin.

Contador

Descripcin

Log Bytes Flushed/sec

Nmero total de bytes del log de transacciones vaciados

Log Flushes/sec

Nmero de vaciados del log de transacciones

Log FlushWaits/sec

Nmero de confirmaciones (commit) en espera al momento de


vaciar el log de transacciones.

Percent Log Used

Porcentaje del log de transacciones usado.

Log File(s) Size(KB)

Tamao total del log de transacciones de la base de datos

Log Cache Hit Ratio

Lecturas realizadas a travs de la cach del administrador de


registro.

Situaciones en las que se produce mucha actividad en el log de transacciones

Algunas de las situaciones por la que podra presentarse mucha


actividades en el log de transacciones y saturarlo son:

Cargar informacin en una tabla que tiene indices. SQL


Server almacena en el log todos los inserts y cambios en los
ndices. Cuando se carga en tablas que no tienen indices
SQL Server solo reserva extents para el log.
Transacciones que realizan muchas modificaciones (INSERT,
UPDATE,DELETE) a una tabla en una sola transaccin. Esto
generalmente occurre cuando la sentencia WHERE es muy
general, causando que muchos registros sean modificados.
Expandiendo el log de transacciones
Expandir un log de transacciones debe de realizarse
solamente si en verdad es requerido por la aplicacin y no
solo por el echo de asignar ms espacio, ya que para ello
existen los respaldos del log de transacciones en donde se
vacia el espacio ocupado del log.
Para asignar espacio de log a una base de datos pues
realizarse mediante el SQL Server Enterprise Manager o la
sentencia ALTER DATABASE, en esta caso hablaremos
solamente de la sentencia ALTER DATABASE

Ejemplo:

Agregar dos archivos de log a una base de datos

El ejemplo siguiente agrega dos archivos de log de 5 MB a una base de datos.

USE master
GO
ALTER DATABASE Test1
ADD LOGFILE
( NAME = test1log2,
FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\test2log.ldf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB),
( NAME = test1log3,
FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\test3log.ldf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB)
GO

Monitoreo de Memoria
compartida

PGA DE ORACLE (REA GLOBAL


DE PROGRAMA)

SGA de oracle (Sistema de rea


Global)

PGA DE ORACLE (REA


GLOBAL DE PROGRAMA)

Un PGA es una regin de memoria que contiene datos


e informacin de control para un proceso de servidor.
Es la memoria no compartida creada por la base de
datos Oracle cuando un proceso de servidor se ha
iniciado. El acceso a la PGA es exclusivo para el
proceso del servidor. Hay un PGA para cada proceso
de servidor. Procesos en segundo plano tambin se
asignan sus propios PGA. La memoria total utilizada
por todos los PGAs individuales se conoce como el
ejemplo total de memoria PGA, y la recogida de
PGAs individuales se refiere como el ejemplo total de
la PGA, o simplemente instancia de la PGA. Puede
utilizar los parmetros de inicializacin de base de
datos para definir el tamao de la instancia de la PGA,
no PGA individuales.

El PGA puede ser crtico para el rendimiento,


especialmente si la aplicacin est haciendo un gran
nmero de clases. Operaciones de ordenacin se

SGA de oracle (Sistema de


rea Global)
Es un conjunto de reas de memoria compartida que
se dedican a un Orculo "instancia" (un ejemplo es los
programas de bases de datos y la memoria RAM).
Sirve para facilitar la transferencia de informacin entre
usuarios y tambin almacena la informacin estructural
de la BD ms frecuentemente requerida.
En los sistemas de bases de datos desarrollados por la
Corporacin Oracle , el rea global del sistema (SGA)
forma parte de la memoria RAM compartida por todos
los procesos que pertenecen a una sola base de datos
Oracle ejemplo. El SGA contiene toda la informacin
necesaria para la operacin de la instancia.
La SGA se divide en varias partes:
1.- Buffers de BD, Database Buffer Cache
2.- Buffer Redo Log
3.- rea de SQL Compartido, Shared SQL Pool

Buffers de BD, Database


Buffer Cache

Es el cach que almacena los bloques de datos leidos de los


segmentos de datos de la BD, tales como tablas, ndices y
clusters. Los bloques modificados se llamas bloques sucios.
El tamao de buffer cach se fija por el parmetro
DB_BLOCK_BUFFERS del fichero init.ora.

Plan de ejecucin de la sentencia SQL.


Texto de la sentencia.
Lista de objetos referenciados.
Comprobar si la sentencia se encuentra en el rea compartida.
Comprobar si los objetos referenciados son los mismos.
Comprobar si el usuario tiene acceso a los objetos referenciados.

Como el tamao del buffer suele ser pequeo para


almacenar todos los bloques de datos leidos, su gestin se
hace mediante el algoritmo LRU.

Buffer Redo Log


Los registros Redo describen los cmbios
realizados en la BD y son escritos en los
ficheros redo log para que puedan ser
utilizados en las operaciones de
recuperacin hacia adelante, roll-forward,
durante las recuperaciones de la BD. Pero
antes de ser escritos en los ficheros redo log
son escritos en un cach de la SGA llamado
redo log buffer. El servidor escribe
peridicamente los registros redo log en los
ficheros redo log.
El tamao del buffer redo log se fija por el
parmetro LOG_BUFFER.

rea de SQL Compartido,


Shared SQL Pool
En esta zona se encuentran las sentencias SQL que han sido analizadas. El analisis
sintctico de las sentencias SQL lleva su tiempo y Oracle mantiene las estructuras
asociadas a cada sentencia SQL analizada durante el tiempo que pueda para ver si
puede reutilizarlas. Antes de analizar una sentencia SQL, Oracle mira a ver si
encuentra otra sentencia exactamente igual en la zona de SQL compartido. Si es as,
no la analiza y pasa directamente a ejecutar la que mantinene en memoria. De esta
manera se premia la uniformidad en la programacin de las aplicaciones. La igualdad
se entiende que es lexicografica, espacios en blanco y variables incluidas. El contenido
de la zona de SQL compartido es:
Los pasos de procesamiento de cada peticin de anlisis de una sentencia SQL son:
Si no, la sentencia es nueva, se analiza y los datos de anlisis se almacenan en la zona
de SQL compartida.
Tambin se almacena en la zona de SQL compartido el cach del diccionario. La
informacin sobre los objetos de la BD se encuentra almacenada en las tablas del
diccionario. Cuando esta informacin se necesita, se leen las tablas del diccionario y su
informacin se guarda en el cach del diccionario de la SGA.
Este cach tambin se administra mediante el algoritmo LRU. El tamao del cach est
gestionado internamente por el servidor, pero es parte del shared pool, cuyo manao
viene determinado por el parmetro SHARED_POOL_SIZE.

Gracias por su atencin