All Things Oracle

Bye bye raw device, ¡bienvenido ASM!

Durante décadas se han venido usando raw devices en un intento de obtener el mejor desempeño posible para las bases de datos Oracle. La alternativa eran los filesystems que, si bien eran fáciles de administrar, tenían un desempeño que dejaba mucho que desear. Con el transcurrir de los años los fabricantes han venido mejorando los filesystems, agregándoles direct I/O y concurrent I/O por ejemplo, al punto que los han hecho casi tan eficientes como los raw devices. Por su parte Oracle dio la sorpresa cuando anunció la aparición de ASM, ofreciendo el alto desempeño de los raw devices con la facilidad de administración de los file systems, amén de muchas otras adiciones que lo hacen único y deseable.

El 2008 recibimos la noticia, mediante la hoy desaparecida nota 578455.1, que a partir de Oracle 12g los raw devices ya no serán soportados, y más recientemente, con la nota 754305.1 se nos indica que con Oracle 11gR2 ya no se ofrecerán los raw devices desde DBCA/OUI, por lo que tendremos que recurrir a la línea de comandos si queremos crear una base de datos que los emplee.

Debemos entonces ir pensando en abandonar los raw devices pero, ¿qué usar en su reemplazo? En mi opinión la mejor alternativa es ASM, y por ello empiezo hoy esta serie de Posts. En este primero les mostraré la instalación del software requerido, las configuraciones necesarias y la creación de una instancia ASM; en un siguiente Post les mostraré cómo trasladar manualmente la base de datos hacia ASM, y en un último Post les mostraré cómo hacer lo mismo con Database Console, así como el procedimiento a seguir para hacer upgrade a ASM.

Estaré usando una máquina virtual en VMWare, que ejecuta RHEL 5.2 de 32 bits y cuenta con 6 discos virtuales de 1GB cada uno, los cuales serán gestionados por ASM. Si bien voy a emplear Oracle 11.1.0.7, los pasos han sido debidamente probados con Oracle 10.2.0.1 y 10.2.0.4 por lo que no debe haber problemas si siguen estos pasos con versiones 10.2.0.1 o superiores. Veamos entonces la secuencia de pasos a seguir para contar con una instancia ASM operativa.

I. Particionando los discos.

Se requiere que los discos estén debidamente particionados para que puedan ser usados, para ello haremos uso del utilitario fdisk. Primero veamos los nombres de los dispositivos:
root@urania ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdc  /dev/sdd  /dev/sde  /dev/sdf  /dev/sdg

A partir de /dev/sdb hasta /dev/sdg, son los discos que asignaremos a ASM, creemos entonces las particiones.

[root@urania ~]# fdisk /dev/sdb

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-130, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):
Using default value 130

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
Este mismo procedimiento se aplica a los restantes 5 discos para finalmente obtener 6 particiones:
[root@urania ~]# ls /dev/sd*
/dev/sda  /dev/sda2  /dev/sdb1  /dev/sdc1  /dev/sdd1 /dev/sde1  /dev/sdf1  /dev/sdg1
/dev/sda1 /dev/sdb   /dev/sdc   /dev/sdd   /dev/sde  /dev/sdf   /dev/sdg

II. Instalación y configuración del software ASMLib.

Para ello debemos empezar por identificar la versión del kernel en uso.
[root@urania ~]# uname -r
2.6.18-92.el5
Con este dato procedemos a descargar los rpm respectivos y los instalamos.
[root@urania ~]# ls
oracleasm-2.6.18-92.el5-2.0.5-1.el5.i686.rpm
oracleasm-support-2.1.2-1.el5.i386.rpm
oracleasmlib-2.0.3-1.el5.i386.rpm

[root@urania ~]# rpm -Uvh oracleasm-support-2.1.2-1.el5.i386.rpm \
> oracleasmlib-2.0.3-1.el5.i386.rpm \
> oracleasm-2.6.18-92.el5-2.0.5-1.el5.i686.rpm
Preparing...                ########################################### [100%]
   1:oracleasm-support      ########################################### [ 33%]
   2:oracleasm-2.6.18-92.el5########################################### [ 67%]
   3:oracleasmlib           ########################################### [100%]
Con el software ya instalado es hora de configurarlo.
[root@urania ~]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting  without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface [oracle]:
Default group to own the driver interface [dba]:
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]:
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver:                     [  OK  ]
Scanning the system for Oracle ASMLib disks:               [  OK  ]

Ahora hay que etiquetar las particiones para que sean reconocidas como dispositivos habilitados para ASM.

[root@urania ~]# /etc/init.d/oracleasm createdisk DISK1 /dev/sdb1
Marking disk "DISK1" as an ASM disk:                      [  OK  ]
Esto se repite para las 5 particiones restantes para finalmente obtener:
root@urania ~]# /etc/init.d/oracleasm listdisks
DISK1
DISK2
DISK3
DISK4
DISK5
DISK6

III. Creación de la instancia ASM

Esta tarea se realiza con ayuda del utilitario DBCA.
Create ASM instance - Step 1 - Start CSS

Se nos solicita ejecutar un script para configurar e iniciar el servicio CSS.

[root@urania ~]# sh /u01/app/oracle/product/11.1.0/db_2/bin/localconfig add
/etc/oracle does not exist. Creating it now.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Configuration for local CSS has been initialized

Adding to inittab
Startup will be queued to init within 90 seconds.
Checking the status of new Oracle init process...
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
        urania
CSS is active on all nodes.
Oracle CSS service is installed and running under init(1M)

Retornamos a DBCA y ahora ingresamos el password para el usuario SYS (de ASM no de la base de datos)

Con este dato DBCA procede a crear e iniciar la instancia ASM.

Ahora podemos crear los Disk Groups; en esta ocasión serán 2 los que crearemos.

Al primero lo llamaremos DAT, le asignaremos 2 discos y servirá para contener la base de datos. Escogemos external redundancy para aprovechar todo el espacio, pero estaremos sin mirror por lo que es algo que no deberías usar en Producción, salvo el mirror lo estés manejando a nivel del arreglo de discos.

Al segundo lo llamaremos FRA, le asignaremos los 4 discos restantes y servirá para contener el Flash Recovery Area, nuevamente escogemos external redundancy.

Para culminar presionamos el botón [Finish] y ¡listo!, hemos terminado con esta primera parte, ya tenemos una instancia ASM plenamente operativa y lista para albergar nuestra base de datos, pero como les adelantara, eso lo veremos en el siguiente Post.

¿Te pareció interesante este artículo?, ¿te quedaron algunas dudas?, ¿quieres sugerirme un tema a tratar?, pues déjame tus comentarios o ¡contáctame ahora mismo!

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Posts Relacionados

Primer post de una serie dedicada al arte de parchar Oracle. Empezamos con el parchado in-place, la forma más común y también la más peligrosa.
Aprenda a descargar los parches de Oracle, tanto manualmente como de forma automatizada, usando el utilitario getMOSPatch.
Link a articulo publicado en Toad World, sobre como aplicar un patch out-of-place a Grid Infrastructure, usando un Golden Image.

¿Necesitas Ayuda?

Completa estos datos y estaré en contacto a la brevedad.