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.
Buenos dias Juan , todos y cada uno de los pasos deben repetirse en un RAC?
LikeLike
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.
LikeLike
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
LikeLike