Oracle ASM | Add New Disk to Diskgroup

Oracle Automatic Storage Management Storage Layers

Image by Fenng(dbanotes) via Flickr

Oracle ASM – Agregar Discos a un DiskGroup existente

Como dijimos en algún momento, tener una instancia bajo ASM permite al DBA la administración del storage libre e independientemente de la intervención del  sysadmin, haciendo más dinámico el trabajo de ambos actores .

Levanta una instancia especial, que comunica a la instancia de Base de Datos con un set de disco compartidos

Una estructura de ASM se puede describir a nivel fisico y logico.

Cuando trabajamos en un ambiente con disco asignados por LUN adherir un disco al ASM tiene sus secretos. Lo primero que tenemos que tener en cuenta es si nuestra base es una SINGLE_INSTANCE o está en RAC.

En mi caso particular yo voy a trabajar con una base en RAC así que debo tener en cuenta que los pasos que voy a ilustrar a continuación deben repetirse en cada uno de los NODOS intergrantes.

Vamos a revisar si los discos (En mi caso vienen asignados por LUN) estan disponibles, haciendo un ls en el directorio /dev/mapper/  y cuales Discos son vistos por ASM, o sea discos que forman parte de un diskgroup. Para ello usamos el siguiente comando logueados como root /etc/init.d/oracleasm listdisks

Una que los disco son vistos por el SO, previa verificacion con el commando multipath -ll

Entonces procedemos a crear el disco de ASM que sera parte de un diskgroup existente. Cuando el promp nos devuelve como respuesta OK, podemos listar el disco adherido con los comandos oracleasm y sus wildcards correspondientes, que es el que muestro en la imagen a continuacion.

Ahora, con el pasaje al usuario oracle mediante, y cargadas las variables correspondientes de ambiente, ingresamos a la instancia de ASM y ejecutamos el query siguiente que nos puede  puede decir si la instacia ve el disco que agregamos en el paso anterior.

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

Y agregamos el disco al diskgroup, en el caso de mi ejemplo

SQL> ALTER DISKGROUP MA_DG1 ADD DISK '/dev/oracleasm/disks/MA_DG1_LV2';

Bien revisemos de nuevo nuestros discos y vemoas que ya esta integrado.

Cuando el disco se agrega al diskgroup el ASM comienza un proceso propio de rabalanceo e integra el disco al resto del espacio ocupado y crea un volumen de estacio mas grande. Para saber en que estado se ecuentra ese rebalanceo de informacion, podemos ejecutar la siguiente consulta:


Cuando la query arroja no rows es que termino el rebalanceo. Otra opcion es mirar el alert de la instancia donde nos encontraremos con la culminacion del proceso.

SQL> ALTER DISKGROUP MA_DG1 ADD DISK '/dev/oracleasm/disks/MA_DG1_LV2'
Mon Feb  1 15:17:39 2010
NOTE: initializing header on grp 2 disk MA_DG1_LV2
NOTE: cache opening disk 1 of grp 2: MA_DG1_LV2 path:/dev/oracleasm/disks/MA_DG1_LV2
NOTE: PST update: grp = 2
NOTE: requesting all-instance disk validation for group=2
Mon Feb  1 16:17:39 2010
NOTE: disk validation pending for group 2/0x82b115fa (MA_DG1)
SUCCESS: validated disks for 2/0x82b115fa (MA_DG1)
Mon Feb  1 15:17:40 2010
NOTE: PST update: grp = 2
NOTE: requesting all-instance membership refresh for group=2
Mon Feb  1 16:17:40 2010
NOTE: membership refresh pending for group 2/0x82b115fa (MA_DG1)
SUCCESS: refreshed membership for 2/0x82b115fa (MA_DG1)
Mon Feb  1 15:17:43 2010
NOTE: requesting all-instance membership refresh for group=2
Mon Feb  1 16:17:43 2010
NOTE: membership refresh pending for group 2/0x82b115fa (MA_DG1)
SUCCESS: refreshed membership for 2/0x82b115fa (MA_DG1)
Mon Feb  1 16:17:49 2010
NOTE: starting rebalance of group 2/0x82b115fa (MA_DG1) at power 1
Starting background process ARB0
Mon Feb  1 16:30:17 2010, OS id=31299
NOTE: stopping process ARB0
Mon Feb  1 16:30:20 2010
SUCCESS: rebalance completed for group 2/0x82b115fa (MA_DG1)
Mon Feb  1 16:30:20 2010
SUCCESS: rebalance completed for group 2/0x82b115fa (MA_DG1)
NOTE: PST update: grp = 2
NOTE: PST update: grp = 2
Mon Feb  1 15:50:21 2010

Asi concluimos con la adhesion de nuestro nuevo disco a un diskgroup existente.
En la proxima les voy a explicar como quitar discos y hacer otras modificaciones con discos y diskgroups.

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

3 Responses to Oracle ASM | Add New Disk to Diskgroup

  1. Eduardo says:

    Buenos dias Juan , todos y cada uno de los pasos deben repetirse en un RAC?

    • Juan Andres says:

      Eduardo:
      No , no debe repetirse ya que los discos se ven en todo el RAC.
      Cuando vos trabajas con RAC debes ejecutar todo desde un nodo y en el resto de las instancias se replicara.
      Pero al procedimiento se le agregan algunos pasos extras a ejecutar en el resto de los nodos.

      Al primcipio cuando agregar los discos al OS con los comandos oracleasm, en el resto de nodos solo debes:

      1) Agregarlos al multipath.
      2) ejecutar /etc/init.d/oracleasm scandisks en el resto de los nodos y revisar si aparece tu disco.

      por ejemplo, si creaste el disco SAN_DISK_LV5 con el comando oracleasm addisk, cuando hagas oracleasm scandisks en el resto de los nodos deberia aparecerte los discos viejos mas el nuevo.

      SAN_DISK_LV1
      SAN_DISK_LV2
      SAN_DISK_LV3
      SAN_DISK_LV4
      SAN_DISK_LV5 —- DISCO AGREGADO
      Saludos Cordiales.

      Juan Andrés,

      PD: te invito a seguirme en mi blog suscribiendote o twitter para conocer las ultimas novedades.

  2. Johnd199 says:

    I was suggested this blog by my cousin. I’m not sure whether this post is written by him as no one else know such detailed about my difficulty. You are wonderful! Thanks! afdebebedfgb

%d bloggers like this: