Añadir disco a DiskGroup con ASM en Windows

En la siguiente entrada de blog voy a explicar como añadir un nuevo disco a un diskgroup de ASM para ser utilizado por ORACLE.

Existen numerosas entradas en internet de cómo hacer esta operación bajo Linux, pero no he encontrado ninguna que lo haga bajo Windows y por este motivo he considerado necesario crear esta entrada.

Para poneros en contexto comentar que  este ejemplo se realizó en una máquina virtual  (MV) creada con Oracle Virtual Box en la que instalé Windows Server 2008 R2. La máquina constaba con un sólo disco y posteriormente añadí otro para poder usarlo con ASM. Es decir, una vez arrancada la MV y entrando en el administrador de discos de Windows tenía esto:

Lista de volúmenes actual

Cómo se puede observar en la imagen el Disco 1 que está en formato RAW es dónde está instalado ASM. Por tanto, voy a añadir otro disco al que tendré que dar también formato RAW para poderlo usar con ASM posteriormente.

Empezamos…

Ahora lo que se hace es crear el disco en la MV. (Este paso no lo he explicado porque no es el objeto de la entrada de este blog). Una vez creado arranco la MV y me arrancará Windows Server 2008 R2 en mi caso. Iré al administrador de equipos y de discos  y me debería salir la siguiente pantalla:

pant1

Como se puede observar Windows me ha detectado el nuevo disco que he añadido previamente a la MV. En mi caso marco MBR y doy a Aceptar. Quedará asi:

pant2

Lo siguiente que haremos será darle formato RAW para que posteriormente se pueda integrar en el ASM de Oracle.

pant3

Seleccionamos nuevo volumen simple …. y procedemos como explico en las siguientes imágenes:

pant4

pant5

Dejo que seleccione todo el tamaño del disco (pantalla anterior) y en la siguiente pantalla es importante marcar “no asignar una letra ….”.

pant6b

Marcamos no formatear este volumen para que nos quede el formato RAW.

pant7

pant8

al acabar el proceso debemos tener algo como:

pant9

Seguimos….

Hasta el momento sólo tenemos el disco en formato RAW pero ORACLE ASM de momento no puede verlo. Para ello, debemos ponerle una etiqueta al disco que nos permita poder agregarlo con ASM.

Vamos a entrar a ASM y mirar que es lo que vemos:

Cargando el entorno ASM, normalmente y desde la linea de comandos de Windows:

C:\> set ORACLE_SID=+ASM
C:\oracle\app\Administrador\product\11.2.0\grid\BIN>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Mar Dic 1 14:16:29 2015
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
SQL> connect /as sysasm
SQL> select group_number,path,name, total_mb, free_mb from v$asm_disk;
GROUP_NUMBER
------------
PATH
--------------------------------------------------------------------------------
NAME                             TOTAL_MB    FREE_MB
------------------------------ ---------- ----------
         1
\\.\ORCLDISKDATA0
DATA_0000                           61812      59614
SQL>  col path format a40
SQL>  set line 120
SQL>  select name, path, group_number from v$asm_disk;
NAME                           PATH                                     GROUP_NUMBER
------------------------------ ---------------------------------------- ------------
DATA_0000                      \\.\ORCLDISKDATA0   1

Cómo se puede observar, sólo vemos el disco de 61812 MB (60,36 GB) y no el que hemos añadido recientemente de 10,45 GB.

Seguidamente arrancaremos la herramienta de ORACLE que nos permite asignarle una etiqueta al disco para posteriormente poderlo visualizar desde ASM. Este paso es precisamente del que no existe demasiada documentación en Internet.

En primer lugar lo que haremos es ir al ORACLE_HOME del grid dónde se encuentre ASM. En mi caso:

C:\> cd C:\oracle\app\Administrador\product\11.2.0\grid\BIN>

Aquí ejecutar la herramienta asmtoolg:

C:\oracle\app\Administrador\product\11.2.0\grid\BIN> asmtoolg

Proceder como se indica en las imágenes:

asmtoolg1

asmtoolg2

Seleccionaremos el “candidate device”

asmtoolg3

asmtoolg4

De esta manera ya hemos configurado una etiqueta para el disco. Ahora si que lo podemos ver desde ASM. Lo comprobamos:

C:\oracle\app\Administrador\product\11.2.0\grid\BIN>sqlplus /nolog
 SQL*Plus: Release 11.2.0.1.0 Production on Mar Dic 1 14:16:29 2015
 Copyright (c) 1982, 2010, Oracle.  All rights reserved.
 SQL> connect /as sysasm
 Conectado.
 SQL> col path format a40
 SQL>  set line 120
 SQL>  select name, path, group_number from v$asm_disk;
NAME                           PATH                                     GROUP_NUMBER
 ------------------------------ ---------------------------------------- ------------                                
                                        \\.\ORCLDISKDATA1                                   0
DATA_0000                 \\.\ORCLDISKDATA0                                   1

Podemos observar que ya aparece nuestro nuevo disco ORCLDISKDATA1 y que no pertenece a ningún diskgroup ya que no tiene “NAME”. Sin embargo, el otro disco pertenece al diskgroup DATA_0000. Pues es a este diskgroup al que queremos añadir el nuevo disco. Esto se hace ejecutando la siguiente instrucción:

SQL> ALTER DISKGROUP data ADD DISK '\\.\ORCLDISKDATA1';
Diskgroup altered.

NOTA:  ”data” es el nombre de diskgroup y se saca de v$asm_diskgroup de la siguiente manera:

SQL> select name, total_mb from v$asm_diskgroup;
NAME                                   TOTAL_MB
-----------------------------  ----------------
DATA                                      61812

Saco también el tamaño del disco para identificarlo y asegurarme que la etiqueta que selecciono es la del disco que quiero.

Comprobamos la adición:

SQL>  col path format a40
SQL>  set line 120
SQL>  select name, path, group_number from v$asm_disk;
NAME                           PATH                                     GROUP_NUMBER
------------------------------ ---------------------------------------- ------------
DATA_0000                      \\.\ORCLDISKDATA0                                   1
DATA_0001                      \\.\ORCLDISKDATA1                                   1
SQL>

 

Cuando el disco se agrega al diskgroup, ASM comienza un proceso propio de rabalanceo e integra el disco al resto del espacio ocupado creando un volumen de espacio mas grande.

Para saber en que estado se encuentra ese re-balanceo de información, podemos ejecutar la siguiente consulta:

select * from v$asm_operation;
no rows selected

Cuando la consulta devuelva “no rows selected” es que ya terminó el rebalanceo. Otra manera de comprobarlo sería revisar el fichero alert de la instancia donde nos encontraremos con la información de culminación del proceso.

Así finaliza la adhesión de nuestro nuevo disco a un diskgroup existente.

¿fácil no?

 

Deja un comentario