Cree un par de raw devices de 1GB cada uno en un directorio llamado /u01/asmdisk
mkdir -p /u01
mkdir /u01/asmdisk
dd if=/dev/zero of=asm_disk1 bs=1024k count=1024
dd if=/dev/zero of=asm_disk2 bs=1024k count=1024
losetup /dev/loop1 asm_disk1
losetup /dev/loop2 asm_disk2
raw /dev/raw/raw4 /dev/loop1 <- desde el raw4 porque los primero 3 estan ocupados raw /dev/raw/raw5 /dev/loop2 chown oracle:oinstall /dev/raw/raw4 chown oracle:oinstall /dev/raw/raw5 Despues de crear los dispositivos cree una nueva base de datos llamada test sobre un diskgroup llamado DATA con el dbca y lo absolutamente lo minimo necesario.
nodo1-> export ORACLE_SID=+ASM
nodo1-> sqlplus "/as sysdba"
SQL> select name,TOTAL_MB,FREE_MB,STATE from V$asm_diskgroup;
NAME TOTAL_MB FREE_MB STATE
------------------------------ ---------- ---------- -----------
DATA 2048 15 CONNECTED
Teniendo la BD lista, cree un par mas de raw devices nuevamente de 1GB cada uno en un directorio diferente llamado /u02/virtual
mkdir -p /u02
mkdir /u02/virtual
dd if=/dev/zero of=asm_disk3 bs=1024k count=1024
dd if=/dev/zero of=asm_disk4 bs=1024k count=1024
losetup /dev/loop3 asm_disk3
losetup /dev/loop4 asm_disk4
raw /dev/raw/raw6 /dev/loop3
raw /dev/raw/raw7 /dev/loop4
chown oracle:oinstall /dev/raw/raw6
chown oracle:oinstall /dev/raw/raw7
La idea es simular la necesidad de mover de una SAN a otra usando dos directorios distintos /u01/asmdis y /u02/virtual.
Ahora es necesario ver si los nuevos dispositivos pueden ser usados por la BD
nodo1-> export ORACLE_SID=+ASM
nodo1-> sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Oct 1 09:46:05 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL> select path from v$asm_disk;
PATH
--------------------------------------------------------------------------------
/dev/raw/raw1
/dev/raw/raw2
/dev/raw/raw3
/dev/raw/raw4
/dev/raw/raw5
/dev/raw/raw6
/dev/raw/raw7
7 rows selected
Con este query garantizamos que raw6 y raw7 pueden ser usados por la BD
Ahora podemos hiniciar la simulacion:
1) Backup de la BD.
2) Asignarle la nueva ruta a asm_disktring. En este caso en particular no es necesario alterar el parameter asm_disktring ya que el mismo "apunta" a /dev/raw por lo que todos los dispositivos que se creen podran ser "vistos" por la instancia de ASM.
En un ambiente real seria algo asi como:
SQL> alter system set asm_disktring = '/dev/emcpowerc*' , '/dev/emcpowerh*';
Donde: '/dev/emcpowerc*' discos actuales.
Donde: '/dev/emcpowerh*' nuevos discos.
3) Agreagar los nuevos asm disk al (o los) disk groups existentes.
SQL> alter diskgroup DATA add disk '/dev/raw/raw6', '/dev/raw/raw7';
Hecho esto es necesario verificar el proceso de rebalanceo del ASM.
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERA STAT POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ ----- ---- ---------- ---------- ---------- ---------- ---------- -----------
1 REBAL RUN 1 1 144 1021 132 6
SQL> select * from v$asm_operation;
INST_ID GROUP_NUMBER OPERA STAT POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
---------- ------------ ----- ---- ---------- ---------- ---------- ---------- ---------- -----------
1 1 REBAL RUN 1 1 144 1021 132 6
SQL> select * from v$asm_operation;
no rows selected
Una vez finalizado el rebalanceo tendremos:
SQL> select name,path from v$asm_disk;
NAME PATH
------------------------------ ----------------------------------------
DATA_0000 /dev/raw/raw4
DATA_0001 /dev/raw/raw5
DATA_0002 /dev/raw/raw6
DATA_0003 /dev/raw/raw7
El siguiente paso seria a eliminar los asm disk que ya no seran usados.
4) SQL> alter diskgroup DATA drop disk 'DATA_0000', 'DATA_0001';
Diskgroup altered.
Hecho esto, la eliminacion de los asm disk group no es inmediata. Debemos esperar a que el ASM rebalance de nuevo los asm disk:
select name,mount_status, header_status,state,library from v$asm_disk;disk;
NAME MOUNT_S HEADER_STATU STATE LIBRARY
------------------------------ ------- ------------ -------- -------------------------------------
DATA_0003 CACHED MEMBER NORMAL System
DATA_0002 CACHED MEMBER NORMAL System
DATA_0000 CACHED MEMBER DROPPING System
DATA_0001 CACHED MEMBER DROPPING System
8 rows selected.
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERA STAT POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ ----- ---- ---------- ---------- ---------- ---------- ---------- -----------
1 REBAL RUN 6 6 18 1009 349 2
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERA STAT POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES
------------ ----- ---- ---------- ---------- ---------- ---------- ---------- -----------
1 REBAL RUN 6 6 356 1016 295 2
SQL> select * from v$asm_operation;
no rows selected
SQL> select name,mount_status, header_status,state,library from v$asm_disk;
NAME MOUNT_S HEADER_STATU STATE LIBRARY
------------------------------ ------- ------------ -------- ------------------------
DATA_0003 CACHED MEMBER NORMAL System
DATA_0002 CACHED MEMBER NORMAL System
2 rows selected.
Una vez finalizado el proceso de rebalanceo podremos disponer de la "caja de almacenamiento" o los dispositivos de almacenamiento que estabamos usando incialmente.
No hay comentarios:
Publicar un comentario