Implement ASM Failure Groups

1. Implement ASM Failure Groups
Documentación en Tahiti -> Masters Book List -> Automatic Storage Management Administrator’s Guide -> 4 Administering Oracle ASM Disk Groups -> Oracle ASM Mirroring and Disk Group Redundancy

2. Ya hemos realizado diferentes prácticas con Failure Groups en la sección «Create ASM Disk Groups»  y en la sección «Create and Manage an ASM instance»
Vamos a realizar una pequeña práctica de la funcionalidad «Oracle ASM Fast Mirror Resync»

3. Creamos un Disk Group de nombre TEST con la compatibilidad >= 11.1 para poder usar «ASM Fast Mirror Resync»

# Entramos en ASM
. profile_rac
sqlplus / as syasm

 

-- Creamos el DISKGROUP TEST
CREATE DISKGROUP TEST NORMAL REDUNDANCY
FAILGROUP FG1 DISK 'ORCL:TEST01' NAME TEST01
FAILGROUP FG2 DISK 'ORCL:TEST02' NAME TEST02
ATTRIBUTE 'compatible.asm' = '11.2',
'compatible.rdbms' = '11.2';

-- Validamos la configuración para Fast Mirror Resync
-- compatible.asm = 11.2
-- compatible.rdbms = 11.2
-- disk_repair_time = 3.6h
SELECT
NAME,
VALUE
FROM
V$ASM_ATTRIBUTE
WHERE
GROUP_NUMBER = (SELECT GROUP_NUMBER FROM V$ASM_DISKGROUP WHERE NAME = 'TEST')
AND NAME IN ('compatible.asm','compatible.rdbms','disk_repair_time');

4. Modificamos el tiempo de reparación del Disk Group a 5 minutos
Este parámetro controla el tiempo que ASM mantiene un disco OFFLINE antes de borrarlo (DROP)

ALTER DISKGROUP TEST SET ATTRIBUTE 'disk_repair_time' = '5m';

5. Vamos a a hacer una prueba desconectando un disco (TEST02) durante un tiempo limitado. Luego vamos a desconectarlo pero le forzamos a ASM para que lo borre después de 1 minuto.

-- Pasos que vamos a realizar
-- OFFLINE TEST02 -> ONLINE (menos de 5min) -> OFFLINE DROP AFTER 1m -> Comprobar lo que sucede

-- Desconectamos el disco TEST02
ALTER DISKGROUP TEST OFFLINE DISK TEST02;

-- Comprobamos el estado del disco
SELECT MODE_STATUS FROM V$ASM_DISK WHERE NAME = 'TEST02';

-- Lo ponemos ONLINE antes de 5 minutos
ALTER DISKGROUP TEST ONLINE DISK TEST02;

-- Volvemos a desconectar el disco pero esta vez le indicamos a ASM que lo borre después de 1 minuto
ALTER DISKGROUP TEST OFFLINE DISK TEST02 DROP AFTER 1m;

-- Después de un minuto el disco deja de formar parte del diskgroup TEST
-- La siguiente consulta no debe devolver ningún registro tras un minuto
SELECT MODE_STATUS FROM V$ASM_DISK WHERE NAME = 'TEST02';

-- Ahora podemos añadir el disco, pero esta vez como si fuera un disco nuevo
ALTER DISKGROUP TEST ADD FAILGROUP FG2 DISK 'ORCL:TEST02' NAME TEST02 FORCE;

-- La operación ONLINE y la de añadir el disco (REBAL) se puede ver en V$ASM_OPERATION
SELECT * FROM V$ASM_OPERATION;

-- Por último, borramos el diskgroup
DROP DISKGROUP TEST;