Leer las cabeceras de los discos en asm kfed read
Muchas veces resulta útil leer las cabeceras de los discos en asm debido a que cuando no están montados, por ejemplo, no podemos saber a qué diskgroup corresponde el disco mediante la vista v$asm_disk. O bien monitorizar los discos cuando no está arrancado el +ASM.
El primer punto es saber dónde estan montadas las unidades de disco en unix, para ello podríamos haber consultado la instancia asm con un show parameter asm_diskstring, pero si está parada podemos irnos a /dev y hacer un ls -ltr para mirar cuales son los discos...
Si hacemos un
kfed read /dev/disk_ASMse nos muestra lo siguinte:
$> kfed read /dev/disk_ASM kfbh.endian: 0 ; 0x000: 0x00 kfbh.hard: 130 ; 0x001: 0x82 kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD kfbh.datfmt: 1 ; 0x003: 0x01 kfbh.block.blk: 0 ; 0x004: T=0 NUMB=0x0 kfbh.block.obj: 2147483662 ; 0x008: TYPE=0x8 NUMB=0xe kfbh.check: 1950624216 ; 0x00c: 0x744429d8 kfbh.fcn.base: 0 ; 0x010: 0x00000000 kfbh.fcn.wrap: 0 ; 0x014: 0x00000000 kfbh.spare1: 0 ; 0x018: 0x00000000 kfbh.spare2: 0 ; 0x01c: 0x00000000 kfdhdb.driver.provstr: ORCLDISK ; 0x000: length=8 kfdhdb.driver.reserved[0]: 0 ; 0x008: 0x00000000 kfdhdb.driver.reserved[1]: 0 ; 0x00c: 0x00000000 kfdhdb.driver.reserved[2]: 0 ; 0x010: 0x00000000 kfdhdb.driver.reserved[3]: 0 ; 0x014: 0x00000000 kfdhdb.driver.reserved[4]: 0 ; 0x018: 0x00000000 kfdhdb.driver.reserved[5]: 0 ; 0x01c: 0x00000000 kfdhdb.compat: 186647040 ; 0x020: 0x0b200200 kfdhdb.dsknum: 14 ; 0x024: 0x000e kfdhdb.grptyp: 2 ; 0x026: KFDGTP_NORMAL kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER kfdhdb.dskname: DISK_DG_RECO_0014 ; 0x028: length=19 kfdhdb.grpname: DISK_DG_RECO ; 0x048: length=14 kfdhdb.fgname: DISK_DG_RECO_FG2 ; 0x068: length=18 kfdhdb.capname: ; 0x088: length=0 kfdhdb.crestmp.hi: 32967980 ; 0x0a8: HOUR=0xc DAYS=0x9 MNTH=0x3 YEAR=0x7dc kfdhdb.crestmp.lo: 2369987584 ; 0x0ac: USEC=0x0 MSEC=0xc9 SECS=0x14 MINS=0x23 kfdhdb.mntstmp.hi: 32992876 ; 0x0b0: HOUR=0xc DAYS=0x13 MNTH=0xb YEAR=0x7dd kfdhdb.mntstmp.lo: 2436241408 ; 0x0b4: USEC=0x0 MSEC=0x186 SECS=0x13 MINS=0x24 kfdhdb.secsize: 512 ; 0x0b8: 0x0200 kfdhdb.blksize: 4096 ; 0x0ba: 0x1000 kfdhdb.ausize: 4194304 ; 0x0bc: 0x00400000 kfdhdb.mfact: 454272 ; 0x0c0: 0x0006ee80 kfdhdb.dsksize: 25600 ; 0x0c4: 0x00006400 kfdhdb.pmcnt: 2 ; 0x0c8: 0x00000002 kfdhdb.fstlocn: 1 ; 0x0cc: 0x00000001 kfdhdb.altlocn: 2 ; 0x0d0: 0x00000002 kfdhdb.f1b1locn: 0 ; 0x0d4: 0x00000000 kfdhdb.redomirrors[0]: 0 ; 0x0d8: 0x0000 kfdhdb.redomirrors[1]: 0 ; 0x0da: 0x0000 kfdhdb.redomirrors[2]: 0 ; 0x0dc: 0x0000 kfdhdb.redomirrors[3]: 0 ; 0x0de: 0x0000 kfdhdb.dbcompat: 186647040 ; 0x0e0: 0x0b200200 kfdhdb.grpstmp.hi: 32967980 ; 0x0e4: HOUR=0xc DAYS=0x9 MNTH=0x3 YEAR=0x7dc kfdhdb.grpstmp.lo: 2306574336 ; 0x0e8: USEC=0x0 MSEC=0x2e2 SECS=0x17 MINS=0x22
donde los campos mas destacados son:
dskname ---Nombre del disco
grpname | Diskgroup en el que está el disco
fgname ---Grupo de fallos
dsknum ---Numero de disco de ASM
dsksize ---Tamaño disco
hdrsts ---Header status ver la vista V$ASM_DISK.HEADER_STATUS para posibles valores
mntstmp --Ultima vez que el disco fué montado
Por ejemplo, para ver el nomnre del disco hacemos
kfed read /dev/disk_ASM | grep dskname
Comentarios
Publicar un comentario