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