lunes, 10 de mayo de 2010

Agregar un disco a un diskgroup en ASM

La idea de este post es mostrarles un poco como podemos agregar espacio (un disco) a nuestro ASM, primero vamos
a crear el link necesario a nuestro raw device para que ASM pueda "verlo", para realizar esto hacemos lo siguiente:

1- Nos paramos en el directorio donde tenemos creados los links a los raw devices

TEST:/u00/oradata/asm# ls -latr
total 2
lrwxr-xr-x 1 oracle oinstall 17 May 15 2009 asm_disk_01 -> /dev/rdisk/disk61
lrwxr-xr-x 1 oracle oinstall 17 May 15 2009 asm_disk_02 -> /dev/rdisk/disk68
lrwxr-xr-x 1 oracle oinstall 17 May 15 2009 asm_disk_03 -> /dev/rdisk/disk73
lrwxr-xr-x 1 oracle oinstall 17 May 15 2009 asm_disk_04 -> /dev/rdisk/disk81
lrwxr-xr-x 1 oracle oinstall 17 May 15 2009 asm_disk_05 -> /dev/rdisk/disk86
drwxrwxr-x 2 oracle dba 1024 May 15 2009 .
drwxrwxr-x 4 oracle dba 96 May 7 15:22 ..
2- Una vez que el sys admin nos indica que raw tenemos presentado vamos a proceder a darle los permisos necesarios
(en este ejemplo será el disk78)

TEST:/u00/oradata/asm# chown oracle:dba /dev/rdisk/disk78

3- Generamos el link necesario con el comando de UNIX ln -s

TEST:/u00/oradata/asm# ln -s /dev/rdisk/disk78 /u00/oradata/asm/asm_disk_06

4- Revisamos nuestro nuevo link

TEST:/u00/oradata/asm# ll
total 0
lrwxr-xr-x 1 oracle oinstall 17 May 15 2009 asm_disk_01 -> /dev/rdisk/disk61
lrwxr-xr-x 1 oracle oinstall 17 May 15 2009 asm_disk_02 -> /dev/rdisk/disk68
lrwxr-xr-x 1 oracle oinstall 17 May 15 2009 asm_disk_03 -> /dev/rdisk/disk73
lrwxr-xr-x 1 oracle oinstall 17 May 15 2009 asm_disk_04 -> /dev/rdisk/disk81
lrwxr-xr-x 1 oracle oinstall 17 May 15 2009 asm_disk_05 -> /dev/rdisk/disk86
lrwxr-xr-x 1 root sys 17 May 7 16:12 asm_disk_06 -> /dev/rdisk/disk78
5- Como vemos el link lo creamos con un usuario y un grupo erróneo, por lo que debemos cambiarlo, para eso ejecutamos lo siguiente

TEST:/u00/oradata/asm# chown -h oracle:oinstall asm_disk_06

6- Volvemos a chequear

TEST:/u00/oradata/asm# ll
total 0
lrwxr-xr-x 1 oracle oinstall 17 May 15 2009 asm_disk_01 -> /dev/rdisk/disk61
lrwxr-xr-x 1 oracle oinstall 17 May 15 2009 asm_disk_02 -> /dev/rdisk/disk68
lrwxr-xr-x 1 oracle oinstall 17 May 15 2009 asm_disk_03 -> /dev/rdisk/disk73
lrwxr-xr-x 1 oracle oinstall 17 May 15 2009 asm_disk_04 -> /dev/rdisk/disk81
lrwxr-xr-x 1 oracle oinstall 17 May 15 2009 asm_disk_05 -> /dev/rdisk/disk86
lrwxr-xr-x 1 oracle oinstall 17 May 7 16:12 asm_disk_06 -> /dev/rdisk/disk78
7- Por otro lado chequemos que el raw presentado tenga los permisos necesario para que ASM lo pueda acceder correctamente

TEST:/u00/oradata/asm# ls -latr /dev/rdisk/disk78
crw-r-----   1 oracle     dba         23 0x000014 May 15  2009 /dev/rdisk/disk78
/*********************************************/

Una vez terminado el trabajo de generar el link para ASM estamos en condiciones de agregar el disco a nuestro diskgroup.
Quiero aclarar que voy a seguir los pasos que aconseja Oracle para agregar un nuevo disco a un diskgroup existente (Metalink ID 557348.1)

Paso 1 - Creamos un nuevo diskgroup para testear si ASM puede acceder al nuevo disco y asi no correr riesgos con nuestro diskgroup productivo
SQL> CREATE DISKGROUP TEST EXTERNAL REDUNDANCY DISK 'YOUR DISK';

Paso 2 - Checkeamos si el diskgroup esta creado y montado
SQL> SELECT STATE, NAME FROM V$ASM_DISKGROUP;

Paso 3 - Si tenemos varias instancias de ASM (hablamos de un RAC sobre ASM) debemos montar el diskgroup en las demas instancias de ASM
SQL> ALTER DISKGROUP TEST MOUNT;

Paso 4 - Chequeamos en todas las demás instancias de ASM si el diskgroup está montado
SQL> SELECT STATE, NAME FROM V$ASM_DISKGROUP;

Paso 5 - Desmontamos el diskgroup de todas las instancias menos de una, es de esta última de donde eliminamos la instancia de ASM
SQL> alter diskgroup test dismount; --(desde todas las instancias de ASM salvo de una).

SQL> DROP DISKGROUP TEST; --(desde la instancia ASM de donde no desmontamos el diskgroup).

Paso 6 - Agregamos el nuevo disco a nuestro diskgroup existente
SQL> ALTER DISKGROUP ADD DISK 'YOUR DISK';

Espero les haya servido.

Saludos!
Gondalf

1 comentario:

  1. Me parece buena idea, podrías explicar como se crearon los dispositivos raw en /u00/oradata/asm/asm_disk_06

    ResponderEliminar