Oracle ASM | Delete Disk from a Diskgroup

Wireless Information System for Emergency Resp...

Image via Wikipedia

En la última migración de discos, se decidio cambiar  el storage de HP-EVA por la solución de EMC.

En la misma, me toco quitar discos componentes de diskgroups para ser eliminados.

Este instructivo que les dejo hace referencia al delete de discos :

  • Delete de discos, miembros de un diskgroup, de la instancia ASM.
  • Delete de discos, miembros de un diskgroup, del sistema operativo tipo unix (En mi caso RHL).
QUITANDO DISCO DE LA INSTANCIA DE ASM

Sacar los discos de ASM implica que la decisión fuera tomada por migración de discos o storage que no fue bien asignado y esta ocioso.

O circuntancias que aún no llegamos a comprender y que llegan desde muy arriba. =D

Como tarea previa tenemos conocimiento de que hay espacio de “INTERCAMBIO” de información antes de quitar el disco y reemplazarlo por otro. O quitarlo definitivamente.

Al momento de quitar el disco , comenzará el rebalanceo de los datos dentro de los discos que quedaron en el storage. Una vez que finalice el Rebalanceo, el disco desaparecerá por completo.

Bien, una vez definidos estos puntos, consultemos en la instancia que discos son los que están disponibles.

SQL> col path format a40 
     set line 120 
     select name, path, group_number from v$asm_disk;

NAME			       PATH					GROUP_NUMBER
------------------------------ ---------------------------------------- ------------
OT2D1N_DG1_0002 	       /dev/oracleasm/disks/SAN_OT2D1N_DG1_LV2		   2
OT2D1N_DG1_0003 	       /dev/oracleasm/disks/SAN_OT2D1N_DG1_LV1		   2
DATA_0000		       /dev/oracleasm/disks/SAN_DATA01			   1
OT2D1N_DG1_0000 	       /dev/oracleasm/disks/SAN_TEMPORAL		   2
OT2D1N_DG1_0001 	       /dev/oracleasm/disks/SAN_OT2D1N_DG1_LV3		   2

Quitamos el Disco con la siguinte sentencia , donde colocamos el nombre de nuestro diskgroup y el nombre del disco que vamos a quitar.

SQL> ALTER DISKGROUP OT2D1N_DG1 DROP DISK OT2D1N_DG1_0001;

Diskgroup altered.

Consultamos la vista nuevamente para verificar que el disco no se encuentra más en la instancia de ASM.

SQL> col path format a40 
     set line 120 
     select name, path, group_number from v$asm_disk;
NAME			       PATH					GROUP_NUMBER
------------------------------ ---------------------------------------- ------------
			       /dev/oracleasm/disks/SAN_OT2D1N_DG1_LV3		   0
OT2D1N_DG1_0002 	       /dev/oracleasm/disks/SAN_OT2D1N_DG1_LV2		   2
OT2D1N_DG1_0003 	       /dev/oracleasm/disks/SAN_OT2D1N_DG1_LV1		   2
DATA_0000		       /dev/oracleasm/disks/SAN_DATA01			   1
OT2D1N_DG1_0000 	       /dev/oracleasm/disks/SAN_TEMPORAL		   2

Ahora que completamos la tarea de la instancia de ASM pasamos al OS.

QUITANDO DISCOS DE ASM DE ASMLIB

Cuando ya tenemos la certeza que el disco miembro no pertenece al ningún grupo, procedemos a quitarlo del sistema operativo.

Precisamos trabajar como usuario root en los equipos unix.

Vamos a comenzar listando los discos disponibles.

[root@serverlx mapper]# /etc/init.d/oracleasm listdisks
SAN_DATA01
SAN_OT2D1N_DG1_LV1
SAN_OT2D1N_DG1_LV2
SAN_OT2D1N_DG1_LV3

Ahora procedemos a borrar el disco de ASM del asmlib.

[root@serverlx mapper]# /etc/init.d/oracleasm deletedisk SAN_OT2D1N_DG1_LV3
Removing ASM disk "SAN_OT2D1N_DG1_LV3":                    [  OK  ]

Debemos Reescanear los discos.

[root@serverlx mapper]# /etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks:               [  OK  ]

Y ahora los listamos para ver efectivamente que fueron quitados del asmLib

[root@serverlx mapper]# /etc/init.d/oracleasm listdisks
SAN_DATA01
SAN_OT2D1N_DG1_LV1
SAN_OT2D1N_DG1_LV2

Como última medida antes de ser extraidos del Sistema Operativo, nos aseguramos que realmente no exista más en ela instancia de ASM como disco disponible para ser agregado en algún grupo.

SQL> select name, path, group_number from v$asm_disk;

NAME			       PATH					GROUP_NUMBER
------------------------------ ---------------------------------------- ------------
OT2D1N_DG1_0002 	       /dev/oracleasm/disks/SAN_OT2D1N_DG1_LV2		   2
OT2D1N_DG1_0003 	       /dev/oracleasm/disks/SAN_OT2D1N_DG1_LV1		   2
DATA_0000		       /dev/oracleasm/disks/SAN_DATA01			   1
OT2D1N_DG1_0000 	       /dev/oracleasm/disks/SAN_TEMPORAL		   2

Ahora podemos quitarlos definitivamente.

QUITANDO DISCOS DEL SISTEMA OPERATIVO

Ahora estamos en condiciones de quitarlos del operativo, recordemos que yo trabajo con disco SAN.

Primero revisamos en el path /dev/mapper los discos correspondientes.

[root@serverlx mapper]# ls -l
total 0
brw-rw----  1 root disk 253,  1 Aug 12 14:09 SAN_DATA01
brw-rw----  1 root disk 253, 20 Aug 12 14:09 SAN_DATA01p1
brw-rw----  1 root disk 253,  6 Aug 12 10:56 SAN_OT2D1N_DG1_LV1
brw-rw----  1 root disk 253, 19 Aug 12 10:56 SAN_OT2D1N_DG1_LV1p1
brw-rw----  1 root disk 253,  7 Aug 12 10:56 SAN_OT2D1N_DG1_LV2
brw-rw----  1 root disk 253, 11 Aug 12 10:56 SAN_OT2D1N_DG1_LV2p1
brw-rw----  1 root disk 253,  3 Aug 12 14:09 SAN_OT2D1N_DG1_LV3
brw-rw----  1 root disk 253, 21 Aug 12 14:09 SAN_OT2D1N_DG1_LV3p1
brw-rw----  1 root disk 253,  2 Aug 12 11:36 SAN_OT2D1N_DG1_LV4
brw-rw----  1 root disk 253,  9 Aug 12 11:36 SAN_OT2D1N_DG1_LV4p1
brw-rw----  1 root disk 253, 12 Aug 11 14:34 systemvg1-home_lv
brw-rw----  1 root disk 253, 13 Aug 11 14:34 systemvg1-opt_lv
brw-rw----  1 root disk 253, 14 Aug 11 14:34 systemvg1-tmp_lv
brw-rw----  1 root disk 253, 18 Aug 11 14:34 systemvg1-u01
brw-rw----  1 root disk 253, 15 Aug 11 14:34 systemvg1-usr_lv
brw-rw----  1 root disk 253, 17 Aug 11 14:34 systemvg1-var_lv
brw-rw----  1 root disk 253, 16 Aug 11 14:34 systemvg1-var_mqm_lv

Ahora modifico el archivo multipath y quito lo que no utilizo mas, o lo podemos comentar.

[root@serverlx mapper]# vi /etc/multipath.conf

Utilizo el comando partprobe, para actualizar la tabla de particiones

[root@serverlx mapper]# partprobe

Actulizamos los caminos de fibras con los comandos de Multipath.

[root@serverlx mapper]# multipath -F
SAN_OT2D1N_DG1_LV4: map in use
SAN_OT2D1N_DG1_LV2: map in use
SAN_OT2D1N_DG1_LV1: map in use
[root@serverlx mapper]# multipath [root@serverlx mapper]# multipath -ll

Revisamos nuevamente el path y vemos que ya no se encuentra mas el disco.

[root@serverlx mapper]# ls -l
total 0
brw-rw----  1 root disk 253,  1 Aug 12 14:09 SAN_DATA01
brw-rw----  1 root disk 253, 20 Aug 12 14:09 SAN_DATA01p1
brw-rw----  1 root disk 253,  6 Aug 12 10:56 SAN_OT2D1N_DG1_LV1
brw-rw----  1 root disk 253, 19 Aug 12 10:56 SAN_OT2D1N_DG1_LV1p1
brw-rw----  1 root disk 253,  7 Aug 12 10:56 SAN_OT2D1N_DG1_LV2
brw-rw----  1 root disk 253, 11 Aug 12 10:56 SAN_OT2D1N_DG1_LV2p1
brw-rw----  1 root disk 253,  2 Aug 12 11:36 SAN_OT2D1N_DG1_LV4
brw-rw----  1 root disk 253,  9 Aug 12 11:36 SAN_OT2D1N_DG1_LV4p1
brw-rw----  1 root disk 253, 12 Aug 11 14:34 systemvg1-home_lv
brw-rw----  1 root disk 253, 13 Aug 11 14:34 systemvg1-opt_lv
brw-rw----  1 root disk 253, 14 Aug 11 14:34 systemvg1-tmp_lv
brw-rw----  1 root disk 253, 18 Aug 11 14:34 systemvg1-u01
brw-rw----  1 root disk 253, 15 Aug 11 14:34 systemvg1-usr_lv
brw-rw----  1 root disk 253, 17 Aug 11 14:34 systemvg1-var_lv
brw-rw----  1 root disk 253, 16 Aug 11 14:34 systemvg1-var_mqm_lv

Ahora podemos avisar al administrador del storage que puede despublicar las LUN’s.

About Juan Andres
Consultant | Oracle DBA & IT Specialist | LinuxUnix Administrator | Father | Musician | Farmer | Environmentalist | Writer | Builder | Buenos Aires · burzaco.wordpress.com

10 Responses to Oracle ASM | Delete Disk from a Diskgroup

  1. Pingback: Oracle ASM | Delete Disk from a Diskgroup « DbRunas – Noticias y Recursos sobre Bases de Datos

  2. Cjuarez says:

    Muy buen aporte…

  3. Acebal Gonzalo says:

    Hola buen aporte!! te hago una consulta, yo estoy instalando oracle RAC en un nodo y cuando llego a la parte de elegir los diskgroup de ASM me muestra todos los diskgroup que tengo en mi storage, osea me muestra hasta los de produccion, yo quiero que solo me muestre “datatest” que es el que quiero, si los borro de la asmlib con eso ya estaria?? muchas graciass

    • Juan Andres says:

      No, son conceptos diferentes, por si que los quitas del ASMlib, los quitas por completo.
      Si en el mismo nodo que queres quitar los discos , esta la instancia productiva provocaras un crash en la base y caera la instancia.
      Te recomiendo que crees los discos con nombre nemotecnicos de facil identificacion.
      Saludos Cordiales.

  4. Fernando Romero says:

    Yo tengo otro problema, tengo creado los disco asm pero cuando voy al dbca para instalarlo no me aparecen.
    Pero si desde la consola los veo

    [root@asmtest ~]# oracleasm listdisks
    ASMDISK1
    ASMDISK2
    ASMDISK3

    Alguna idea de donde puedo mirar de por que no aparecen?

    • Juan Andres says:

      Fernando: Probaste con cambiar desde el dbca donde dice CHANGE DISCOVERY PATH ? Ahi debes colocar el path donde se proyectan tus disco de asm, por ejemplo : /dev/mapper o /dev/oracleasm/disks
      Saludos .
      Juan Andres.

  5. ajaj que loco hoy use tu guia para unas cosas que me pidieron un dba que no tenia idea de la vida.. de paso corrobore que los discos que queria fletar eran los de el y no los del sistema..

  6. systemnor says:

    Hola estoy haciendo un RAC con 2 nodos, estaba instalando el GRID pero tuve un problema en mi nodo 2 con el scritp de root.sh, Entonces reinicié mis maquinas y volvi al proceso de instalacion, el problema es que ya no me mostró los discos, le puse mi Path /dev/oracleasm/disks/ para buscarlos y no me aparecen en la lista de candidatos solo en la lista de ‘All Disks’ pero no me deja seleccionarlos. Que podría HACER??

    Gracias

    • Yovanny Manosalva says:

      Debes limpiar la cabecera de los discos, ya que quedan como miembros si no me equivoco

%d bloggers like this: