jueves, 8 de marzo de 2012

Que es Oracle ASM ( Automatic Storage Management)

Si ya empezaste a usar RAC, o estas planeando utilizarlo en un futuro, este es un termino que debes de conocer. Este es un tema un poco pesado y largo, pero espero que me tengas paciencia.

Puesto de una manera muy sencilla, ASM es un manejador de volumenes y solución de almacenamiento de Oracle para manejar archivos de la Base de Datos Oracle.

ASM utiliza grupos de discos para almacenar los archivos;Estos grupos de discos son una colección de discos que ASM los maneja como una unidad. Los discos pueden ser:
  • Un disco duro completo o una partición del disco duro 
  • Un disco o una partición de un arreglo de discos
  • Volumenes lógicos
  • NFS

Cada disco esta dividido en unidades de alojamiento (AU), esta unidad es fundamentalmente como se alojan los datos en el disco, un Extent de archivo son una o varias AUs y un archivo en ASM consiste de uno o varios Extents. El AU se determina con el parametro AU_SIZE y los valores pueden ser 1, 2, 4, 8, 16, 32, o 64 MB.

Los contenidos en los grupos de discos son distribuidos equitativamente para proveer un rendimiento ecuánime a través de los discos. Tu puedes agregar o eliminar discos de un grupo de discos mientras la base de datos accede a sus archivos, ASM automaticamente redistribuye el contenido de los archivos y elimina la necesidad de bajar los servicios de tus instancias para poder hacer esto.

ASM utiliza una instancia para manejar los grupos de discos , esta es una instancia común y corriente como lo platicamos en: Instancia es igual a procesos y memoria , pero lo que si es que esta realiza mucho menores tareas que una instancia que utilizarias en producción y por ende su memoria es mucho menor ( en 11.2.0.3 se recomienda que sea memory_target=1536m).

ASM en 11gR2 se instala con el ORACLE_HOME del  Grid Infrastructure y antes de que se instale la primera Base de Datos, que esta a su vez tiene un ORACLE_HOME distinto.

ASM se encarga de montar los grupos de discos para que puedan estar disponibles para tus instancias y a su vez esta instancia de ASM maneja los metadatos para proveerselos a la tu instancia de desarrollo/producción. Algunos de los metadatos son:
  • Los discos que son parte de un grupo de discos
  • El espacio disponible en un grupo de discos
  • Los nombres de los archivos en un grupo de disco


Los archivos que se almacenan en ASM si no se esta utilizando ACFS, son : 
  • Control files
  • Data files, data files temporales, y copias de data file
  • SPFILEs
  • Online redo logs, archive logs, y Flashback logs
  • Respaldos de RMAN
  • Change tracking bitmaps
  • Data Pump dumpsets

ASM tambien te permite manejar el espejeo(Mirroring) de los discos en tres maneras
  • Normal.-Espejeo de dos vias
  • High.-Espejeo de tres vias
  • External.-No usa espejeo de ASM, si no tu configuración RAID que usaste para la redundancia.

Para terminar con el tema, ASM te permite dos tipos de repartir los datos entre los discos (Disk Striping), que se le llama
  • Fine-Grained Striping.- Este reduce el estado latente para cierto tipos de archivos repartiendo la carga mas ampliamente entre los discos. Todas las unidades del stripe son de 128kb sin importar el tamaño de la AU.
  • Coarse-Grained Striping.- Este provee un balance de cargas para los grupos de discos. Todas las unidades del stripe son igual al tamaño del AU.

Uff, un tema algo pesado y largo, pero muy útil, espero que te sirva esta información.