Hoy vamos a ver un ejemplo de los comando seas habituales que solemos hacer en un ASM
Nombre de los diskgroups
ASMCMD
ASMCMD> lsdg
SQLPLUS
SQL> column name format a20;
SQL> select NAME,ALLOCATION_UNIT_SIZE,STATE,TYPE,TOTAL_MB,FREE_MB from v$asm_diskgroup
NAME ALLOCATION_UNIT_SIZE STATE TYPE TOTAL_MB FREE_MB
---------- -------------------- ---------- ------ ---------- ----------
ASMFS 1048576 MOUNTED EXTERN 1019 403
DATA01_PRUEBA 1048576 MOUNTED EXTERN 2246 267
OCRVOTING 1048576 MOUNTED EXTERN 1019 623
REDO 1048576 MOUNTED EXTERN 499 404
Discos en un diskgroup
ASMCMD
ASMCMD> lsdsk -p -G DATA01_PRUEBA
Group_Num Disk_Num Incarn Mount_Stat Header_Stat Mode_Stat State Path
2 1 3915953579 CACHED MEMBER ONLINE NORMAL /dev/oracleasm/disks/ASM01
2 0 3915953576 CACHED MEMBER ONLINE NORMAL /dev/oracleasm/disks/DATA_PRUEBA
ASMCMD> lsdsk -G DATA01_PRUEBA
Path
/dev/oracleasm/disks/ASM01
/dev/oracleasm/disks/DATA_PRUEBA
SQLPLUS
SQL> select PATH,STATE,NAME from v$asm_disk where name like '%PRUEBA%';
PATH STATE NAME
---------------------------------------- ---------- --------------------
/dev/oracleasm/disks/DATA_PRUEBA NORMAL DATA01_PRUEBA_0000
/dev/oracleasm/disks/ASM01 NORMAL DATA01_PRUEBA_0001
Discos candidatos
ASMCMD
ASMCMD> lsdsk --candidate -p
Group_Num Disk_Num Incarn Mount_Stat Header_Stat Mode_Stat State Path
0 5 3915953571 CLOSED FORMER ONLINE NORMAL /dev/oracleasm/disks/ASM02
0 4 3915953570 CLOSED FORMER ONLINE NORMAL /dev/oracleasm/disks/ASM03
0 1 3915953567 CLOSED PROVISIONED ONLINE NORMAL /dev/oracleasm/disks/ASM04
0 0 3915953566 CLOSED PROVISIONED ONLINE NORMAL /dev/oracleasm/disks/ASM05
SQLPLUS
column state format a10;
column HEADER_STATUS format a20;
column path format a30;
SQL> select STATE,PATH,HEADER_STATUS from v$asm_disk where header_status !='MEMBER';
STATE PATH HEADER_STATUS
-------- -------------------------------------------------- ------------
NORMAL /dev/oracleasm/disks/ASM05 PROVISIONED
NORMAL /dev/oracleasm/disks/ASM02 FORMER
NORMAL /dev/oracleasm/disks/ASM03 FORMER
NORMAL /dev/oracleasm/disks/ASM04 PROVISIONED
Eliminar un Diskgroup
Para poder eliminar un diskgroup este debe de estar montado.
En caso de querer eliminarlo desmontado deberemos de ponerel flag “forcé”
SQL> drop diskgroup FSARCHPRUEBA force including contents;
Diskgroup dropped.
Creación de Diskgroup
En este caso creamos un grupo de redundancia HIGH, por lo que necesitamos 3 failure groups
SQLPLUS
CREATE DISKGROUP DATA HIGH REDUNDANCY
FAILGROUP controller1 DISK
'/dev/oracleasm/disks/ASM01' NAME ASM01,
'/dev/oracleasm/disks/ASM02' NAME ASM02
FAILGROUP controller2 DISK
'/dev/oracleasm/disks/ASM03' NAME ASM03,
'/dev/oracleasm/disks/ASM04' NAME ASM04
FAILGROUP controller3 DISK
'/dev/oracleasm/disks/ASM05' NAME ASM05
ATTRIBUTE 'au_size'='4M',
'compatible.asm' = '11.2',
'compatible.rdbms' = '11.2';
Ahora creamos un grupo con external
CREATE DISKGROUP REDO EXTERNAL REDUNDANCY
DISK '/dev/oracleasm/disks/REDO01' NAME REDO01
ATTRIBUTE 'au_size'='4M',
'compatible.asm' = '11.2',
'compatible.rdbms' = '11.2';
ASMCMD
En asmcmd la creación del diskgroup se hace mediante el comando mkdg, pero los parámetros han de ser pasados en un fichero xml
Añadir un disco
ASMCMD (Se hace mediante la sintaxsis en xml)
Chdg fichero-cambios.xml
SQLPLUS
SQL> alter diskgroup DATA01_PRUEBA add disk '/dev/oracleasm/disks/ASM05';
Diskgroup altered.
SQL> select PATH,STATE,NAME from v$asm_disk where name like '%PRUEBA%';
PATH STATE NAME
-------------------------------------------------- -------- ------------------------------
/dev/oracleasm/disks/DATA_PRUEBA NORMAL DATA01_PRUEBA_0000
/dev/oracleasm/disks/ASM05 NORMAL DATA01_PRUEBA_0002
/dev/oracleasm/disks/ASM01 NORMAL DATA01_PRUEBA_0001
Quitamos un disco
ASMCMD (Se hace mediante la sintaxsis en xml)
chdg fichero-cambios.xml
SQLPLUS
Para eliminarse se usa la columna NAME y no PATH
SQL> alter diskgroup DATA01_PRUEBA drop disk DATA01_PRUEBA_0001;
Diskgroup altered.
Comprobar ficheros abiertos de en ASM
ASMCMD> lsof
DB_Name Instance_Name Path
+ASM +ASM2 +ocrvoting.255.4294967295
asmvol +ASM2 +asmfs/ADVMFS1.256.888838797
prueba prueba2 +data01_prueba/prueba/controlfile/current.256.888313451
prueba prueba2 +data01_prueba/prueba/datafile/sysaux.260.888313489
prueba prueba2 +data01_prueba/prueba/datafile/system.259.888313463
prueba prueba2 +data01_prueba/prueba/datafile/undotbs1.261.888313519
prueba prueba2 +data01_prueba/prueba/datafile/undotbs2.267.888578953
prueba prueba2 +data01_prueba/prueba/datafile/users.263.888313549
prueba prueba2 +data01_prueba/prueba/onlinelog/group_1.257.888313455
prueba prueba2 +data01_prueba/prueba/onlinelog/group_2.258.888313459
prueba prueba2 +data01_prueba/prueba/onlinelog/group_3.264.888315899
prueba prueba2 +data01_prueba/prueba/onlinelog/group_4.265.888315903
prueba prueba2 +data01_prueba/prueba/tempfile/temp.262.888313531