Disclaimer

Sunday 11 July 2021

Important Tools to Troubleshoot ASM Issues

 

Utilities:Tools Used to Troubleshoot ASM Issues

In today's post I will discuss 3 most import utilities used to troubleshoot ASM issues so lets start without any further delay. These are

  1. KFOD (Kernel Files OSM Disk)
  2. KFED (Kernel File Metadata Editor)
  3. AMDU (ASM Metadata Dump Utility)

KFOD: KFOD utility is very useful to troubleshoot the ASM disk issues. The utility is also used by oracle internal tools like DBCA, DBUA and ASMCA to perform disk discovery.

NOTEOther utilities are available for determining the status of a disk's header which should fulfill the business need.V$ASM_DISK from an ASM instance;asmcmd lsdsk;kfod. kfed is a utility that should only be used under the guidance of Oracle support

$ kfod help=y
 Usage: kfod op=<op> asm_diskstring=... | pfile=...

If you type just kfod it will display ASM instance and Grid home 
Valid options types with KFOD are
DISKS/CANDIDATES/MISSING/GROUPS/INSTS/VERSION/PATCHES/PATCHLVL/CLIENTS/RM/RMVERS/DFLTDSTR/GPNPDSTR/METADATA/CREDCRECLUS/GETCLSTYPE/CREDEXPORT/GETASMGUID/CREDDELCLUS/CREDVERIFY/UPGRADEVERIFY/LSCC/CREDLIST/CELLCONFIG/ALL


$kfod
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME
=========================================================================
      +ASM /u01/oragrid/12.2.0.1/grid




Find version:-

$kfod op=version
--------------------------------------------------------------------------------
ORACLE_SID RAC VERSION
=========================================================================
      +ASM  NO 12.2.0.1.0




List ASM DG known to an ASM instance:-

$kfod _asmsid=+ASM
--------------------------------------------------------------------------------
Group          Size          Free Redundancy Name
=========================================================================
   1:      30720 MB      30666 MB     EXTERN DG_TEST_REDO
   2:      30720 MB      30658 MB     EXTERN DG_TEST_FRA
   3:      30720 MB      30657 MB     EXTERN DG_TEST_DATA



List ASM disks:-

$kfod disks=all op=disks
--------------------------------------------------------------------------------
 Disk          Size Path                                     User     Group
=========================================================================
   1:      30720 MB AFD:DATA01
   2:      30720 MB AFD:FRA01
   3:      30720 MB AFD:REDO0




List diskgroups with asm compatibility:-

$kfod asmcompatibility=true op=groups
--------------------------------------------------------------------------------
Group          Size          Free Redundancy Name           ASM Compatibility
=========================================================================
   1:      30720 MB      30666 MB     EXTERN DG_TEST_REDO          12.2.0.1.0
   2:      30720 MB      30658 MB     EXTERN DG_TEST_FRA             12.2.0.1.0
   3:      30720 MB      30657 MB     EXTERN DG_TEST_DATA          12.2.0.1.0





Metadata size:-

kfod disks=all op=METADATA
Approximate Metadata Size: 635

kfod disks=all shallow=TRUE

Shallow discovery returned 3 devices
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME
=========================================================================
      +ASM /u01/oragrid/12.2.0.1/grid



Note: You can run KFOD in verbose (verbose=none,errors,warnings,functions,all)

$kfod verbose=all disks-all

KFED: the utility allows us to read and analyze and ASM diskgroup header. sometime this information is needed to investigate the DG issue if the DG can not be mounted. The utility can even update the DG header and therefore be careful while using it.
Permitted operations are READ/WRITE/MERGE/REPAIR/NEW/FORM/FIND/STRUCT/STAMP

type kfed help to find the supported options and available switches. To see the detail of a command type help kfed command name eg help kfed read I will walk you through here with some important one.

Reading ASM Disk Header Using KFED

$ kfed read AFD:DATA01 |egrep 'size|name|type|spfile'

kfbh.type:                            1 ; 0x002: KFBTYP_DISKHEAD <=ASM disk header
kfdhdb.dskname:                  DATA01 ; 0x028: length=6 <=ASM disk name
kfdhdb.grpname:            DG_TEST_DATA ; 0x048: length=12 <= ASM DGname
kfdhdb.fgname:                   DATA01 ; 0x068: length=6 <=ASM Failgroup name
kfdhdb.secsize:                     512 ; 0x0b8: 0x0200 <=Disk sector size
kfdhdb.blksize:                    4096 ; 0x0ba: 0x1000 <=ASM block size
kfdhdb.ausize:                  1048576 ; 0x0bc: 0x00100000 <= ASM AU size
kfdhdb.dsksize:                   30720 ; 0x0c4: 0x00007800 
<=ASM disk size
kfdhdb.spfile:                       60 ; 0x0f4: 0x0000003c  <= ASM Spfile location



KFED returns a readable output only when a disk device is/was the part of an ASM diskgroup else it will through below exception

KFED-00322: invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][0]

AMDU:AMDU is an utility to extract all the available metadata from one or more ASM disks and/or generate formatted printouts of individual blocks


$asmcmd lsdg
S
tate    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  1048576     30720    30666                0           30666              0             N  DG_TEST/
MOUNTED  EXTERN  N         512             512   4096  1048576     30720    30657                0           30657              0             N  DG_TEST_DATA/
MOUNTED  EXTERN  N         512             512   4096  1048576     30720    30658                0           30658              0             N  DG_TEST_FRA/
MOUNTED  EXTERN  N         512             512   4096  1048576     30720    30666                0           30666              0             N  DG_TEST_REDO/



$amdu diskstring='AFD:*' -dump 'DG_TEST'amdu_2018_06_11_11_10_49/

$cd amdu_2018_06_11_11_10_49/

$ls -lrt
-rw-r--r-- 1 oragrid oinstall     4320 Jun 11 11:10 DG_TEST.map
-rw-r--r-- 1 oragrid oinstall 54534144 Jun 11 11:10 DG_TEST_0001.img
-rw-r--r-- 1 oragrid oinstall     6322 Jun 11 11:10 report.txt


$cat report.txt 👇


********************* DISCOVERY **********************************

--------------------- DISK REPORT N0001 ---------------------

                Disk Path: AFD:DATA01
           Unique Disk ID:
               Disk Label: DATA01
     Physical Sector Size: 512 bytes
                Disk Size: 30720 megabytes
               Group Name: DG_TEST_DATA
                Disk Name: DATA01
       Failure Group Name: DATA01
              Disk Number: 0
            Header Status: 3
       Disk Creation Time: 2018/06/05 16:32:35.361000
          Last Mount Time: 2018/06/08 15:05:05.496000
    Compatibility Version: 0x0c200100(12020001)
         Disk Sector Size: 512 bytes
         Disk size in AUs: 30720 AUs
         Group Redundancy: 1
      Metadata Block Size: 4096 bytes
                  AU Size: 1048576 bytes
                   Stride: 113792 AUs
      Group Creation Time: 2018/06/05 16:32:35.045000
  File 1 Block 1 location: AU 10
     Voting File Start AU: 0
       Voting File End AU: 0
              OCR Present: NO
             Exadata Disk: NO
    kfed Write IP address: 192.168.1.6
          kfed Write Time: 1528463105
----------------------------- DISK REPORT N0002 ---------------------
                Disk Path: AFD:FRA01
           Unique Disk ID:
               Disk Label: FRA01
     Physical Sector Size: 512 bytes
                Disk Size: 30720 megabytes
               Group Name: DG_TEST_FRA
                Disk Name: FRA01
       Failure Group Name: FRA01
              Disk Number: 0
            Header Status: 3
       Disk Creation Time: 2018/06/06 10:54:52.140000
          Last Mount Time: 2018/06/08 15:05:05.539000
    Compatibility Version: 0x0c200100(12020001)
         Disk Sector Size: 512 bytes
         Disk size in AUs: 30720 AUs
         Group Redundancy: 1
      Metadata Block Size: 4096 bytes
                  AU Size: 1048576 bytes
                   Stride: 113792 AUs
      Group Creation Time: 2018/06/06 10:54:51.916000
  File 1 Block 1 location: AU 10
     Voting File Start AU: 0
       Voting File End AU: 0
              OCR Present: NO
             Exadata Disk: NO
    kfed Write IP address: 192.168.1.6
          kfed Write Time: 1528463105
----------------------------- DISK REPORT N0003 ---------------------
                Disk Path: AFD:REDO01
           Unique Disk ID:
               Disk Label: REDO01
     Physical Sector Size: 512 bytes
                Disk Size: 30720 megabytes
               Group Name: DG_TEST_REDO
                Disk Name: REDO01
       Failure Group Name: REDO01
              Disk Number: 0
            Header Status: 3
       Disk Creation Time: 2018/06/06 11:09:34.614000
          Last Mount Time: 2018/06/08 15:05:05.568000
    Compatibility Version: 0x0c200100(12020001)
         Disk Sector Size: 512 bytes
         Disk size in AUs: 30720 AUs
         Group Redundancy: 1
      Metadata Block Size: 4096 bytes
                  AU Size: 1048576 bytes
                   Stride: 113792 AUs
      Group Creation Time: 2018/06/06 11:09:34.230000
  File 1 Block 1 location: AU 10
     Voting File Start AU: 0
       Voting File End AU: 0
              OCR Present: NO
             Exadata Disk: NO
    kfed Write IP address: 192.168.1.6
          kfed Write Time: 1528463105
----------------------------- DISK REPORT N0004 --------------------
                Disk Path: AFD:TEST01
           Unique Disk ID:
               Disk Label: TEST01
     Physical Sector Size: 512 bytes
                Disk Size: 30720 megabytes
               Group Name: DG_TEST
                Disk Name: TEST01
       Failure Group Name: TEST01

              Disk Number: 0
            Header Status: 3
       Disk Creation Time: 2018/06/11 10:46:28.905000
          Last Mount Time: 2018/06/11 10:46:38.577000
    Compatibility Version: 0x0c200100(12020001)
         Disk Sector Size: 512 bytes
         Disk size in AUs: 30720 AUs
         Group Redundancy: 1
      Metadata Block Size: 4096 bytes
                  AU Size: 1048576 bytes
                   Stride: 113792 AUs
      Group Creation Time: 2018/06/11 10:46:28.607000
  File 1 Block 1 location: AU 10
     Voting File Start AU: 0
       Voting File End AU: 0
              OCR Present: NO
             Exadata Disk: NO
    kfed Write IP address: 192.168.1.6
          kfed Write Time: 1528706798

********** Slept for 6 seconds waiting for heartbeats***************


******************SCANNING DISKGROUP DG_TEST ***********************

            Creation Time: 2018/06/11 10:46:28.607000
         Disks Discovered: 1
               Redundancy: 1
                  AU Size: 1048576 bytes
      Metadata Block Size: 4096 bytes
     Physical Sector Size: 512 bytes
          Metadata Stride: 113792 AU
   Duplicate Disk Numbers: 0
                  Mounted: No

---------------------------- SCANNING DISK N0004 --------------------
Disk N0004: 'AFD:TEST01'
           Allocated AU's: 54
                Free AU's: 30666
       AU's read for dump: 54
       Block images saved: 13314
        Map lines written: 54
          Heartbeats seen: 0
  Corrupt metadata blocks: 0
        Corrupt AT blocks: 0

----------------------- SUMMARY FOR DISKGROUP DG_TEST ---------------
           Allocated AU's: 54
                Free AU's: 30666
       AU's read for dump: 54
       Block images saved: 13314
        Map lines written: 54
          Heartbeats seen: 0
  Corrupt metadata blocks: 0
        Corrupt AT blocks: 0

*************************** END OF REPOR*****************************

No comments:

Post a Comment

100 Oracle DBA Interview Questions and Answers

  Here are 100 tricky interview questions tailored for a Senior Oracle DBA role. These questions span a wide range of topics, including perf...