溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么使用ASM維護工具

發(fā)布時間:2021-11-10 10:24:42 來源:億速云 閱讀:164 作者:iii 欄目:關(guān)系型數(shù)據(jù)庫

這篇文章主要介紹“怎么使用ASM維護工具”,在日常操作中,相信很多人在怎么使用ASM維護工具問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用ASM維護工具”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

ASM實例中有元文件與數(shù)據(jù)文件介紹

怎么使用ASM維護工具

X$KFFXP是ASM(Automatic Storage Management)自動存儲管理特性的重要內(nèi)部視圖,該視圖反應(yīng)了File Extent Map映射關(guān)系,ASM會將文件split成多個多個piece分片,這些分片被稱為Extents。 在Disk上存放這些Extent的位置,就是我們常說的”Allocation Unit”。

KFF意為Kernel File,X$KFFXP即Kernel File Extent Maps, 該內(nèi)部視圖的一條記錄代表一個Extent。

可以通過以下腳本查詢文件與Extent等ASM屬性的映射關(guān)系:

set linesize 140 pagesize 1400col "FILE NAME" format a40set head onselect NAME         "FILE NAME",       NUMBER_KFFXP "FILE NUMBER",       XNUM_KFFXP   "EXTENT NUMBER",       DISK_KFFXP   "DISK NUMBER",       AU_KFFXP     "AU NUMBER",       SIZE_KFFXP   "NUMBER of AUs"
  from x$kffxp, v$asm_alias
 where GROUP_KFFXP = GROUP_NUMBER
   and NUMBER_KFFXP = FILE_NUMBER
   and system_created = 'Y'
   and lxn_kffxp = 0
 order by name;

KFOD 工具

    有了這個命令我們可以不通過實例查詢視圖查詢磁盤信息,直接在操作系統(tǒng)層對ASM的相關(guān)信息進行查閱磁盤空間大小和剩余量等信息。

KFOD 命令在 ASM實例  $ORACLE_HOME/bin 目錄下

(1)查看磁盤組的組成

[grid@host02 lib]$ kfod disk=all group=diskgroup ds=true
--------------------------------------------------------------------------------
 Disk          Size Path                                     Disk Group   User     Group   
================================================================================
   1:        999 Mb /dev/raw/raw1                            OCR          grid     asmadmin
   2:        999 Mb /dev/raw/raw2                            OCR          grid     asmadmin
   3:        999 Mb /dev/raw/raw3                            OCR          grid     asmadmin
   4:       9993 Mb /dev/raw/raw4                            #            grid     asmadmin
   5:       9993 Mb /dev/raw/raw5                            #            grid     asmadmin
   6:       9993 Mb /dev/raw/raw6                            #            grid     asmadmin

(2)查看分組信息及可用容量

[grid@host02 lib]$ kfod diisk=all op=groups
--------------------------------------------------------------------------------
Group          Size          Free Redundancy Name 
================================================================================

(3)顯示所有磁盤

[grid@host02 lib]$kfod  disk=all 
--------------------------------------------------------------------------------
 Disk          Size Path                                     User     Group   
================================================================================
   1:        999 Mb /dev/raw/raw1                            grid     asmadmin
   2:        999 Mb /dev/raw/raw2                            grid     asmadmin
   3:        999 Mb /dev/raw/raw3                            grid     asmadmin
   4:       9993 Mb /dev/raw/raw4                            grid     asmadmin
   5:       9993 Mb /dev/raw/raw5                            grid     asmadmin
   6:       9993 Mb /dev/raw/raw6                            grid     asmadmin
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME                                                          
================================================================================
     +ASM1 /u01/app/11.2.0/grid                                                 
     +ASM2 /u01/app/11.2.0/grid

KFED 工具

KFED主要用來編輯和修復(fù)ASM metadata,可以在DiskGroup沒有mount的情況下使用;因此在ASM無法啟動、DiskGroup無法mount的時候可以嘗試使用這個神器來修復(fù)

kfed工具支持對于ASM信息的READ/WRITE/MERGE/NEW/ FORM/FIND/STRUCT等操作,11gR2之前需要手工編譯. 

一、編譯kfed工具

1.編譯

[oracle@node1 ~]$ cd $ORACLE_HOME/rdbms/lib

[oracle@node1 lib]$ make -f ins_rdbms.mk ikfed

2.配置環(huán)境變量

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/rdbms/lib:$PATH

3.查看幫助

[oracle@node1 ~]$ kfed -help

4查看一塊磁盤信息

[oracle@rac01~]$ kfed read /dev/asm-disk1 aun=0 blkn=0
【01】kfbh.endian:                          1 ; 0x000: 0x01
【02】kfbh.hard:                          130 ; 0x001: 0x82
【03】kfbh.type:                            1 ; 0x002:KFBTYP_DISKHEAD
【04】kfbh.datfmt:                          1 ; 0x003: 0x01
【05】kfbh.block.blk:                       0 ; 0x004: blk=0
【06】kfbh.block.obj:              2147483648 ; 0x008: disk=0
【07】kfbh.check:                   875080645 ; 0x00c:0x3428abc5
【08】kfbh.fcn.base:                     4892 ; 0x010: 0x0000131c
【09】kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000
【10】kfbh.spare1:                          0 ; 0x018: 0x00000000
【11】kfbh.spare2:                          0 ; 0x01c: 0x00000000
【12】kfdhdb.driver.provstr:         ORCLDISK ; 0x000: length=8
【13】kfdhdb.driver.reserved[0]:            0 ; 0x008: 0x00000000
【14】kfdhdb.driver.reserved[1]:            0 ; 0x00c: 0x00000000
【15】kfdhdb.driver.reserved[2]:            0 ; 0x010: 0x00000000
【16】kfdhdb.driver.reserved[3]:            0 ; 0x014: 0x00000000
【17】kfdhdb.driver.reserved[4]:            0 ; 0x018: 0x00000000
【18】kfdhdb.driver.reserved[5]:            0 ; 0x01c: 0x00000000
【19】kfdhdb.compat:                186646528 ; 0x020: 0x0b200000
【20】kfdhdb.dsknum:                        0 ; 0x024: 0x0000
【21】kfdhdb.grptyp:                        1 ; 0x026:KFDGTP_EXTERNAL
【22】kfdhdb.hdrsts:                        3 ; 0x027:KFDHDR_MEMBER
【23】kfdhdb.dskname:               DATA_0000 ; 0x028: length=9
【24】kfdhdb.grpname:                    DATA ; 0x048: length=4
【25】kfdhdb.fgname:                DATA_0000 ; 0x068: length=9
【26】kfdhdb.capname:                         ; 0x088: length=0
【27】kfdhdb.crestmp.hi:             33020845 ; 0x0a8: HOUR=0xdDAYS=0x1d MNTH=0x6 YEAR=0x7df
【28】kfdhdb.crestmp.lo:           1437992960 ; 0x0ac: USEC=0x0MSEC=0x182 SECS=0x1b MINS=0x15
【29】kfdhdb.mntstmp.hi:             33021392 ; 0x0b0: HOUR=0x10DAYS=0xe MNTH=0x7 YEAR=0x7df
【30】kfdhdb.mntstmp.lo:           2467747840 ; 0x0b4: USEC=0x0MSEC=0x1b6 SECS=0x31 MINS=0x24
........
【108】

總共有108行內(nèi)容,這些內(nèi)容是什么含義呢?我們來一一解讀

第1行:kfbh.endian:小字節(jié)(LittleEndian) = 1  大字節(jié)(Big Endian) = 0

第2行:kfbh.hard:元文件塊大小 默認是0x82

第3行:type_kfbh:類型,磁盤頭總是KFBTYP_DISKHEAD

第4行:kfbh.datfmt 數(shù)據(jù)格式

第5行:kfbh.block.blk磁盤頭始終是0

第6行:kfbh.block.obj磁盤在磁盤組中的號

第7行:kfbh.check 校驗碼,寫到磁盤前計算

第8~11行:磁盤頭無意義

第12行:kfdhdb.driver.provstr 沒有使用Lib包的時候顯示為ORCLDISK

第13~18行:kfdhdb.driver.reserved始終為0

第19行:kfdhdb.compat 版本號

第20行: kfdhdb.dsknum  0

第21行:kfdhdb.grptyp 冗余策略,共4種冗余策略

   KFDGTP_INVALID    ((kfdgtp)0)  /* Illegal value                    */

   KFDGTP_EXTERNAL    ((kfdgtp)1)  /* Externalredundancy               */

   KFDGTP_NORMAL      ((kfdgtp)2)  /*Normal redundancy                */

   KFDGTP_HIGH       ((kfdgtp)3)  /* High redundancy                  */

第22行:hdrsts_kfdhdb 磁盤狀態(tài),共8種狀態(tài)

   KFDHDR_INVALID    ((kfdhdr)0)  /*   Illegal value                  */

   KFDHDR_UNKNOWN     ((kfdhdr)1)  /*  Disk header block unreadable    */

   KFDHDR_CANDIDATE   ((kfdhdr)2)  /*  No OSM or OS disk header found  */

   KFDHDR_MEMBER     ((kfdhdr)3)  /*   Normal member of the group     */

   KFDHDR_FORMER     ((kfdhdr)4)  /*   Disk dropped cleanly from group */

   KFDHDR_CONFLICT    ((kfdhdr)5)  /*  Header conflicts               */

   KFDHDR_INCOMPAT    ((kfdhdr)6)  /*  Written by incompatible software*/

   KFDHDR_PROVISIONED ((kfdhdr)7)  /*   Disk wasprepared beforehand    */

參見V$asm_disk

第23行:dskname_kfdhdb 磁盤名稱 

第24行:grpname_kfhdb 磁盤組名稱

第25行:fgname_kfdhdb: 磁盤名稱

第26行:capname_kfdhdb 未使用

第27~28行:fdhdb.crestmp.hi,kfdhdb.crestmp.lo創(chuàng)建時的時間戳

第29~30行:kfdhdb.mntstmp.hi,kfdhdb.mntstmp.lo  Mount時的時間戳

第31行:kfdhdb.secsize 扇區(qū)大小

第32行:kfdhdb.blksize塊大小

第33行:kfdhdb.ausize AU大小。

第34行:kfdhdb.mfact: 版本相關(guān),無意義

第35行:kfhdb.dsksize本磁盤包含的AU數(shù)量。kfdhdb.ausize *dsksize_kfdhdb = disk size

第36行:kfdhdb.pmcnt  AU的物理地址空間。

第37行:kfdhdb.fstlocn  說明第一個AU后,是用戶可用空間。

第37行:kfdhdb.altlocn 說明文件目錄開始自第二個AU

第38行:kfdhdb.f1b1locn  文件目錄塊1分配單元號

第39~108行:在默認au的情況下,后面的信息基本都變化不大

這部分信息對于ASM識別磁盤非常重要,也正式因為它的重要,11g默認就就對其進行了一個鏡像備份,可以通過kefd的repair操作直接恢復(fù),相當(dāng)?shù)姆奖?/p>

       ASM磁盤頭信息損壞和修復(fù)

AMDU (ASM Metadata Dump Utility)           ASM磁盤組的信息需要在Mount之后才能通過內(nèi)部視圖查詢,如果磁盤組因為故障無法正常加載,那么信息將不可用,這為診斷帶來了諸多不便。

從Oracle 11g開始,Oracle提供了一個工具AMDU用于協(xié)助診斷,通過這個工具可以在磁盤組加載之前將ASM的元數(shù)據(jù)抽取出來,用于數(shù)據(jù)庫診斷,這個工具可以向后兼容,引入到10g中。

通過amdu -h可以查看詳細的幫助說明,缺省的調(diào)用amdu,會自動生成一個以時間命名的目錄,該目錄下生成的報告文件會記錄磁盤組的相關(guān)信息

到此,關(guān)于“怎么使用ASM維護工具”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

asm
AI