這篇文章主要介紹“怎么使用ASM維護(hù)工具”,在日常操作中,相信很多人在怎么使用ASM維護(hù)工具問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”怎么使用ASM維護(hù)工具”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、威寧ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的威寧網(wǎng)站制作公司
ASM實(shí)例中有元文件與數(shù)據(jù)文件介紹
X$KFFXP是ASM(Automatic Storage Management)自動(dòng)存儲(chǔ)管理特性的重要內(nèi)部視圖,該視圖反應(yīng)了File Extent Map映射關(guān)系,ASM會(huì)將文件split成多個(gè)多個(gè)piece分片,這些分片被稱為Extents。 在Disk上存放這些Extent的位置,就是我們常說的”Allocation Unit”。
KFF意為Kernel File,X$KFFXP即Kernel File Extent Maps, 該內(nèi)部視圖的一條記錄代表一個(gè)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 工具
有了這個(gè)命令我們可以不通過實(shí)例查詢視圖查詢磁盤信息,直接在操作系統(tǒng)層對(duì)ASM的相關(guān)信息進(jìn)行查閱磁盤空間大小和剩余量等信息。
KFOD 命令在 ASM實(shí)例 $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無法啟動(dòng)、DiskGroup無法mount的時(shí)候可以嘗試使用這個(gè)神器來修復(fù)
kfed工具支持對(duì)于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:元文件塊大小 默認(rèn)是0x82
第3行:type_kfbh:類型,磁盤頭總是KFBTYP_DISKHEAD
第4行:kfbh.datfmt 數(shù)據(jù)格式
第5行:kfbh.block.blk磁盤頭始終是0
第6行:kfbh.block.obj磁盤在磁盤組中的號(hào)
第7行:kfbh.check 校驗(yàn)碼,寫到磁盤前計(jì)算
第8~11行:磁盤頭無意義
第12行:kfdhdb.driver.provstr 沒有使用Lib包的時(shí)候顯示為ORCLDISK
第13~18行:kfdhdb.driver.reserved始終為0
第19行:kfdhdb.compat 版本號(hào)
第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)建時(shí)的時(shí)間戳
第29~30行:kfdhdb.mntstmp.hi,kfdhdb.mntstmp.lo Mount時(shí)的時(shí)間戳
第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 說明第一個(gè)AU后,是用戶可用空間。
第37行:kfdhdb.altlocn 說明文件目錄開始自第二個(gè)AU
第38行:kfdhdb.f1b1locn 文件目錄塊1分配單元號(hào)
第39~108行:在默認(rèn)au的情況下,后面的信息基本都變化不大
這部分信息對(duì)于ASM識(shí)別磁盤非常重要,也正式因?yàn)樗闹匾?1g默認(rèn)就就對(duì)其進(jìn)行了一個(gè)鏡像備份,可以通過kefd的repair操作直接恢復(fù),相當(dāng)?shù)姆奖?/p>
ASM磁盤頭信息損壞和修復(fù)
從Oracle 11g開始,Oracle提供了一個(gè)工具AMDU用于協(xié)助診斷,通過這個(gè)工具可以在磁盤組加載之前將ASM的元數(shù)據(jù)抽取出來,用于數(shù)據(jù)庫診斷,這個(gè)工具可以向后兼容,引入到10g中。
通過amdu -h可以查看詳細(xì)的幫助說明,缺省的調(diào)用amdu,會(huì)自動(dòng)生成一個(gè)以時(shí)間命名的目錄,該目錄下生成的報(bào)告文件會(huì)記錄磁盤組的相關(guān)信息
到此,關(guān)于“怎么使用ASM維護(hù)工具”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!