ASM管理命令列三工具:KFOD、KFED和AMDU(上)
ASM(Automatic Storage Management)是Oracle目前主推的軟叢集儲存策略。一般而言,管理ASM的工具包括使用sqlplus命令列、ASMCA圖形化介面。此外,ASM Disk的配置和建立,可以透過oracleasm程式命令列進行配置。進入11g之後,叢集件GI的crsctl和srvctl也可以提供ASM例項Instance和Dsik Group級別的修改。
一般情況下,ASM安裝管理藉助上述工具就夠了,況且Oracle Restate和Cluster ware可以確保ASM組建的HA架構。
一些特殊場景,如磁碟資料損壞、底層修復和ASM盤發現,需要額外的一些命令列工具。ASM工具包括:kfod、kfed和AMDU。在早期的ASM版本(10gR2)中,一部分工具還需要額外的重新編譯和連結才能使用。在11g,這部分工具已經成為預設設定,可以直接使用。
本篇主要介紹三個工具的基本使用和功能介紹。
1、kfod工具
與圖形化介面不同,kfod屬於底層的功能命令列工具。最常用的場景是從作業系統層面刺激磁碟的掃描動作,用於輔助ASM發現可用的ASM DISK。Oracle官方門戶中,對於kfod的描述包括如下幾個方面:
ü Oracle ASM和Database安裝過程中,kfod是會自動被呼叫,用於進行磁碟發現過程(Disk Discovery);
ü 如果在安裝Grid過程沒有成功,kfod也會在安裝stage資料夾中被找到。目錄地址為:<stage_folder>/grid/stage/ext/bin/。如果有這樣的情況,Oracle就要求我們設定環境變數LD_LIBRARY_PATH到<stage_folder>/grid/stage/ext/bin/;
簡單的說,kfod檢視檢索的意義更大,並不像其他有破壞性工具那樣存在很大風險。使用幫助命令引數,可以看到kfod的功能說明。
[grid@NCR-Standby-Asm ~]$ kfod help
KFOD-00101: LRM error [107] while parsing command line arguments
_asm_a/llow_only_raw_disks KFOD allow only raw devices [_asm_allow_only_raw_disks=TRUE/(FALSE)]
_asm_l/ibraries ASM Libraries[_asm_libraries=lib1,lib2,...]
_asms/id ASM Instance[_asmsid=sid]
a/sm_diskstring ASM Diskstring [asm_diskstring=discoverystring, discoverystring ...]
c/luster KFOD cluster [cluster=TRUE/(FALSE)]
db/_unique_name db_unique_name for ASM instance[db_unique_name=dbname]
di/sks Disks to discover [disks=raw,asm,badsize,all]
ds/cvgroup Include group name [dscvgroup=TRUE/(FALSE)]
g/roup Disks in diskgroup [group=diskgroup]
h/ostlist hostlist[hostlist=host1,host2,...]
metadata_a/usize AU Size for Metadata Size Calculation
metadata_c/lients Client Count for Metadata Size Calculation
metadata_d/isks Disk Count for Metadata Size Calculation
metadata_n/odes Node Count for Metadata Size Calculation
metadata_r/edundancy Redundancy for Metadata Size Calculation
n/ohdr KFOD header suppression [nohdr=TRUE/(FALSE)]
o/p KFOD options type [OP=DISKS/CANDIDATES/MISSING/GROUPS/INSTS/VERSION/CLIENTS/RM/RMVERS/DFLTDSTR/GPNPDSTR/METADATA/ALL]
p/file ASM parameter file [pfile=parameterfile]
s/tatus Include disk header status [status=TRUE/(FALSE)]
v/erbose KFOD verbose errors [verbose=TRUE/(FALSE)]
幾個常見的操作方法:
--檢視ASM配置基本情況
[grid@NCR-Standby-Asm ~]$ kfod
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME
================================================================
+ASM /u01/app/grid/product/11.2.0/grid
--檢視ASM Disk情況
[grid@NCR-Standby-Asm ~]$ kfod di=all
--------------------------------------------------------------------------------
Disk Size Path User Group
================================================================================
1: 20489 Mb ORCL:DATA1 <unknown> <unknown>
2: 20489 Mb ORCL:DATA2 <unknown> <unknown>
3: 20489 Mb ORCL:DATA3 <unknown> <unknown>
4: 20489 Mb ORCL:DATA5 <unknown> <unknown>
5: 20442 Mb ORCL:DATA6 <unknown> <unknown>
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME
================================================================================
+ASM /u01/app/grid/product/11.2.0/grid
--特定diskgroup情況
[grid@NCR-Standby-Asm ~]$ kfod status=true g=data
--------------------------------------------------------------------------------
Disk Size Path
================================================================================
0 20489 Mb ORCL:DATA1
1 20489 Mb ORCL:DATA2
2 20489 Mb ORCL:DATA3
[grid@NCR-Standby-Asm ~]$ kfod status=true g=reco
--------------------------------------------------------------------------------
Disk Size Path
================================================================================
0 20489 Mb ORCL:DATA5
1 20442 Mb ORCL:DATA6
2、KFED
KFED的全稱為Kernel File Metadata Editor。KFED的使用場景比較嚴峻,就是當ASM Diskgroup不能成功mount的時候,透過KFED來分析ASM磁碟頭資訊,來診斷問題。
從Oracle 11.1開始,KFED就已經正式成為安裝元件的一部分。一些舊的版本中,就需要手工進行build構建。與Kfod的區別是,KFED只有在完全安裝完之後,才能使用,在stage階段無法使用。
KFED幫助資訊如下:
[grid@NCR-Standby-Asm ~]$ kfed
as/mlib ASM Library [asmlib='lib']
aun/um AU number to examine or update [AUNUM=number]
aus/z Allocation Unit size in bytes [AUSZ=number]
blkn/um Block number to examine or update [BLKNUM=number]
blks/z Metadata block size in bytes [BLKSZ=number]
ch/ksum Update checksum before each write [CHKSUM=YES/NO]
cn/t Count of AUs to process [CNT=number]
de/v ASM device to examine or update [DEV=string]
dm/pall Don't suppress repeated lines when dumping corrupt blocks [DMPALL=YES/NO]
o/p KFED operation type [OP=READ/WRITE/MERGE/REPAIR/NEW/FORM/FIND/STRUCT]
p/rovnm Name for provisioning purposes [PROVNM=string]
s/eek AU number to seek to [SEEK=number]
te/xt File name for translated block text [TEXT=string]
ty/pe ASM metadata block type number [TYPE=number]
最常用的場景,是藉助kfed去讀ASM Disk的磁碟頭資訊。
[grid@NCR-Standby-Asm ~]$ kfed read /dev/sdb1
KFED-00303: unable to open file '/dev/sdb1'
[grid@NCR-Standby-Asm ~]$ env | grep ORACLE_HOME
ORACLE_HOME=/u01/app/grid/product/11.2.0/grid
[root@NCR-Standby-Asm ~]# cd /u01/app/grid/product/11.2.0/grid
[root@NCR-Standby-Asm grid]# cd bin/
[root@NCR-Standby-Asm bin]# ls -l | grep kfed
-rwxr-x--x 1 grid oinstall 2403791 May 25 15:28 kfed
-rwxr-x--x 1 grid oinstall 2403783 May 5 09:21 kfedO
[root@NCR-Standby-Asm bin]# ./kfed read /dev/sdb1
kfbh.endian: 1 ; 0x000: 0x01
kfbh.hard: 130 ; 0x001: 0x82
kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD
kfbh.datfmt: 1 ; 0x003: 0x01
kfbh.block.blk: 0 ; 0x004: blk=0
kfbh.block.obj: 2147483648 ; 0x008: disk=0
kfbh.check: 586307481 ; 0x00c: 0x22f25799
kfbh.fcn.base: 0 ; 0x010: 0x00000000
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
(篇幅原因,有省略……)
kfdhdb.acdb.aba.seq: 0 ; 0x1d4: 0x00000000
kfdhdb.acdb.aba.blk: 0 ; 0x1d8: 0x00000000
kfdhdb.acdb.ents: 0 ; 0x1dc: 0x0000
kfdhdb.acdb.ub2spare: 0 ; 0x1de: 0x0000
針對ASM Disk頭塊損壞的問題,Oracle推出了自動backup策略,備份塊就在510位置上。
[root@NCR-Standby-Asm bin]# ./kfed read /dev/sdb1 blkn=510
kfbh.endian: 1 ; 0x000: 0x01
kfbh.hard: 130 ; 0x001: 0x82
kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD
kfbh.datfmt: 1 ; 0x003: 0x01
kfbh.block.blk: 254 ; 0x004: blk=254
kfbh.block.obj: 2147483648 ; 0x008: disk=0
kfbh.check: 586307431 ; 0x00c: 0x22f25767
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: ORCLDISKDATA1 ; 0x000: length=13
自動命令repair,也就是將這個塊的資訊寫回到頭塊位置上。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28628435/viewspace-1984381/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASM管理命令列三工具:KFOD、KFED和AMDUASM命令列
- ASM管理命令列三工具:KFOD、KFED和AMDU(下)ASM命令列
- ASM tools used by Support : KFOD, KFED, AMDU (Doc ID 1485597.1)ASM
- 介紹Oracle自帶的一些ASM維護工具 (kfod/kfed/amdu)OracleASM
- ASM AMDU工具使用ASM
- Oracle ASM AMDU工具的使用OracleASM
- 利用kfod工具檢視asm磁碟組資訊ASM
- Oracle11g ASM強大的新工具AMDUOracleASM
- ASM命令列管理工具asmcmdASM命令列
- ASM磁碟頭資訊損壞和修復(kfed/dd)ASM
- 瞭解和使用kfed維護ASM後設資料ASM
- 使用KFOD模擬ASM DISK DISCOVERY過程ASM
- 優秀的命令列工具整理(三)命令列
- Oracle AMDU- ASM Metadata Dump UtilityOracleASM
- ASM磁碟組丟失member kfed修復ASM
- windows上更好的命令列工具軟體Windows命令列
- 假裝很忙的三個命令列工具命令列
- Oracle 12C ASM asmcmd amdu_extractOracleASM
- [ORACLE ASM] AMDU 恢復資料檔案OracleASM
- Nmcli 網路管理命令列工具基礎命令列
- ASM常用基礎管理命令[ASM基礎]ASM
- 10205以下需要使用kfed或者dd命令備份asm disk headerASMHeader
- 如何在mac電腦上配置命令列工具Mac命令列
- 使用AMDU DUMP ASM磁碟後設資料資訊ASM
- kfed 檢視磁碟頭資訊工具
- 【asmcmd】使用asmcmd工具管理ASMASM
- ASM管理的內部工具ASM
- ROS命令列工具ROS命令列
- 圖形工具和命令列的博弈-swingbench圖形,命令列配置命令列
- 新工具上線!sdkmgr命令列助力流水線構建命令列
- 用oracle amdu 抽取asm磁碟組的資料檔案OracleASM
- TortoiseSVN 命令 (命令列執行工具)命令列
- 學習ASM技術(六)-- ASMCMD命令列ASM命令列
- MySQL Utilities工具介紹和命令列總結MySql命令列
- scoop——強大的Windows命令列包管理工具OOPWindows命令列
- Click: 命令列工具神器命令列
- EFCore之命令列工具命令列
- 使用SVN命令列工具命令列