En
la actualidad las empresas tienden a almacenar cada vez más información dentro
de sus bases de datos. Eso se debe a que
cada día se van encontrando nuevas fuentes de información que permiten a los
altos ejecutivos tomar mejores decisiones sobre como optimizar la productividad
de las empresas.
Por
ejemplo, hoy en día, es importante saber todo sobre los clientes. No sólo saber los datos del cliente, sino
también es importante saber su opinión, a qué sector pertenecen, el tipo de
consumo que tienen, las ofertas que más consumen, etc. Así, cada día las
variables van aumentando y en consecuencia la cantidad de información que se
puede obtener y almacenar.
Como
administradores de bases de datos, siempre hemos tenido el reto de tratar de
almacenar la mayor cantidad de información que las empresas necesitan y al
mismo tiempo optimizar el espacio consumido dentro de las bases de datos para
poder reducir costos de infraestructura.
Muchos
de nosotros hemos tenido que lidiar con bases de datos de 1TB, 5TB, 10TB. En mi
experiencia personal, con bases de datos de hasta 70TB. Con bases de datos tan
grandes se hace muy difícil la administración del espacio, por lo que es
necesario recurrir a una estrategia ILM.
ILM - Information Lifecycle Management.
ILM
es una estrategia eficiente que te permite administrar de manera óptima la
información del negocio a lo largo de su ciclo de vida. Ésta consta de políticas, de procesos y de herramientas
que se utilizan para poder alinear el valor de la información a una
infraestructura de TI adecuada y rentable; desde el momento en que la
información es generada hasta su disposición final.
Una
de las formas de poder implementar ILM es definir un ciclo de vida para la
información en la base de datos. El más
recomendado es el ciclo de vida de 4 etapas:
1ra Etapa - Data Activa: En esta etapa la
información ha sido recientemente ingresada a la base de datos y es altamente
consultada y modificada.
2da Etapa - Data
Consulta:
En esta etapa la información sigue siendo altamente consultada pero ya no es
modificada.
3ra Etapa - Data Antigua: En esta etapa la
información tiene ya bastante tiempo almacenada y es poco consultada.
4ta Etapa - Data Expirada: En esta etapa la
información ya no es de utilidad debido a su antigüedad. Sin embargo se debe
mantener almacenada por exigencia de los organismos reguladores propios de cada
país.
En
este gráfico se puede apreciar las etapas por las que pasa la información y el
volumen de datos que ocupa cada etapa.
Para
poder manejar de manera correcta el ciclo de vida de la información tenemos que
apoyarnos en procesos manuales creados por los administradores de bases de
datos utilizando funcionalidades como particionamiento, transport tablespace,
online redefinition, entre otros.
La
versión Oracle 12c ha llegado con muchos cambios y nuevas funcionalidades. Una
de ellas es el Automatic Data Optimization - ADO que ayuda a los
administradores de bases de datos a poder manejar de manera más automática el
ciclo de vida de la información.
Automatic Data Optimization – ADO.
ADO
es una nueva opción de Oracle 12c que consiste en la creación de políticas para
comprimir y/o mover un segmento dependiendo de su actividad dentro la base de
datos. Las políticas son evaluadas y ejecutadas sin intervención manual del
DBA.
Dentro
de la funcionalidad ADO tenemos dos actividades: compresión de segmentos y
movimiento de segmentos. A continuación presentaremos los pasos para poder
configurar y ejecutar de manera correcta las políticas ADO, mostrando ejemplos
de ambas actividades:
COMPRESIÓN DE SEGMENTOS.
Primero
mostraremos un ejemplo de cómo se configura las políticas ADO de compresión de
segmentos:
Paso 1: Activar el monitoreo.
Para
que ADO pueda evaluar la actividad de la información en la base de datos, es
necesario activar su monitoreo. El
monitoreo de la actividad se basa en un HEAT MAP que te permite rastrear
actividades como:
-
Acceso a nivel de segmento.
-
Modificación a nivel del bloque y segmento.
Estas
estadísticas son almacenadas de manera permanente en el tablespace SYSAUX.
Para
activar el monitoreo lanzamos el siguiente comando:
Paso 2: Creación de
las tablas EJEMPLO1 y 2.
Procederemos
a crear el esquema y las tablas que serán evaluadas en las políticas ADO. Para efectos del ejemplo le daremos al
usuario el rol DBA.
Paso 3: Inserción, consulta
y modificación de las tablas EJEMPLO1 y 2.
Procedemos
a insertar datos a cada tabla para que se pueda apreciar la compresión. Además
de realizar acciones sobre cada tabla.
Tener
en cuenta que en la tabla EJEMPLO1 se ingresarán más datos que en EJEMPLO2.
Paso 4: Revisión del
monitoreo de las tablas EJEMPLO1 y 2.
Ya
que activamos el HEAT MAP en el paso 1, podemos observar las estadísticas de la
actividad de las tablas. Revisemos las
siguientes vistas:
- DBA_HEAT_MAP_SEGMENT
- DBA_HEAT_MAP_SEG_HISTOGRAM
Como
se observa en la imagen, la base de datos ha guardado la fecha del último full
scan que se ha realizado a las tablas. El HEAT MAP también almacena la fecha de
la última modificación y de la última lectura del segmento.
Paso 5: Creación de
las políticas ADO.
Una
vez tomadas las estadísticas, podemos proceder a crear las políticas ADO para
la compresión.
Para
poder crear una política se debe tener en cuenta 3 aspectos:
1.
¿Que condición debe de darse para aplicar la política?
Se puede elegir entre las siguientes
condiciones:
-
Creación: Creación del segmento.
-
No Modificación: Que no se hayan ejecutado DML sobre
las filas o ALTER sobre el segmento.
-
Bajo Acceso: Poco acceso a la información del segmento.
-
No Acceso: Que la información ya no es consultada por
ninguna sentencia SQL.
La
métrica de bajo acceso al segmento se basa en las estadísticas de full_scan, modificación
de datos y lookup_scan; las cuales se les asigna un peso dependiendo del tipo
de compresión que se define en la política.
2.
¿Cuánto tiempo debe de pasar después de que se dio la condición?
Debemos
definir la cantidad de días, meses o
años que debe de pasar después que se ha presentado la condición definida
en el punto1.
3.
¿Qué tipo de compresión se va a aplicar?
Se
puede aplicar los siguientes tipos de compresión:
-
Row Basic: Compresión básica desde 9i.
-
Row Advanced: Compresión conocida anteriormente como
compresión OLTP.
-
Column For Query LOW y HIGH: Compresión Columnar
de mayor nivel que las anteriores. Muy útil cuando la información es aún
consultada pero ya no modificada.
-
Column For Archive LOG y HIGH: Compresión
Columnar, es el mayor nivel de compresión.
Muy útil para información que ya no se consulta y sólo se encuentra
almacenada por temas regulatorios.
Para este ejemplo
definiremos la compresión Row Advance ya que las compresiones columnares
necesitan de un Storage especial.
Existe
un aspecto más a tomar en cuenta, y es definir sobre qué objeto se validará la
política ADO. Los objetos pueden ser:
-
Fila.
-
Segmento.
-
Segmento y LOBs.
-
Segmentos en un tablespace.
Para
el objetivo de este ejemplo y este artículo, tomaremos como base sólo las
políticas sobre segmentos.
Una
vez definidos cada aspecto, procedemos a crear una política a cada tabla EJEMPLO.
Política de No Modificación.
Política desde la Creación.
Es
posible revisar las políticas creadas consultando las vistas DBA_ILMPOLICIES
y DBA_ILMDATAMOVEMENTPOLICIES.
Antes
de evaluar las políticas revisamos el peso de cada tabla.
Paso 6: Evaluación de
las políticas ADO.
Para
poder evaluar la primera política modificaremos el HEAT MAP ingresando una
fecha de modificación de más de 20 días atrás.
Este paso es sólo para demostrar el funcionamiento de las políticas, no
debe aplicarse en bases de datos de producción.
Debido
a que la consulta hecha inicialmente en la tabla EJEMPLO1 aún está en memoria,
procedemos a reiniciar la base de datos para limpiar todas las estadísticas en
memoria y sólo quedarnos con las estadísticas sembradas.
Observamos
la definición sembrada en el HEAT MAP.
Para
poder evaluar la segunda política, esperaremos 2 días para que la política
pueda hacer efecto.
Por
defecto, las políticas sobre segmentos son evaluadas durante la ventana de
mantenimiento de la base de datos. Otra
forma de evaluar las políticas es mediante el paquete DBMS_ILM de la siguiente
manera:
Una
vez finalizada la evaluación, podemos ver si la tarea finalizó correctamente
consultando la vista DBA_ILMTASKS.
También
podemos verificar qué acciones se tomaron sobre las tablas durante la
evaluación.
Se
consulta la vista DBA_ILMEVALUATIONDETAILS.
Paso 7: Revisión de resultados.
Finalmente
revisamos si las tablas se han comprimido comparando su tamaño antes y después
de la evaluación de las políticas ADO.
ANTES
DESPUÉS
Como
se puede apreciar ambas tablas han sido comprimidas después de la evaluación de
las políticas ADO. Una tabla pesa más que
la otra debido a la cantidad de registros que tienen ambas tablas.
En el siguiente articulo seguiré explicando las diferentes configuraciones que tiene ADO.
Espero les sirva.
No hay comentarios.:
Publicar un comentario