Oracle Exadata Database Machine: "Smart Flash Logging"

Por Deiby Gómez Robles & Yenugula Venkata RaviKumar (Oracle Certified Master)
Publicado en diciembre 2013

Introducción:

"Exadata Database Machine" cuenta con varias funcionalidades que buscan contribuir con el objetivo de lograr procesar grandes cantidades de datos de manera eficiente. Entre todas estas funcionalidades se encuentra "Exadata Smart Flash Logging" la cual tiene como finalidad usar discos basados en dispositivos Flash dentro de los "Storage Server" como un destino auxiliar de los archivos "Redo Logs" para proveer consistencia y baja latencia de escrituras logrando así una mejora en los tiempos de respuesta.

¿Cómo funciona Smart Flash Logging?

Smart Flash Logging

  • La base de datos Oracle emite solicitudes de escrituras de "Redo Logs" hacia los "Storage Server".
  • CELLSRV simultáneamente emite solicitudes de escrituras de "Redo Logs" hacia los dispositivos Flash y hacia los Discos.
  • CELLSRV  envía una notificación de "conocimiento" hacia la base de datos tan pronto como la escrita haya sido terminada, ya sea hacia los dispositivos Flash o hacia los discos.

Nota: Los "Redo logs" son permanentemente almacenados en Disco y temporalmente almacenados en los dispositivos Flash.

Espacio de "Smart Flash Logging"

El espacio que utiliza "Smart Flash Logging" es dividido entre un conjunto de discos basados en dispositivos Flash, cada "Storage Server" contiene 4 tarjetas PCI de Memoria Flash. Cada tarjeta tiene cuatro dispositivos flash para un total de 16 dispositivos flash. En cada dispositivo Flash "Smart Flash Logging" utiliza 32 MB para hacer un total de 512 MB por cada "Storage Server".

  • Por defecto, "Exadata Smart Flash Log" usa 32 MB en cada disco basado en dispositivos Flash.
  • "Exadata Smart Flash Logging"  usa un total de 512MB en cada "Storage Server"

    Oracle Exadata Database Machine
  • "Exadata Smart Flash Log" usa un total de 7,168 MB en cada "Exadata Database Machine Full Rack".
  • En "Exadata X2 Database Machine Full Rack" se tiene un total de 5.3 TB de Memoria Flash. Cada "Storage Server" posee 4 tarjetas PCI de memoria flash, cada tarjeta  PCI posee 4 dispositivos flash de 24 GB para un total de 384 GB por cada "Storage Server".
  • Varias Estadísticas son mantenidas para llevar un registro del número y la frecuencia de escrituras hacia los discos basados en dispositivos flash, también se mantiene información de las escrituras que no pudieron ser realizadas hacia los dispositivos Flash por insuficiencia de espacio u cualquier otra causa. Para una base de datos con una alta tasa de transacciones del tipo OLTP, o cuando varias bases de datos están consolidadas en un mismo "Exadata Database Machine", el tamaño asignado a "Smart Flash Logging" debería ser aumentado.
  • Las mejores prácticas para el mantenimiento de los archivos "Redo Logs" tales como "multiplexing" , "mirroring", afinación del tamaño de los archivos, etc.; no son afectados por el uso de "Smart Flash Logging".
  • En "Exadata X3 Database Machine Full Rack" se tiene un total de 22.4 TB de Memoria Flash. Cada "Storage Server" posee 4 tarjetas PCI de memoria flash, cada tarjeta  PCI posee 4 dispositivos flash de 100GB para un total de 1.6 TB de Memoria Flash por cada "Storage Server".

¿Qué no es "Smart Flash Logging"?

  • No es un almacenamiento del tipo  "mirroring"  para los Redo Logs pues los archivos "Redo Log" no se almacenan por completo en los discos basados en dispositivos Flash, únicamente la parte final de los archivos "Redo Log" son almacenados.
  • No es un Cache porque las solicitudes de lectura no se satisfacen desde los dispositivos Flash, dichas lecturas siempre son realizadas desde Disco.

Creación de "Smart Flash Logging":

Sintaxis:

CREATE FLASHLOG [ALL [FLASHDISK]] [attribute=value] [,attribute=value] …

Ejemplos:

CREATE FLASHLOG ALL
CREATE FLASHLOG ALL SIZE=1G
CREATE FLASHLOG CELLDISK='flashdisk1, flashdisk2'
CREATE FLASHLOG CELLDISK='flashdisk1, flashdisk2' SIZE=1G

Smart Flash Logging

  • El tamaño por defecto de "Smart Flash Logging" (512 MB) debería ser suficiente para bases de datos con una baja tasa de escrituras.
  • La creación de "Smart Flash Logging" es automático desde la versión 11.2.2.4.

Administración de "Smart Flash Logging":

Sintaxis:

LIST FLASHLOG [attribute_list] [DETAIL]

Ejemplos:

LIST FLASHLOG
LIST FLASHLOG DETAIL
LIST FLASHLOG ATTRIBUTES name, efficiency

Administración Smart Flash Logging

Administración Smart Flash Logging

Eliminar "Smart Flash Logging":

Sintaxis:

DROP FLASHLOG [FORCE]

Ejemplos:

DROP FLASHLOG
DROP FLASHLOG FORCE

Eliminar Smart Flash Logging

Nota: El argumento "FORCE" debería ser usado con precaución.

Habilitar y Deshabilitar "Smart Flash Logging":

  • "Smart Flash Logging" es automáticamente habilitado para RDBMS 11.2.0.3 y 11.2.0.2 BP9 (BP11 es recomendado).
  • En la versión 11.2.0.3, debe ser establecido el parámetro "_enable_flash_logging"=FALSE para deshabilitar "Smart Flash Logging".
  • La sentencia "DROP FLASHLOG" deshabilita "Smart Flash Logging" para todas las instancias.

Utilice el atributo "flashLog" dentro de un "IORMPLAN" para habilitar o deshabilitar "Smart Flash Logging" para una específica base de datos:

ALTER IORMPLAN dbplan=((name=proddb, flashLog=on))
ALTER IORMPLAN dbplan=((name=testdb, flashLog=off))

Métricas para "Smart Flash Logging":

Este evento de espera mostrará la latencia asociada con las escrituras hacia los archivos "Redo Log":

Métricas Smart Flash Logging

LIST METRICCURRENT WHERE OBJECTTYPE='FLASHLOG': (Antes de la utilización de "Smart Flash Log")

Métricas Smart Flash Logging

LIST METRICCURRENT WHERE OBJECTTYPE='FLASHLOG': (Después de la utilización de "Smart Flash Log")

Métricas Smart Flash Logging

Observar las siguientes métricas de "Smart Flash Logging":

  • FL_DISK_FIRST:  Número de escrituras hacia los archivos "Redo Log"  que se han  completado en disco primero.
  • FL_IO_W    Número de escrituras hacia los archivos "Redo Log" servidas por "Smar Flash Logging".
  • FL_IO_DB_BY_W  Número de bytes escritos a disco.
  • FL_IO_FL_BY_W  Número de bytes escritos a los dispositivos Flash.

Diagnósticos con "Exadata Smart Flash Logging":

Si existe algún problema en la base de datos, se puede hacer uso de la información de "Exadata smart flash logging" para realizar el diagnostico correspondiente.

Revisar el archivo de alerta en cada "Storage Server":

Storage Server

Trazar Eventos con "Exadata Smart Flash Logging":

Existen eventos propios de "Flash Log" que pueden ser trazados mediante la herramienta CELLCLI, tal como lo muestra la siguiente imagen:

Flash Log

Contenido del Archivo de alerta y archivos de trazo:

Archivo de alerta y archivos de trazo

 


Deiby Gomez es un DBA con experiencia en Oracle Exadata Database Machine y Soluciones de Alta Disponibilidad. Deiby frecuentemente da conferencias en distintos eventos de Oracle en Guatemala tales como "Oracle Technology Network Tour", "Java Day", "Primer Simposio de Oracle" y en varias Universidades de su país de residencia (Guatemala). Deiby es el primer Oracle ACE de Guatemala. Es "Oracle RAC 11g and Grid Infraestructure Administrator", "Exadata Database Machine X3 Administrator", "Oracle Linux Certified Implementation Specialist" y "Oracle SOA Implementation Certified Expert".
Yenugula Venkata Ravikumar es un DBA con más de 15 años de experiencia especializada en entornos de alta disponibilidad de bases de datos (RAC, Data Guard, entre otros), afinamiento y rendimiento, migraciones, backup y recuperación, Oracle Exadata X2 y X3, es experto en sistemas operativos tales como AIX, HP-UX y Linux. Ha participado como conferencista en varios eventos de Oracle en la India, donde reside actualmente. Obtuvo el titulo "Oracle Certified Master (OCM 10g)" en el 2009.