10205以下需要使用kfed或者dd命令備份asm disk header

warehouse發表於2012-12-10

asm disk 後設資料都儲存在disk header上,如果沒有備份,一旦disk header損壞,那麼asm disk 就不能mount了。所以備份asm disk header的資訊是必要的.

下面是一個兄弟的總結,記錄以下:

http://space.itpub.net/7199859/viewspace-700920

[@more@]

為了防止連線過期,直接把內容貼了過來:

作者:ITPUB個人空間1w!o8K{ Z"aA8!CO
paulyibinyi

一、目的:

我們經常由於誤操作,比如對disk做了pvid=yes的操作,導致磁碟組的磁碟頭資訊丟失,從而不能正常

mount,導致起不來,從而影響業務。以下實驗就是為了解決上面情況,而提供的解決方法。

二、實驗環境:

作業系統:AIX 6.1
7y3A kJ us jz^ t0資料庫版本: 10.2.0.4 + + asm
$gw nB [f8Y!}t0資料庫名:testITPUB個人空間!I L%_9N d tq@3l*dl
例項名:test1、test2ITPUB個人空間vT X/iw!LT
ip地址:(p520)192.168.3.225/(p650)192.168.3.223

ITPUB個人空間5[k"a*Qz;J{q

三、實驗步驟:

1、生成kfed工具和讀取磁碟頭資訊:ITPUB個人空間6IR7x$|(Qj1?
1)編譯kfed,生成kfed工具:
q/uL ~5^G0cd $ORACLE_HOME/rdbms/lib
G*E)D(r ~ P0cp ins_rdbms.mk ins_rdbms.mk.bakITPUB個人空間_5U1|*Bl@hM
[make -f ins_rdbms.mk ikfed]
1Gb-~1c^Br0Linking KFED utility (kfed)
#v"TO4i3z0rm -f /oracle/app/oracle/product/10.2.0/clusterdb/rdbms/lib/kfed
Pd4'BL|2A+P^/^0ld -b64 -o /oracle/app/oracle/product/10.2.0/clusterdb/rdbms/lib/kfed -

L/oracle/app/oracle/product/10.2.0/clusterdb/rdbms/lib/ -

L/oracle/app/oracle/product/10.2.0/clusterdb/lib/ -bnoerrmsg

/oracle/app/oracle/product/10.2.0/clusterdb/lib/s0main.o

/oracle/app/oracle/product/10.2.0/clusterdb/rdbms/lib/sskfeded.o

/oracle/app/oracle/product/10.2.0/clusterdb/rdbms/lib/skfedpt.o -bI:/usr/lib/aio.exp

/oracle/app/oracle/product/10.2.0/clusterdb/rdbms/lib/defopt.o -ldbtools10 `cat

/oracle/app/oracle/product/10.2.0/clusterdb/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -

lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat

/oracle/app/oracle/product/10.2.0/clusterdb/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -

lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lmm -

lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -

lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat

/oracle/app/oracle/product/10.2.0/clusterdb/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -

lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat

/oracle/app/oracle/product/10.2.0/clusterdb/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -

lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lpls10

-lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -

lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -

lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10

-lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lld -lm `cat

/oracle/app/oracle/product/10.2.0/clusterdb/lib/sysliblist` -lm `if [ "`/usr/bin/uname -

v`" = "4" ];
9h)^ q3n3C0then echo "-bI:/oracle/app/oracle/product/10.2.0/clusterdb/lib/pw-syscall.exp"; fi;`

-lsql10 /oracle/app/oracle/product/10.2.0/clusterdb/lib/nautab.o

/oracle/app/oracle/product/10.2.0/clusterdb/lib/naeet.o

/oracle/app/oracle/product/10.2.0/clusterdb/lib/naect.o

/oracle/app/oracle/product/10.2.0/clusterdb/lib/naedhs.oITPUB個人空間s`Id,cD"m/I
mv -f /oracle/app/oracle/product/10.2.0/clusterdb/bin/kfed

/oracle/app/oracle/product/10.2.0/clusterdb/bin/kfedOITPUB個人空間-fG sj2KJDE ze
mv /oracle/app/oracle/product/10.2.0/clusterdb/rdbms/lib/kfed

/oracle/app/oracle/product/10.2.0/clusterdb/bin/kfed
n v)AH9@?C0chmod 751 /oracle/app/oracle/product/10.2.0/clusterdb/bin/kfed

2)檢視磁碟組下的磁碟資訊:ITPUB個人空間LT rf*X1z
[oracle@p520:/]$sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Thu May 27 10:19:10 2010

Copyright (c) 1982, , Oracle. All rights reserved.

Connected to:
x-MPHk+H I[;l0Oracle Database Enterprise Edition Release 10.2.0.1.0 - 64bit ProductionITPUB個人空間"Bs&i|B)p)^h.h/r
With the Partitioning, Real Application Clusters, OLAP and Mining options

SQL> col name format a30ITPUB個人空間](Z!Pg,} jtj
SQL> col path format a30ITPUB個人空間}"_vw^f.L.y
SQL> select name,path from v$asm_disk;

NAME PATHITPUB個人空間3~7Cp4~-e
------------------------------ -----------------------ITPUB個人空間8^ }-b BX-K
DATA_0000 /dev/rhdisk5
]%T/sg%SjX8DJ0DATA_0001 /dev/rhdisk3

SQL> select name ,state from v$asm_diskgroup;

NAME STATE
'DB0kzS`7XsV0------------------------------ ----------------------
F3k)j6elF@x0DATA MOUNTED

SQL> /

NAME PATH HEADER_STATUS
h Vv4lzz;].l0------------------------------ ------------------------------ ---------------
)@Rt;JOg6DATA_0000 /dev/rhdisk5 MEMBER
?&n9[%Nt%R9?0DATA_0001 /dev/rhdisk3 MEMBER

3)用kfed工具讀取磁碟頭資訊:ITPUB個人空間'_ m0E"usy3{SQ
比如讀取磁碟組data下hdisk5磁碟頭資訊ITPUB個人空間D$Z;q?#n;C#f q&E;fEY
[oracle@p520:/]$kfed read /dev/rhdisk5
$v+} hi EN-a6Hm0kfbh.endian: 0 ; 0x000: 0x00
N/L3EA yc4^J0kfbh.hard: 130 ; 0x001: 0x82ITPUB個人空間t&~g,Wb6l1~
kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD
d{*v/}+WK J%`0kfbh.datfmt: 1 ; 0x003: 0x01
-^4Tx S!h$O0kfbh.block.blk: 0 ; 0x004: T=0 NUMB=0x0ITPUB個人空間Gb*] t1HRy6e
kfbh.block.obj: 2147483648 ; 0x008: TYPE=0x8 NUMB=0x0ITPUB個人空間`H$ebe w*O.p#r
kfbh.check: 257017006 ; 0x00c: 0x0f51c4aeITPUB個人空間Z!y6B0sv6^
kfbh.fcn.base: 578 ; 0x010: 0x00000242ITPUB個人空間-ZX(uU.KLz
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000ITPUB個人空間HP1Rd9c!_
kfbh.spare1: 0 ; 0x018: 0x00000000
A7GuH4PR^0kfbh.spare2: 0 ; 0x01c: 0x00000000ITPUB個人空間j'y;J6]9M}4n
kfdhdb.driver.provstr: ORCLDISK ; 0x000: length=8ITPUB個人空間}x@F$S+r
kfdhdb.driver.reserved[0]: 0 ; 0x008: 0x00000000ITPUB個人空間x-J-UK"A+T)u Aw$O ]G
kfdhdb.driver.reserved[1]: 0 ; 0x00c: 0x00000000
G5W_-TD&P^0kfdhdb.driver.reserved[2]: 0 ; 0x010: 0x00000000ITPUB個人空間|5}|dT"R j H
kfdhdb.driver.reserved[3]: 0 ; 0x014: 0x00000000
h:| _Crn0J/~3bTj0kfdhdb.driver.reserved[4]: 0 ; 0x018: 0x00000000
gK/fiT]0kfdhdb.driver.reserved[5]: 0 ; 0x01c: 0x00000000
k QS'j'] r0kfdhdb.compat: 168820736 ; 0x020: 0x0a100000
^-X-V0I"},A0kfdhdb.dsknum: 0 ; 0x024: 0x0000ITPUB個人空間+d zt JE };e2dIU T
kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNALITPUB個人空間 u A5ZeF5bLb4z
kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
4KS.j5^4tu;I l1q0kfdhdb.dskname: DATA_0000 ; 0x028: length=9ITPUB個人空間*jEE8HmV]/|*qV'K
kfdhdb.grpname: DATA ; 0x048: length=4ITPUB個人空間Ov}Lk"Dsl
kfdhdb.fgname: DATA_0000 ; 0x068: length=9
C"E5FE?1`%ng ?lZw0kfdhdb.capname: ; 0x088: length=0ITPUB個人空間AD){!m8NG
kfdhdb.crestmp.hi: 32937833 ; 0x0a8: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7daITPUB個人空間f U T&U p%c k
kfdhdb.crestmp.lo: 1704514560 ; 0x0ac: USEC=0x0 MSEC=0x235 SECS=0x19 MINS=0x19ITPUB個人空間8i5e-[:n K @
kfdhdb.mntstmp.hi: 32937834 ; 0x0b0: HOUR=0xa DAYS=0x1b MNTH=0x5 YEAR=0x7daITPUB個人空間0fo1p9ay4L
kfdhdb.mntstmp.lo: 679906304 ; 0x0b4: USEC=0x0 MSEC=0x1a3 SECS=0x8 MINS=0xaITPUB個人空間.x D"iW$|)`nUag
kfdhdb.secsize: 512 ; 0x0b8: 0x0200
6F&C*G~rs Tj0kfdhdb.blksize: 4096 ; 0x0ba: 0x1000ITPUB個人空間e yw@R't;i;R
kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000
9MmW6vAD#S0kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80ITPUB個人空間}V pC4P#B
kfdhdb.dsksize: 51200 ; 0x0c4: 0x0000c800ITPUB個人空間/R'@"S+@8AV
kfdhdb.pmcnt: 2 ; 0x0c8: 0x00000002
/L mSZ,q#O }0kfdhdb.fstlocn: 1 ; 0x0cc: 0x00000001ITPUB個人空間Is7f_0wv
kfdhdb.altlocn: 2 ; 0x0d0: 0x00000002
&s:~5~3[5WH;Q]oL0kfdhdb.f1b1locn: 2 ; 0x0d4: 0x00000002
JV:D4R#s5Z,}0kfdhdb.redomirrors[0]: 0 ; 0x0d8: 0x0000ITPUB個人空間(a(DVn#|F6[
kfdhdb.redomirrors[1]: 65535 ; 0x0da: 0xffff
1}/IA4~d0Ii[0kfdhdb.redomirrors[2]: 65535 ; 0x0dc: 0xffffITPUB個人空間]R!m8uJ4IF!B$g9i
kfdhdb.redomirrors[3]: 65535 ; 0x0de: 0xffff
@-s}F|tVI1|+q0kfdhdb.dbcompat: 168820736 ; 0x0e0: 0x0a100000ITPUB個人空間$y ~f7C|D
kfdhdb.grpstmp.hi: 32937833 ; 0x0e4: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
&t"x[*ys.rV4t0kfdhdb.grpstmp.lo: 1704339456 ; 0x0e8: USEC=0x0 MSEC=0x18a SECS=0x19 MINS=0x19ITPUB個人空間3cT;n sKG
kfdhdb.ub4spare[0]: 0 ; 0x0ec: 0x00000000
tM(QI.H a0kfdhdb.ub4spare[1]: 0 ; 0x0f0: 0x00000000ITPUB個人空間R:fVQ,t7tp)E
kfdhdb.ub4spare[2]: 0 ; 0x0f4: 0x00000000
,k Ybu[(r0kfdhdb.ub4spare[3]: 0 ; 0x0f8: 0x00000000
GNG+aX0kfdhdb.ub4spare[4]: 0 ; 0x0fc: 0x00000000
.g9EM4yY0kfdhdb.ub4spare[5]: 0 ; 0x100: 0x00000000ITPUB個人空間(yt&M Wi:tx fPcM
kfdhdb.ub4spare[6]: 0 ; 0x104: 0x00000000ITPUB個人空間S y#p%?PKY)B!s4?e$j
kfdhdb.ub4spare[7]: 0 ; 0x108: 0x00000000
/T1I4[U`ze&s/C0kfdhdb.ub4spare[8]: 0 ; 0x10c: 0x00000000
Fq#a6P8~.j3R$_4n+h0kfdhdb.ub4spare[9]: 0 ; 0x110: 0x00000000ITPUB個人空間d#v V-a W3q
kfdhdb.ub4spare[10]: 0 ; 0x114: 0x00000000ITPUB個人空間@S1js/h#q$hd:Lx3VD
kfdhdb.ub4spare[11]: 0 ; 0x118: 0x00000000ITPUB個人空間#P X:c_]a"T1U
kfdhdb.ub4spare[12]: 0 ; 0x11c: 0x00000000ITPUB個人空間2Z~G"IF
kfdhdb.ub4spare[13]: 0 ; 0x120: 0x00000000ITPUB個人空間*C6Qo9G D|Hx-d|7R
kfdhdb.ub4spare[14]: 0 ; 0x124: 0x00000000
8P:M'| l9f]L-E0kfdhdb.ub4spare[15]: 0 ; 0x128: 0x00000000ITPUB個人空間/b| `h5M
kfdhdb.ub4spare[16]: 0 ; 0x12c: 0x00000000
~t-Ain4Q#fU0kfdhdb.ub4spare[17]: 0 ; 0x130: 0x00000000ITPUB個人空間nS3UIF
kfdhdb.ub4spare[18]: 0 ; 0x134: 0x00000000
;U HBv$dDo0kfdhdb.ub4spare[19]: 0 ; 0x138: 0x00000000ITPUB個人空間V c8jV0d1U|w
kfdhdb.ub4spare[20]: 0 ; 0x13c: 0x00000000ITPUB個人空間/S-_v6[1}fUC
kfdhdb.ub4spare[21]: 0 ; 0x140: 0x00000000
O _`_/j K0kfdhdb.ub4spare[22]: 0 ; 0x144: 0x00000000
+DX ?9G1w?4C0kfdhdb.ub4spare[23]: 0 ; 0x148: 0x00000000ITPUB個人空間!r _%{4bR$hL
kfdhdb.ub4spare[24]: 0 ; 0x14c: 0x00000000
CJ.@l,i8y!N L5q(@0kfdhdb.ub4spare[25]: 0 ; 0x150: 0x00000000
O4AJ"h+a'_1F#X0kfdhdb.ub4spare[26]: 0 ; 0x154: 0x00000000ITPUB個人空間!U!fsO{-`89a,t
kfdhdb.ub4spare[27]: 0 ; 0x158: 0x00000000
,XO)~6mo;Wa+t0kfdhdb.ub4spare[28]: 0 ; 0x15c: 0x00000000ITPUB個人空間Hov:iC
kfdhdb.ub4spare[29]: 0 ; 0x160: 0x00000000
2Pf#BE,"G0kfdhdb.ub4spare[30]: 0 ; 0x164: 0x00000000ITPUB個人空間5w ?-uUy
kfdhdb.ub4spare[31]: 0 ; 0x168: 0x00000000ITPUB個人空間K/L o%g"li,g
kfdhdb.ub4spare[32]: 0 ; 0x16c: 0x00000000
wZ,W'oeD0kfdhdb.ub4spare[33]: 0 ; 0x170: 0x00000000
xI:H9B*v~)S&t0kfdhdb.ub4spare[34]: 0 ; 0x174: 0x00000000
5g;CJU+^8]0kfdhdb.ub4spare[35]: 0 ; 0x178: 0x00000000
1BmAC0kfdhdb.ub4spare[36]: 0 ; 0x17c: 0x00000000ITPUB個人空間 h7yRV0LbH7cH
kfdhdb.ub4spare[37]: 0 ; 0x180: 0x00000000
4r(EU8G {[b&LFc0kfdhdb.ub4spare[38]: 0 ; 0x184: 0x00000000ITPUB個人空間6]A 1f$@*QO(H,Ts
kfdhdb.ub4spare[39]: 0 ; 0x188: 0x00000000ITPUB個人空間OT5b bv*Sr
kfdhdb.ub4spare[40]: 0 ; 0x18c: 0x00000000
)D^.I+~ ]5WQ0kfdhdb.ub4spare[41]: 0 ; 0x190: 0x00000000ITPUB個人空間J+`?+o"S|t n$B4l
kfdhdb.ub4spare[42]: 0 ; 0x194: 0x00000000ITPUB個人空間 X3q-L;|1y B
kfdhdb.ub4spare[43]: 0 ; 0x198: 0x00000000ITPUB個人空間+[ u j6u#a7@
kfdhdb.ub4spare[44]: 0 ; 0x19c: 0x00000000ITPUB個人空間:H y-zCE2T@_
kfdhdb.ub4spare[45]: 0 ; 0x1a0: 0x00000000ITPUB個人空間;n!p~,h @tn z,~ T
kfdhdb.ub4spare[46]: 0 ; 0x1a4: 0x00000000ITPUB個人空間0{,xhMr?L'
kfdhdb.ub4spare[47]: 0 ; 0x1a8: 0x00000000ITPUB個人空間+L$z&v5[1Y0p2S)J
kfdhdb.ub4spare[48]: 0 ; 0x1ac: 0x00000000
%c'[Qs%S|AF%g0kfdhdb.ub4spare[49]: 0 ; 0x1b0: 0x00000000ITPUB個人空間JCrnY-]
kfdhdb.ub4spare[50]: 0 ; 0x1b4: 0x00000000
^ J.{0V[ D?0kfdhdb.ub4spare[51]: 0 ; 0x1b8: 0x00000000
8KC&A ~C2h0kfdhdb.ub4spare[52]: 0 ; 0x1bc: 0x00000000
z(Ti;H.b3g#i1Rh!u0kfdhdb.ub4spare[53]: 0 ; 0x1c0: 0x00000000
"s&?%Qs |Iw/j U0kfdhdb.ub4spare[54]: 0 ; 0x1c4: 0x00000000
+u8cp2^ u,Y0kfdhdb.ub4spare[55]: 0 ; 0x1c8: 0x00000000ITPUB個人空間.V(M q R^ d
kfdhdb.ub4spare[56]: 0 ; 0x1cc: 0x00000000
4V%H1scDs.z(Z$d4W"e0kfdhdb.ub4spare[57]: 0 ; 0x1d0: 0x00000000ITPUB個人空間6~L"n&{;p:G h6_
kfdhdb.acdb.aba.seq: 0 ; 0x1d4: 0x00000000ITPUB個人空間 [8B7R Vu:m]Lm7ju^l
kfdhdb.acdb.aba.blk: 0 ; 0x1d8: 0x00000000ITPUB個人空間#@+v/e Zws#y
kfdhdb.acdb.ents: 0 ; 0x1dc: 0x0000ITPUB個人空間I0H'b@aWp8m"bnw
kfdhdb.acdb.ub2spare: 0 ; 0x1de: 0x0000
^:A%s(B9R_b0從上面讀出的內容,我們可以獲取以下資訊:ITPUB個人空間 ~ A:K;L-p ]?Ds
dsknum:磁碟號ITPUB個人空間Ay)Z,u3uP
grptyp:磁碟所屬型別EXTERNAL REDUNDANCY
4H9U%e qL,z3X/Q0磁碟所屬型別主要有:
(C+]1E`V-a0NORMAL REDUNDANCY - Two-way mirroring, requiring two failure groups.ITPUB個人空間Pqv-S/yKM"y:GN
HIGH REDUNDANCY - Three-way mirroring, requiring three failure groups.ITPUB個人空間!~R-H8{!U|Re:K?
EXTERNAL REDUNDANCY - No mirroring for disks that are already protected using hardware

mirroring or RAID.ITPUB個人空間Q!q0Y3_4?
ddrsts:磁碟頭狀態ITPUB個人空間(s$E_qr!c V
dskname:在asm中磁碟名
l+B9^9C4h@5Sisj0grpname:磁碟組名ITPUB個人空間|Cr8ag9c;g#E].tG
fgname:failure group name
^ wr:L4z?"t-G0crestmp.hi:asm磁碟組建立時間ITPUB個人空間,FZ!D'jPq"J5
mntstmp.hi:asm磁碟組mount時間ITPUB個人空間6|r H@P@C
blksize:磁碟頭塊大小 4096
+G Zb xQ+Ju mu)M{0ausize:條帶化大小 預設1M
~m"L#AkQZ0dsksize:磁碟大小ITPUB個人空間p,n-T1?-G0N I/}
f1b1locn:File Directory blk 1 AU numITPUB個人空間 dw4X)Li8}EU}
Beginging for file directory


wX&G#N'R:Z&P02、磁碟頭有使用dd備份下的:

1)使用dd備份:
s$H,{6w-fd6t0因為磁碟頭資訊只佔用最前面4k內容,所以我們可以用dd只前面4k內容:
ro7s.ts,?mA&s-E0[oracle@p520:/]$dd if=/dev/rhdisk5 f=/oracle/hdisk5header bs=4096 count=1ITPUB個人空間x-[%zJ:H y&t.`b$1o
1+0 records in.
t{ ~R01+0 records out.
0Ow7OKl h&Ti3d0[oracle@p520:/]$dd if=/dev/rhdisk3 f=/oracle/hdisk3header bs=4096 count=1ITPUB個人空間@^g5i0bi m~
1+0 records in.
It1u:M;FY01+0 records out.

2)使用dd恢復:ITPUB個人空間(h:C"F]'U)[ d q
dd破壞hdisk5 磁碟頭資訊ITPUB個人空間7D@+w$hCH
[oracle@p520:/oracle]$dd if=/dev/zero f=/dev/rhdisk5 bs=4096 count=1
JE@'S^ M }W01+0 records in.
!M-|'Ft$y01+0 records out.ITPUB個人空間.w agz ^0J Q
損壞磁碟頭資訊如下:ITPUB個人空間{5CI8?oIadKj,{'n
[oracle@p520:/oracle]$kfed read /dev/rhdisk5
cA2S/K$r+oh0kfbh.endian: 0 ; 0x000: 0x00
,]s*Y+x9`5S^5UR0kfbh.hard: 0 ; 0x001: 0x00
"f+GA2?/k0f0kfbh.type: 0 ; 0x002: KFBTYP_INVALID
s;t(k1F ~S1{0kfbh.datfmt: 0 ; 0x003: 0x00
S$C.N`He{0C h n0kfbh.block.blk: 0 ; 0x004: T=0 NUMB=0x0
G9JYG:G9gl*`0kfbh.block.obj: 0 ; 0x008: TYPE=0x0 NUMB=0x0
8X)x[ `+H0k5uc,X0kfbh.check: 0 ; 0x00c: 0x00000000ITPUB個人空間 C$@ R)tQ k-]xMT;}
kfbh.fcn.base: 0 ; 0x010: 0x00000000ITPUB個人空間+^ V-Av^b
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
c _ Hu(r)Q"}0kfbh.spare1: 0 ; 0x018: 0x00000000
LKWL}Q;?s6O0kfbh.spare2: 0 ; 0x01c: 0x00000000ITPUB個人空間'Tc.?sz
可以看到,磁碟頭相關資訊丟失。

asm例項啟動時報以下錯誤資訊:ITPUB個人空間[k5T? {kp
SQL> startup
_A,J4k$DtE0ASM instance started
Vyf;]XF0Total System Global Area 130023424 bytesITPUB個人空間*fH$tf8Z9GDd4y$|
Fixed Size 2019136 bytesITPUB個人空間{"Mc:G faZi4c
Variable Size 102838464 bytesITPUB個人空間,V rK j"L
ASM Cache 25165824 bytes
w;mQ)@7z,w0ORA-15032: not all alterations performed
+Qb p7Eld {"Vo0ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DATA"
py$vxN/[y0SQL> select name,state from v$asm_diskgroup;

NAME STATEITPUB個人空間cB#I@JqL
----------- -------------
&AzQ uO'dVe5U0DATA DISMOUNTED
]wNq)l J8Zq"R0SQL> alter diskgroup data mount;ITPUB個人空間rw;K"v zCZ
alter diskgroup data mount
X5z9HE@0*ITPUB個人空間t#d;i+F%w Ju
ERROR at line 1:ITPUB個人空間6k1WBU;v2
ORA-15032: not all alterations performed
%W c$rBojoWVLf0ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DATA"

Asm例項日誌記錄以下內容:
jN G/Z.E+@0Thu May 27 11:00:03 2010ITPUB個人空間vN h(m s&JgO}
ERROR: no PST quorum in group 1: required 1, found 0ITPUB個人空間/fFZWxMD M
Thu May 27 11:00:03 2010
|kP2P t6J0NOTE: cache dismounting group 1/0x1E9B7FD5 (DATA)ITPUB個人空間vS g5WM5aX
NOTE: dbwr not being msg'd to dismountITPUB個人空間 ?3pNr|H9LM
ERROR: diskgroup DATA was not mounted

使用dd進行恢復:
*mfa#v]M0[oracle@p520:/oracle]$dd if=/oracle/hdisk5header f=/dev/rhdisk5 bs=4096 count=1ITPUB個人空間qIu2D(zV/rM
1+0 records in.ITPUB個人空間 Y;gAW8O6H
1+0 records out.

這時可以正常讀取磁碟頭資訊:ITPUB個人空間HV+~,Lj U+Z2S
[oracle@p520:/oracle]$kfed read /dev/rhdisk5
$Bg R}Zj#G tx5m j0kfbh.endian: 0 ; 0x000: 0x00
4L,wpN-u1eUY/_0kfbh.hard: 130 ; 0x001: 0x82ITPUB個人空間&sA:g B CzoP/^
kfbh.type: 1 ; 0x002: KFBTYP_DISKHEADITPUB個人空間6ryLl#cn1a
kfbh.datfmt: 1 ; 0x003: 0x01ITPUB個人空間#KoT9_8lD
kfbh.block.blk: 0 ; 0x004: T=0 NUMB=0x0ITPUB個人空間9|yIl/iKqII
kfbh.block.obj: 2147483648 ; 0x008: TYPE=0x8 NUMB=0x0ITPUB個人空間 o2h3X6t#Dz]WE
kfbh.check: 257017006 ; 0x00c: 0x0f51c4aeITPUB個人空間[.L_I(zp*X
kfbh.fcn.base: 578 ; 0x010: 0x00000242
#pS lo9Hi,N0kfbh.fcn.wrap: 0 ; 0x014: 0x00000000ITPUB個人空間.f x Mzw
kfbh.spare1: 0 ; 0x018: 0x00000000ITPUB個人空間Z*BE+H@-O*o(H"G;Y
kfbh.spare2: 0 ; 0x01c: 0x00000000
/z!L1`x RK2xa0kfdhdb.driver.provstr: ORCLDISK ; 0x000: length=8ITPUB個人空間:wJSp| V/SZ
kfdhdb.driver.reserved[0]: 0 ; 0x008: 0x00000000
:r|uCt[0kfdhdb.driver.reserved[1]: 0 ; 0x00c: 0x00000000ITPUB個人空間a9B$|nJ R!Src
kfdhdb.driver.reserved[2]: 0 ; 0x010: 0x00000000ITPUB個人空間+[gC4H:H;Y(? aWz
kfdhdb.driver.reserved[3]: 0 ; 0x014: 0x00000000
${9[8}%Qb0kfdhdb.driver.reserved[4]: 0 ; 0x018: 0x00000000ITPUB個人空間 d$QJ|w0ck
kfdhdb.driver.reserved[5]: 0 ; 0x01c: 0x00000000ITPUB個人空間1u2_9ye4v D $u
kfdhdb.compat: 168820736 ; 0x020: 0x0a100000
i-C"N~6D;u_MI"{0kfdhdb.dsknum: 0 ; 0x024: 0x0000ITPUB個人空間e4kp+k G
kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNALITPUB個人空間X$st[6Mu X
kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
qF#a__5Fs DDJr0kfdhdb.dskname: DATA_0000 ; 0x028: length=9
7Wb!QX.lL'd,hz0kfdhdb.grpname: DATA ; 0x048: length=4ITPUB個人空間-o}Z VE;tK)[
kfdhdb.fgname: DATA_0000 ; 0x068: length=9ITPUB個人空間@&O$|0Zx-mh8yvVV
kfdhdb.capname: ; 0x088: length=0
s%b 7yv0kfdhdb.crestmp.hi: 32937833 ; 0x0a8: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7daITPUB個人空間L8HH7F/apG M
kfdhdb.crestmp.lo: 1704514560 ; 0x0ac: USEC=0x0 MSEC=0x235 SECS=0x19 MINS=0x19
gP W.Y~0kfdhdb.mntstmp.hi: 32937834 ; 0x0b0: HOUR=0xa DAYS=0x1b MNTH=0x5 YEAR=0x7da
sOzsW0kfdhdb.mntstmp.lo: 679906304 ; 0x0b4: USEC=0x0 MSEC=0x1a3 SECS=0x8 MINS=0xa
+wh#c$xH"l0kfdhdb.secsize: 512 ; 0x0b8: 0x0200
4~7mN(Y6D0kfdhdb.blksize: 4096 ; 0x0ba: 0x1000ITPUB個人空間:[*{HmEs/Ao;N G%a
kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000ITPUB個人空間 NS1PSY%x1w3E
kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80
A)u L r3N}%J0kfdhdb.dsksize: 51200 ; 0x0c4: 0x0000c800
4EP&db{} J0kfdhdb.pmcnt: 2 ; 0x0c8: 0x00000002ITPUB個人空間4U8D kI2J:ku`+x
kfdhdb.fstlocn: 1 ; 0x0cc: 0x00000001
Q-m$~+zDk0kfdhdb.altlocn: 2 ; 0x0d0: 0x00000002ITPUB個人空間k*dh G(Ju)m6Y
kfdhdb.f1b1locn: 2 ; 0x0d4: 0x00000002ITPUB個人空間#l`&g'oH }(|)Q5C
kfdhdb.redomirrors[0]: 0 ; 0x0d8: 0x0000
E7PiTpl!e,I0S0kfdhdb.redomirrors[1]: 65535 ; 0x0da: 0xffffITPUB個人空間$L-}B_!`C(T C
kfdhdb.redomirrors[2]: 65535 ; 0x0dc: 0xffffITPUB個人空間u.D1` O/B0Q
kfdhdb.redomirrors[3]: 65535 ; 0x0de: 0xffff
m&ST2z il4Xn0kfdhdb.dbcompat: 168820736 ; 0x0e0: 0x0a100000ITPUB個人空間_&F;cu:z2RqK
kfdhdb.grpstmp.hi: 32937833 ; 0x0e4: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
We}],c#z8R0kfdhdb.grpstmp.lo: 1704339456 ; 0x0e8: USEC=0x0 MSEC=0x18a SECS=0x19 MINS=0x19
Y&j"J!pLb0kfdhdb.ub4spare[0]: 0 ; 0x0ec: 0x00000000ITPUB個人空間'{I Z+ia
kfdhdb.ub4spare[1]: 0 ; 0x0f0: 0x00000000
x}+H"J F |0kfdhdb.ub4spare[2]: 0 ; 0x0f4: 0x00000000ITPUB個人空間Z;Ng.U9P6Yh'v
kfdhdb.ub4spare[3]: 0 ; 0x0f8: 0x00000000
)?UoE a0kfdhdb.ub4spare[4]: 0 ; 0x0fc: 0x00000000
p s{AVcP|;Hl"i0kfdhdb.ub4spare[5]: 0 ; 0x100: 0x00000000ITPUB個人空間;@[] iCF-y!H
kfdhdb.ub4spare[6]: 0 ; 0x104: 0x00000000
ix`:IZWtC0kfdhdb.ub4spare[7]: 0 ; 0x108: 0x00000000
%w5uF.??!n2Fo0kfdhdb.ub4spare[8]: 0 ; 0x10c: 0x00000000ITPUB個人空間L:lO5wE&l(Z@7f
kfdhdb.ub4spare[9]: 0 ; 0x110: 0x00000000
G9lg5vd!X;gYxoZ0kfdhdb.ub4spare[10]: 0 ; 0x114: 0x00000000ITPUB個人空間PJCa!iRN0W w5`n
kfdhdb.ub4spare[11]: 0 ; 0x118: 0x00000000ITPUB個人空間iF@*LNO wp)Dl
kfdhdb.ub4spare[12]: 0 ; 0x11c: 0x00000000
(?]6s:a!_`{)nD(F0kfdhdb.ub4spare[13]: 0 ; 0x120: 0x00000000ITPUB個人空間&H(dC oQu2m%qS
kfdhdb.ub4spare[14]: 0 ; 0x124: 0x00000000
0R.B;XPj7z)t0kfdhdb.ub4spare[15]: 0 ; 0x128: 0x00000000ITPUB個人空間Q*sDcm2U|+t%S
kfdhdb.ub4spare[16]: 0 ; 0x12c: 0x00000000ITPUB個人空間'wbAy0JH Bn&o;X{
kfdhdb.ub4spare[17]: 0 ; 0x130: 0x00000000
`nd+P~ Y|i0kfdhdb.ub4spare[18]: 0 ; 0x134: 0x00000000
:{9c Q0E:K A"J&?0kfdhdb.ub4spare[19]: 0 ; 0x138: 0x00000000
Y8Ug ZTc0kfdhdb.ub4spare[20]: 0 ; 0x13c: 0x00000000ITPUB個人空間7U%m ED8UB
kfdhdb.ub4spare[21]: 0 ; 0x140: 0x00000000ITPUB個人空間"qV3x,t'A
kfdhdb.ub4spare[22]: 0 ; 0x144: 0x00000000
1vQ:L7q%Smbj0kfdhdb.ub4spare[23]: 0 ; 0x148: 0x00000000
wr[2A_C2|8E0kfdhdb.ub4spare[24]: 0 ; 0x14c: 0x00000000ITPUB個人空間jUB5|Z*Y[
kfdhdb.ub4spare[25]: 0 ; 0x150: 0x00000000ITPUB個人空間 ?!M4t%zn5wm
kfdhdb.ub4spare[26]: 0 ; 0x154: 0x00000000
H%G^7GPJ A R"^ l0kfdhdb.ub4spare[27]: 0 ; 0x158: 0x00000000
vm%I2P.X$@#s2]!C5E0kfdhdb.ub4spare[28]: 0 ; 0x15c: 0x00000000
M;z"m%HOl0kfdhdb.ub4spare[29]: 0 ; 0x160: 0x00000000
;Ul,A#wMcQy:S0kfdhdb.ub4spare[30]: 0 ; 0x164: 0x00000000
;|6pKB7T/Xl(L#]0kfdhdb.ub4spare[31]: 0 ; 0x168: 0x00000000
/a| n,qN7j:UVw`0kfdhdb.ub4spare[32]: 0 ; 0x16c: 0x00000000ITPUB個人空間 j2oL9S:O/P e2V
kfdhdb.ub4spare[33]: 0 ; 0x170: 0x00000000ITPUB個人空間n0cl0m T6N Gjx
kfdhdb.ub4spare[34]: 0 ; 0x174: 0x00000000ITPUB個人空間;r6`0B.k!w'R6J
kfdhdb.ub4spare[35]: 0 ; 0x178: 0x00000000ITPUB個人空間%@Hs4t7s]I
kfdhdb.ub4spare[36]: 0 ; 0x17c: 0x00000000ITPUB個人空間H"Wd$Z pa
kfdhdb.ub4spare[37]: 0 ; 0x180: 0x00000000
6E1a/|8a)FO0kfdhdb.ub4spare[38]: 0 ; 0x184: 0x00000000ITPUB個人空間$n)?^}
kfdhdb.ub4spare[39]: 0 ; 0x188: 0x00000000
J1n)S8^ HK"du?&`~0kfdhdb.ub4spare[40]: 0 ; 0x18c: 0x00000000
f8Y9G jr#k8|0kfdhdb.ub4spare[41]: 0 ; 0x190: 0x00000000
%K6}l*`"A3T"p&m0kfdhdb.ub4spare[42]: 0 ; 0x194: 0x00000000
:q/I.H![.x7a+Qz0kfdhdb.ub4spare[43]: 0 ; 0x198: 0x00000000ITPUB個人空間*Z2EP{O:h
kfdhdb.ub4spare[44]: 0 ; 0x19c: 0x00000000
5J _8iIN#r0kfdhdb.ub4spare[45]: 0 ; 0x1a0: 0x00000000
EM C8f/z0{7RSN(a0kfdhdb.ub4spare[46]: 0 ; 0x1a4: 0x00000000
-FF;CD"o+c0kfdhdb.ub4spare[47]: 0 ; 0x1a8: 0x00000000
s&|~Jkk_'hg Q0kfdhdb.ub4spare[48]: 0 ; 0x1ac: 0x00000000ITPUB個人空間Y7G;` o jW
kfdhdb.ub4spare[49]: 0 ; 0x1b0: 0x00000000
.aY1n%1k#e,_8L.x0kfdhdb.ub4spare[50]: 0 ; 0x1b4: 0x00000000
4c&tIfsmy(X0kfdhdb.ub4spare[51]: 0 ; 0x1b8: 0x00000000ITPUB個人空間z8L-^?7N,k*L&ei
kfdhdb.ub4spare[52]: 0 ; 0x1bc: 0x00000000ITPUB個人空間/G)DPXM @ D
kfdhdb.ub4spare[53]: 0 ; 0x1c0: 0x00000000
6r,r t B+iY1i0b0kfdhdb.ub4spare[54]: 0 ; 0x1c4: 0x00000000
X^Ru3BXj0kfdhdb.ub4spare[55]: 0 ; 0x1c8: 0x00000000
!m~O m"c1Y} K5l0kfdhdb.ub4spare[56]: 0 ; 0x1cc: 0x00000000ITPUB個人空間+h"h)aa{I9lo*d
kfdhdb.ub4spare[57]: 0 ; 0x1d0: 0x00000000
VYV"Iyc0kfdhdb.acdb.aba.seq: 0 ; 0x1d4: 0x00000000ITPUB個人空間$a+@ XmX~QYA
kfdhdb.acdb.aba.blk: 0 ; 0x1d8: 0x00000000ITPUB個人空間l@%fB-Oq4D
kfdhdb.acdb.ents: 0 ; 0x1dc: 0x0000ITPUB個人空間:O j6ut i!IG^x
kfdhdb.acdb.ub2spare: 0 ; 0x1de: 0x0000

磁碟組可以正常mount:
*~L'~5h Or2K,R0SQL> alter diskgroup data mount;
2g+b9SOa6T0Diskgroup altered.ITPUB個人空間l*`h!^0}GwP1^5D

:Z Q-p hai4e3n Y0SQL> select name,state from v$asm_diskgroup;

NAME STATE
9vuR#NJ;yMp,B0------ ----------ITPUB個人空間pW|I:Uj+`
DATA MOUNTED


T:A_(p/J{03、磁碟頭有使用kfed備份下的恢復:

1)使用kfed備份磁碟頭資訊:
!}+{Y[WU?*l t0[oracle@p520:/oracle]$kfed read /dev/rhdisk5 > /oracle/hdisk5backup.txt
@7LfQ j4HV7|0[oracle@p520:/oracle]$kfed read /dev/rhdisk3 > /oracle/hdisk3backup.txt
#I*k%b#{4X#Ui?D?0-rw-r--r-- 1 oracle oinstall 6607 May 27 11:11 hdisk5backup.txt
US K{[)rC5P |o)ir"d0-rw-r--r-- 1 oracle oinstall 6607 May 27 11:11 hdisk3backup.txt

2)使用kfed恢復:
zmX }[F4G0使用dd破壞file directory即hdisk5磁碟頭資訊
o)xg"Dr3u[ h0[oracle@p520:/oracle]$dd if=/dev/zero f=/dev/rhdisk5 bs=4096 count=1ITPUB個人空間o+] Bs {%u9U
1+0 records in.
$T/kF{G%m"h;H01+0 records out.ITPUB個人空間uOLr5y,@ Ap
SQL> alter diskgroup data mount;ITPUB個人空間1p"i Z B!MK
alter diskgroup data mountITPUB個人空間D ^u!t R,ruc
*
s+k$R nV0ERROR at line 1:ITPUB個人空間 _1P_Q_e'o8h`)S
ORA-15032: not all alterations performed
pl;R1eVD{0ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DATA";

因為hdisk5是file directory,所以報上面錯誤資訊,如果是hdisk3磁碟頭損壞,則報:
5e `cUu x0ERROR at line 1:ITPUB個人空間 y-|8Y"@W*H
ORA-15032: not all alterations performedITPUB個人空間/qG$rog^
ORA-15040: diskgroup is incomplete
o9t:IgC CTf0ORA-15042: ASM disk "1" is missing

恢復用kfed merge命令ITPUB個人空間ztg.@s J$H$hxy
[oracle@p520:/oracle]$kfed merge /dev/rhdisk5 text=/oracle/hdisk5backup.txtITPUB個人空間%v.@ w2bNX j q;p

N`"g0n Jy.A%Q ^0SQL> alter diskgroup data mount;ITPUB個人空間K;?Buv$I1DY
Diskgroup alter

使用dd破壞hdisk3磁碟頭資訊ITPUB個人空間"y&bg7{l%JC
[oracle@p520:/oracle]$dd if=/dev/zero f=/dev/rhdisk3 bs=4096 count=1
1@8z'~L5J_ L)FY01+0 records in.
&g}7p'i.rhZh01+0 records out.
i`2f9@yEL-x)A Ur0SQL> alter diskgroup data mount;
D{#P?&Ss}4{0alter diskgroup data mount
SWE5I3T,`;z0*ITPUB個人空間4mR B5f+[
SQL> alter diskgroup data mount;ITPUB個人空間)XD'IKoQ4wbzU;Z-m(k
alter diskgroup data mountITPUB個人空間|0sJ T@ U?
*ITPUB個人空間k s[d#L*Y
ERROR at line 1:
?)]q-k1HaH0ORA-15032: not all alterations performedITPUB個人空間"pl8y.O"tN
ORA-15040: diskgroup is incomplete
4Y3R0np KD0ORA-15042: ASM disk "1" is missing

恢復用kfed merge命令ITPUB個人空間~:O]B t(|8ty
[oracle@p520:/oracle]$kfed merge /dev/rhdisk3 text=/oracle/hdisk3backup.txt
$gbP)WW)r8z.dfj0ITPUB個人空間rN.P"~_N)G7J l
SQL> alter diskgroup data mount;
$~ a]1H0_[y:b[o0Diskgroup altere


y A-Ha"(S&qm04、磁碟頭沒有進行備份,但不是file directory磁碟頭的資訊丟失的恢復:

1)首先確定磁碟是否為file directory盤;如果我們確定hdisk5 是file directory盤。

2)破壞非file directory盤hdisk3頭資訊:ITPUB個人空間_ltQ-~+L
破壞hdisk3磁碟頭:
d7]$J5](Z.jf2~0[oracle@p520:/oracle]$dd if=/dev/zero f=/dev/rhdisk3 bs=4096 count=1ITPUB個人空間N,d gd K.^rZ$^
1+0 records in.
|)tor,|Y/B01+0 records out.
eFM'tI LA0[oracle@p520:/oracle]$kfed read /dev/rhdisk3ITPUB個人空間;W+?zO!O^Zh
kfbh.endian: 0 ; 0x000: 0x00ITPUB個人空間8_[*_-ZX%j?o]
kfbh.hard: 0 ; 0x001: 0x00ITPUB個人空間Q o"W6QH-ol
kfbh.type: 0 ; 0x002: KFBTYP_INVALIDITPUB個人空間E/sJcF
kfbh.datfmt: 0 ; 0x003: 0x00ITPUB個人空間xzA0A1mN
kfbh.block.blk: 0 ; 0x004: T=0 NUMB=0x0ITPUB個人空間7a~o'`#DAI/JS:G
kfbh.block.obj: 0 ; 0x008: TYPE=0x0 NUMB=0x0
8h[ ~&wu1P'e$O0kfbh.check: 0 ; 0x00c: 0x00000000
:?y+W$kL ti d0kfbh.fcn.base: 0 ; 0x010: 0x00000000
,c)`&e%C/icZ0kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
:q}v/t `S?*K0kfbh.spare1: 0 ; 0x018: 0x00000000
0q:[rd_ r0kfbh.spare2: 0 ; 0x01c: 0x00000000

檢查diskgroup
1Bh$D4g;e%[]0SQL> alter diskgroup data mount;ITPUB個人空間XY*w'Fhvp$az
alter diskgroup data mount
[Z)R"eA$T3A0*ITPUB個人空間m)v+Y8r+ro*d
ERROR at line 1:ITPUB個人空間$R4I(tk3f5]S]1n
ORA-15032: not all alterations performed
I3E!j'c'[0ORA-15040: diskgroup is incompleteITPUB個人空間-k ;]!v+E{
ORA-15042: ASM disk "1" is missing

3)根據file directory hdisk5查詢disk directory資訊;可以用select name,path from v$asm_disk查

出。

4)根據disk directory hdisk3找出磁碟資訊;從裡面可以得到hdisk3磁碟資訊ITPUB個人空間;z stY {
kfddde[1].dsknum: 1 ; 0x1f4: 0x0001ITPUB個人空間I9xs@,aL `h
kfddde[1].dskname: DATA_0001 ; 0x1f8: length=9
8Fp:w{a#~ oM9C0kfddde[1].fgname: DATA_0001 ; 0x218: length=9
$BUA,Z(?5k.R2Kfk0kfddde[1].crestmp.hi: 32937837 ; 0x238: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
*v/L])J.L0kfddde[1].crestmp.lo: 1899649024 ; 0x23c: USEC=0x0 MSEC=0x296 SECS=0x13 MINS=0x1cITPUB個人空間H i;iFz,RV i
kfddde[1].size: 1024 ; 0x24c: 0x00000400

5)根據以上資訊生成恢復hdisk3磁碟標頭檔案:
.Hp4T)fxh0這裡我們可以用hdisk5來修改:
`D0b ~4l0kfed read /dev/rhdisk5 > /oracle/hdisk5.txtITPUB個人空間F,l-L qT[p
kfbh.block.obj: 2147483648 ; 0x008: TYPE=0x8 NUMB=0x0
7f4KO3M6a;1JtI4y0kfdhdb.dsknum: 0; 0x024: 0x0000
/[v:J @g[C!f0kfdhdb.dskname: DATA_0000 ; 0x028: length=9
f2{xf] e.]3q%B0kfdhdb.fgname: DATA_0000 ; 0x068: length=9
*d}!_a3k7zA0kfdhdb.crestmp.hi: 32937833 ; 0x0a8: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7daITPUB個人空間7n C}CO%v8PT!Cg9W}#?
kfdhdb.crestmp.lo: 1704514560 ; 0x0ac: USEC=0x0 MSEC=0x235 SECS=0x19 MINS=0x19
e)mm-z k:tKm}Nx0kfdhdb.dsksize: 51200 ; 0x0c4: 0x0000c800

將上面值修改為以下值:
7q qYo4{T0kfbh.block.obj: 2147483649 ; 0x008: TYPE=0x8 NUMB=0x0
} X"oR:QEWt0kfdhdb.dsknum: 1 ; 0x024: 0x0000ITPUB個人空間e_)^p a0qyh
kfdhdb.dskname: DATA_0001 ; 0x028: length=9
:t)lgRP2t"v#PMJ0kfdhdb.fgname: DATA_0001 ; 0x068: length=9
S{'['uIN | u^] HX.D0kfdhdb.crestmp.hi: 32937837 ; 0x0a8: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
eU0^7Jabmy0kfdhdb.crestmp.lo: 1899649024; 0x0ac: USEC=0x0 MSEC=0x235 SECS=0x19 MINS=0x19ITPUB個人空間(Lc"|Z&Q cIK Z
kfdhdb.dsksize: 1024 ; 0x0c4: 0x0000c800
Y&hR"IS0這個最好用ultraedit編輯,生成hdisk3.txt;

kfed merge進去標頭檔案資訊到hdisk3:ITPUB個人空間)Q'f9^yP([kqdY
[oracle@p520:/oracle]$kfed merge /dev/rhdisk3 text=/oracle/hdisk3.txt

驗證是否修復成功:
i,?pQ]J(gNU:P0SQL> alter diskgroup data mount;ITPUB個人空間aY8+Z V
Diskgroup altered.
&hu I-@8yW0並且能夠正確讀取磁碟頭資訊:
"_.OdqjG'A-U0[oracle@p520:/oracle]$kfed read /dev/rhdisk3
"M5cHR2w#[2J*YE)b0kfbh.endian: 0 ; 0x000: 0x00
x/eO ]Y;O-qT,o:KP0kfbh.hard: 130 ; 0x001: 0x82ITPUB個人空間a.ykoDA$vN/M%J
kfbh.type: 1 ; 0x002: KFBTYP_DISKHEADITPUB個人空間3COLn)^ UK~
kfbh.datfmt: 1 ; 0x003: 0x01ITPUB個人空間 ^X@h*t^:}3|
kfbh.block.blk: 0 ; 0x004: T=0 NUMB=0x0
{7b4k?Y$dmK0kfbh.block.obj: 2147483649 ; 0x008: TYPE=0x8 NUMB=0x1ITPUB個人空間/TaX#it6X
kfbh.check: 3781987247 ; 0x00c: 0xe16c8baf
}Q2peoE8MV0kfbh.fcn.base: 0 ; 0x010: 0x00000000ITPUB個人空間;KZ4O{3rF
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000ITPUB個人空間A#b&F;~%p,j)n${
kfbh.spare1: 0 ; 0x018: 0x00000000
"Bmb} y)o0d0kfbh.spare2: 0 ; 0x01c: 0x00000000
.{6o m#XV8p2u,aA0kfdhdb.driver.provstr: ORCLDISK ; 0x000: length=8
9B.` w^B,E![2f%W H.J0kfdhdb.driver.reserved[0]: 0 ; 0x008: 0x00000000
M`$C9@#C+xO0kfdhdb.driver.reserved[1]: 0 ; 0x00c: 0x00000000ITPUB個人空間*PA8i LMB5E+Q}(d
kfdhdb.driver.reserved[2]: 0 ; 0x010: 0x00000000
0"CBgx3z0kfdhdb.driver.reserved[3]: 0 ; 0x014: 0x00000000ITPUB個人空間.~&F)JXFyX
kfdhdb.driver.reserved[4]: 0 ; 0x018: 0x00000000ITPUB個人空間-R#NGm-l`B
kfdhdb.driver.reserved[5]: 0 ; 0x01c: 0x00000000ITPUB個人空間*V7G5@JYaLk7I4~
kfdhdb.compat: 168820736 ; 0x020: 0x0a100000ITPUB個人空間#i1Q {/f.Kna
kfdhdb.dsknum: 1 ; 0x024: 0x0001
FEXg9S0kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL
4t I#LBm;H8r#f+q0kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBERITPUB個人空間!Z:H gPk W/Gy
kfdhdb.dskname: DATA_0001 ; 0x028: length=9ITPUB個人空間9YK:F?G-X~4^
kfdhdb.grpname: DATA ; 0x048: length=4
5Lr2S RL(uJ0kfdhdb.fgname: DATA_0001 ; 0x068: length=9ITPUB個人空間q"S!jCT*]
kfdhdb.capname: ; 0x088: length=0
lH9Q7C!@8p-g#L0kfdhdb.crestmp.hi: 32937837 ; 0x0a8: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
#wL(t0e/r:xUdD"X/t0kfdhdb.crestmp.lo: 1899649024 ; 0x0ac: USEC=0x0 MSEC=0x296 SECS=0x13 MINS=0x1cITPUB個人空間%C9Y?5Q/z"s
kfdhdb.mntstmp.hi: 32937834 ; 0x0b0: HOUR=0xa DAYS=0x1b MNTH=0x5 YEAR=0x7da
`} IU8z%J0kfdhdb.mntstmp.lo: 679906304 ; 0x0b4: USEC=0x0 MSEC=0x1a3 SECS=0x8 MINS=0xaITPUB個人空間 `6W;Uu9U)rN
kfdhdb.secsize: 512 ; 0x0b8: 0x0200
'sS&xkl&d_9g8z X-V N0kfdhdb.blksize: 4096 ; 0x0ba: 0x1000
iYT }{M0kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000
-g2X/x#hX3T*w!p*n{0kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80
e,cSm(N R IF0kfdhdb.dsksize: 1024 ; 0x0c4: 0x00000400ITPUB個人空間G.i'x9]6Lr*gww
kfdhdb.pmcnt: 2 ; 0x0c8: 0x00000002
.^*YqKnR0kfdhdb.fstlocn: 1 ; 0x0cc: 0x00000001ITPUB個人空間`/j#n;a;D
kfdhdb.altlocn: 2 ; 0x0d0: 0x00000002ITPUB個人空間^5jj I K
kfdhdb.f1b1locn: 0 ; 0x0d4: 0x00000000ITPUB個人空間 _U8gw6x&Yl
kfdhdb.redomirrors[0]: 0 ; 0x0d8: 0x0000
c,~S n9J1R:]0kfdhdb.redomirrors[1]: 0 ; 0x0da: 0x0000
!zZDL]-}H0q:c0kfdhdb.redomirrors[2]: 0 ; 0x0dc: 0x0000
4]Q)U j{|[1tG0kfdhdb.redomirrors[3]: 0 ; 0x0de: 0x0000ITPUB個人空間)p^ w II
kfdhdb.dbcompat: 168820736 ; 0x0e0: 0x0a100000
's(T0X-CkUv`#BA6[0kfdhdb.grpstmp.hi: 32937833 ; 0x0e4: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7daITPUB個人空間"M8R2|x2|4E `,O
kfdhdb.grpstmp.lo: 1704339456 ; 0x0e8: USEC=0x0 MSEC=0x18a SECS=0x19 MINS=0x19
!T*K8v3T3rK?0kfdhdb.ub4spare[0]: 0 ; 0x0ec: 0x00000000ITPUB個人空間7p]$N$j?1XL0I
kfdhdb.ub4spare[1]: 0 ; 0x0f0: 0x00000000
(s3p2PqR1b8f$BY?+N0kfdhdb.ub4spare[2]: 0 ; 0x0f4: 0x00000000
+C!|e }7fs.h0kfdhdb.ub4spare[3]: 0 ; 0x0f8: 0x00000000ITPUB個人空間 j _4eG!X8Ze
kfdhdb.ub4spare[4]: 0 ; 0x0fc: 0x00000000
M&hP2e;EK;LFn0kfdhdb.ub4spare[5]: 0 ; 0x100: 0x00000000
3IR-t B%sb.rf+P0kfdhdb.ub4spare[6]: 0 ; 0x104: 0x00000000
%Lt:Q,#yy9hN0kfdhdb.ub4spare[7]: 0 ; 0x108: 0x00000000ITPUB個人空間!X t#o?T
kfdhdb.ub4spare[8]: 0 ; 0x10c: 0x00000000
X8KRm[_6C/s3m3eZ0kfdhdb.ub4spare[9]: 0 ; 0x110: 0x00000000
#Nc:c Q-i?["x0kfdhdb.ub4spare[10]: 0 ; 0x114: 0x00000000
8^)r-n PN!wQBe"?0kfdhdb.ub4spare[11]: 0 ; 0x118: 0x00000000ITPUB個人空間n&P"r6b(o{JB
kfdhdb.ub4spare[12]: 0 ; 0x11c: 0x00000000ITPUB個人空間.F%B3mw0Ji4Z/Eq
kfdhdb.ub4spare[13]: 0 ; 0x120: 0x00000000
`2e C'N @0kfdhdb.ub4spare[14]: 0 ; 0x124: 0x00000000
z:oG`iR Vz0kfdhdb.ub4spare[15]: 0 ; 0x128: 0x00000000ITPUB個人空間1Bz w1mY3r5JS-P
kfdhdb.ub4spare[16]: 0 ; 0x12c: 0x00000000ITPUB個人空間,g sL4_)mt-J
kfdhdb.ub4spare[17]: 0 ; 0x130: 0x00000000
X KJ-mME0kfdhdb.ub4spare[18]: 0 ; 0x134: 0x00000000ITPUB個人空間;`{%]^"Lnb
kfdhdb.ub4spare[19]: 0 ; 0x138: 0x00000000
C3z*u*F?/XU)iMe0kfdhdb.ub4spare[20]: 0 ; 0x13c: 0x00000000ITPUB個人空間p+i!Ro s:PsL
kfdhdb.ub4spare[21]: 0 ; 0x140: 0x00000000ITPUB個人空間:z.Z7I$r:gw$AA
kfdhdb.ub4spare[22]: 0 ; 0x144: 0x00000000ITPUB個人空間/Ky,c-l!}Kn
kfdhdb.ub4spare[23]: 0 ; 0x148: 0x00000000ITPUB個人空間7c8g)q'L4X0w8I4d
kfdhdb.ub4spare[24]: 0 ; 0x14c: 0x00000000ITPUB個人空間#O~+`"^.q?5|M
kfdhdb.ub4spare[25]: 0 ; 0x150: 0x00000000ITPUB個人空間 K dI!~ w8Hl
kfdhdb.ub4spare[26]: 0 ; 0x154: 0x00000000ITPUB個人空間%pT#xs2r
kfdhdb.ub4spare[27]: 0 ; 0x158: 0x00000000
@U3M[,r#L g0kfdhdb.ub4spare[28]: 0 ; 0x15c: 0x00000000ITPUB個人空間4e:[cq_ qbJ7t!H
kfdhdb.ub4spare[29]: 0 ; 0x160: 0x00000000ITPUB個人空間(rYRF0j&z3R
kfdhdb.ub4spare[30]: 0 ; 0x164: 0x00000000ITPUB個人空間9Aq`V)y| W$t7~
kfdhdb.ub4spare[31]: 0 ; 0x168: 0x00000000ITPUB個人空間jx5ih't}cc
kfdhdb.ub4spare[32]: 0 ; 0x16c: 0x00000000
LR H2k-jmJ0kfdhdb.ub4spare[33]: 0 ; 0x170: 0x00000000
$[oY#/PK0kfdhdb.ub4spare[34]: 0 ; 0x174: 0x00000000ITPUB個人空間S h|UXe y
kfdhdb.ub4spare[35]: 0 ; 0x178: 0x00000000ITPUB個人空間.@8l?+?/S
kfdhdb.ub4spare[36]: 0 ; 0x17c: 0x00000000
C1w&o;`"PqU0kfdhdb.ub4spare[37]: 0 ; 0x180: 0x00000000
zz8Qj mVJ l7`s0kfdhdb.ub4spare[38]: 0 ; 0x184: 0x00000000
9t7pnB+c:.e!s Y0kfdhdb.ub4spare[39]: 0 ; 0x188: 0x00000000ITPUB個人空間(P-t#t2p*r4S"[
kfdhdb.ub4spare[40]: 0 ; 0x18c: 0x00000000ITPUB個人空間/EV9T7I0f(QF+jh
kfdhdb.ub4spare[41]: 0 ; 0x190: 0x00000000ITPUB個人空間 ] NJrPk Q
kfdhdb.ub4spare[42]: 0 ; 0x194: 0x00000000ITPUB個人空間`6~ r!DE0vhGl
kfdhdb.ub4spare[43]: 0 ; 0x198: 0x00000000ITPUB個人空間qr VcM6Z"[
kfdhdb.ub4spare[44]: 0 ; 0x19c: 0x00000000ITPUB個人空間^H c$Un _7~Y
kfdhdb.ub4spare[45]: 0 ; 0x1a0: 0x00000000
_3sf2B Fg+t1iz0kfdhdb.ub4spare[46]: 0 ; 0x1a4: 0x00000000ITPUB個人空間 If(c(V1_k |8U6Y
kfdhdb.ub4spare[47]: 0 ; 0x1a8: 0x00000000ITPUB個人空間*I0AGRXu
kfdhdb.ub4spare[48]: 0 ; 0x1ac: 0x00000000
-QWTb.TPi"q i8kfdhdb.ub4spare[49]: 0 ; 0x1b0: 0x00000000ITPUB個人空間7PN/Bc8d c
kfdhdb.ub4spare[50]: 0 ; 0x1b4: 0x00000000ITPUB個人空間 aJI;s0m
kfdhdb.ub4spare[51]: 0 ; 0x1b8: 0x00000000
wF1FZ4_0kfdhdb.ub4spare[52]: 0 ; 0x1bc: 0x00000000
x9hAj7b0kfdhdb.ub4spare[53]: 0 ; 0x1c0: 0x00000000
GxNd lQ?d0kfdhdb.ub4spare[54]: 0 ; 0x1c4: 0x00000000ITPUB個人空間y3ok6w9gc
kfdhdb.ub4spare[55]: 0 ; 0x1c8: 0x00000000ITPUB個人空間C:r#w J RC,{ t d8w
kfdhdb.ub4spare[56]: 0 ; 0x1cc: 0x00000000ITPUB個人空間Br8h+?;t[
kfdhdb.ub4spare[57]: 0 ; 0x1d0: 0x00000000ITPUB個人空間irS(E)R Bv5C,C
kfdhdb.acdb.aba.seq: 0 ; 0x1d4: 0x00000000ITPUB個人空間_*b*b y5c1Y1C$`%_ RD.t$kP
kfdhdb.acdb.aba.blk: 0 ; 0x1d8: 0x00000000
J8n!m z9jj+C[0kfdhdb.acdb.ents: 0 ; 0x1dc: 0x0000ITPUB個人空間+t!k;b/` Scc QX4e
kfdhdb.acdb.ub2spare: 0 ; 0x1de: 0x0000ITPUB個人空間n#o"t7K]{#W$Rp
修復成功。


H7{_&d&?7FW7R05、磁碟組file directory所在的磁碟頭資訊丟失恢復:

1)破壞hdisk5磁碟頭:ITPUB個人空間eF[:Z7u2Cv
[oracle@p520:/oracle]$dd if=/dev/zero f=/dev/rhdisk5 bs=4096 count=1
J Mt T{@l0H8`U01+0 records in.ITPUB個人空間;e)Et5m@#d cP
1+0 records out.ITPUB個人空間-MH0I}?~&`
[oracle@p520:/oracle]$kfed read /dev/rhdisk5ITPUB個人空間&o ^;L9xmNj O0W
kfbh.endian: 0 ; 0x000: 0x00ITPUB個人空間Qw;WN!D-N
kfbh.hard: 0 ; 0x001: 0x00
6j1lE[@J0kfbh.type: 0 ; 0x002: KFBTYP_INVALID
l"PkL Els'cv0u0kfbh.datfmt: 0 ; 0x003: 0x00ITPUB個人空間1O$Xm$C._z
kfbh.block.blk: 0 ; 0x004: T=0 NUMB=0x0
6]#U[S;L z0kfbh.block.obj: 0 ; 0x008: TYPE=0x0 NUMB=0x0ITPUB個人空間T{/w$a(Xh
kfbh.check: 0 ; 0x00c: 0x00000000
:eE d_`WA%E)_ k0kfbh.fcn.base: 0 ; 0x010: 0x00000000
j@}|G o*^3D"@e0kfbh.fcn.wrap: 0 ; 0x014: 0x00000000ITPUB個人空間:r ]5E-@ j G;{?C k
kfbh.spare1: 0 ; 0x018: 0x00000000
RD}A$FT7W i0kfbh.spare2: 0 ; 0x01c: 0x00000000

檢查diskgroup:ITPUB個人空間~/h$J$h$o Ag
SQL> alter diskgroup data mount;
Ewm:D:d0alter diskgroup data mount
1xq }'o;|8A0Z0p0*
4K }za_%Tt0~0ERROR at line 1:
.z:w,s5{3Yb0ORA-15032: not all alterations performedITPUB個人空間$uU+F X4vW Yj a
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DATA"

2)根據file directory hdisk5查詢disk directory資訊:ITPUB個人空間 am"O3Y6f0BX/G
可以用select name,path from v$asm_disk查出。

3)根據disk directory hdisk3找出磁碟資訊;裡面可以得到以下hdisk5的磁碟頭資訊;ITPUB個人空間?EZ)K_E
kfddde[0].dsknum: 0 ; 0x034: 0x0000
bCpYQD1k'@0kfddde[0].dskname: DATA_0000 ; 0x038: length=9ITPUB個人空間:f+c$l0L:g}
kfddde[0].fgname: DATA_0000 ; 0x058: length=9
v.?D;~|J#~0kfddde[0].crestmp.hi: 32937833 ; 0x078: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
`y4Ne5yO0kfddde[0].crestmp.lo: 1704514560 ; 0x07c: USEC=0x0 MSEC=0x235 SECS=0x19 MINS=0x19ITPUB個人空間4v-S;R2F3
kfddde[0].size: 51200 ; 0x08c: 0x0000c800

4)根據info.txt資訊生成恢復hdisk5磁碟標頭檔案:ITPUB個人空間U W2y]L8{z`"S!s |
這裡我們可以用hdisk3磁碟頭資訊檔案來修改:
Eq wMH)^6q0kfed read /dev/rhdisk3 > /oracle/hdisk3.txtITPUB個人空間4ypi;RJvt3Z
kfbh.block.obj: 2147483649 ; 0x008: TYPE=0x8 NUMB=0x1ITPUB個人空間%`/j)LQ_5OWJl
kfdhdb.dsknum: 1; 0x024: 0x0001ITPUB個人空間5Zi3QaGM5v
kfdhdb.dskname: DATA_0001 ; 0x028: length=9
+P9FhN-gO{0kfdhdb.fgname: DATA_0001 ; 0x068: length=9
iH;[_Cw0kfdhdb.crestmp.hi: 32937833 ; 0x0a8: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
b]m8{z0kfdhdb.crestmp.lo: 1704514560 ; 0x0ac: USEC=0x0 MSEC=0x235 SECS=0x19 MINS=0x19
,wY JRWx&j{0kfdhdb.dsksize: 1024 ; 0x0c4: 0x0000c800

將上面值修改為以下值:
.Yje7e5rK4@xymwY0kfbh.block.obj: 2147483648 ; 0x008: TYPE=0x8 NUMB=0x0
7R#b`4Q#{5M3bl-m0kfdhdb.dsknum: 0 ; 0x024: 0x0000
~y[^5ek/W.g?R6Y0kfdhdb.dskname: DATA_0000 ; 0x028: length=9
1P"N'|u-pm1z0kfdhdb.fgname: DATA_0000 ; 0x068: length=9
*UJJ3{*G g0kfdhdb.crestmp.hi: 32937833 ; 0x0a8: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7daITPUB個人空間H])|4TKuW)m [
kfdhdb.crestmp.lo: 1704514560; 0x0ac: USEC=0x0 MSEC=0x235 SECS=0x19 MINS=0x19
)Sa*T2A)~Ykfdhdb.dsksize: 51200 ; 0x0c4: 0x0000c800ITPUB個人空間%_S3F$_#Q3L!|u)Ym8T
這個最好用ultraedit編輯,生成hdisk5.txt。

kfed merge進去標頭檔案資訊到hdisk5:
0h3W x_-RU] ]0[oracle@p520:/oracle]$kfed merge /dev/rhdisk3 text=/oracle/hdisk5.txt
6`"Yl,H dX&[ r c0_0驗證是否修復成功ITPUB個人空間e~}wfd cB
SQL> alter diskgroup data mount;ITPUB個人空間Vs?9`fGA
Diskgroup altered.
"y/Hw2w-q+Vj0並且能夠讀出磁碟頭資訊:ITPUB個人空間T/pNW6`[
[oracle@p520:/oracle]$kfed read /dev/rhdisk5ITPUB個人空間_}&ow}f _ dp
kfbh.endian: 0 ; 0x000: 0x00
&@ u&J/@K&ajP*C0kfbh.hard: 130 ; 0x001: 0x82
.r0RS]zR m0kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD
4fj,V^`p8@]1Vw IJ0kfbh.datfmt: 1 ; 0x003: 0x01ITPUB個人空間%qrW3^sj7?"`h,Dk
kfbh.block.blk: 0 ; 0x004: T=0 NUMB=0x0ITPUB個人空間o}jU+I1b B*f
kfbh.block.obj: 2147483648 ; 0x008: TYPE=0x8 NUMB=0x0ITPUB個人空間ZS&T2l{E1o
kfbh.check: 170969582 ; 0x00c: 0x0a30c9ee
@%g pj+RMMV0kfbh.fcn.base: 0 ; 0x010: 0x00000242ITPUB個人空間 a Y6PX Lb W w
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
A&]v mo _)@F0kfbh.spare1: 0 ; 0x018: 0x00000000ITPUB個人空間U_}7GHKZ
kfbh.spare2: 0 ; 0x01c: 0x00000000
FUY v/Q J+P cs0kfdhdb.driver.provstr: ORCLDISK ; 0x000: length=8
;UZ }'qEY)dW%u%r0kfdhdb.driver.reserved[0]: 0 ; 0x008: 0x00000000ITPUB個人空間0JbpnJ1c)C
kfdhdb.driver.reserved[1]: 0 ; 0x00c: 0x00000000
W~1n8u_0kfdhdb.driver.reserved[2]: 0 ; 0x010: 0x00000000
If-t$X/h]b-p_u0kfdhdb.driver.reserved[3]: 0 ; 0x014: 0x00000000ITPUB個人空間c$f%[9O*iV
kfdhdb.driver.reserved[4]: 0 ; 0x018: 0x00000000ITPUB個人空間0h2~L/ aa8Y
kfdhdb.driver.reserved[5]: 0 ; 0x01c: 0x00000000
{8d Wo:{tQ0kfdhdb.compat: 168820736 ; 0x020: 0x0a100000ITPUB個人空間Kb"g f8T0` I
kfdhdb.dsknum: 0 ; 0x024: 0x0000ITPUB個人空間x$X8sKU
kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNALITPUB個人空間/Sa1bu$tv[1p
kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
M g*p)Yfb f0kfdhdb.dskname: DATA_0000 ; 0x028: length=9ITPUB個人空間/rjJ'D,Je
kfdhdb.grpname: DATA ; 0x048: length=4
Vc1T1`G.f0kfdhdb.fgname: DATA_0000 ; 0x068: length=9ITPUB個人空間hlO-r,p
kfdhdb.capname: ; 0x088: length=0
y'O e7~7N'}0kfdhdb.crestmp.hi: 32937833 ; 0x0a8: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7daITPUB個人空間t,}1|$Pt%o+s
kfdhdb.crestmp.lo: 1704514560 ; 0x0ac: USEC=0x0 MSEC=0x235 SECS=0x19 MINS=0x19ITPUB個人空間M&B.l'b+`ZG#K
kfdhdb.mntstmp.hi: 32937834 ; 0x0b0: HOUR=0xa DAYS=0x1b MNTH=0x5 YEAR=0x7daITPUB個人空間#y2I OL+C/ql
kfdhdb.mntstmp.lo: 679906304 ; 0x0b4: USEC=0x0 MSEC=0x1a3 SECS=0x8 MINS=0xaITPUB個人空間I#ldo8M8d5e
kfdhdb.secsize: 512 ; 0x0b8: 0x0200
r A.j'uzG_,Hj;]0kfdhdb.blksize: 4096 ; 0x0ba: 0x1000ITPUB個人空間8IX[2?#RF v
kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000
z D[&g v2P0kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80ITPUB個人空間'rM sp7afQ|"w
kfdhdb.dsksize: 51200 ; 0x0c4: 0x0000c800ITPUB個人空間*ZJX2R[~x5T-Ez
kfdhdb.pmcnt: 2 ; 0x0c8: 0x00000002
b6^e`F'H"FC2c C%Q0kfdhdb.fstlocn: 1 ; 0x0cc: 0x00000001
I6c l.a ip'im0kfdhdb.altlocn: 2 ; 0x0d0: 0x00000002
h { lQ}.T0kfdhdb.f1b1locn: 2 ; 0x0d4: 0x00000002ITPUB個人空間Pn_;E+l g T UI
kfdhdb.redomirrors[0]: 0 ; 0x0d8: 0x0000
7n8^:HFyS8? W.r&b0kfdhdb.redomirrors[1]: 65535 ; 0x0da: 0xffff
/|_lmDef%j0kfdhdb.redomirrors[2]: 65535 ; 0x0dc: 0xffffITPUB個人空間Wu"Y"O&ZT
kfdhdb.redomirrors[3]: 65535 ; 0x0de: 0xffffITPUB個人空間Q6r1UW;qM%j.{6I
kfdhdb.dbcompat: 168820736 ; 0x0e0: 0x0a100000ITPUB個人空間7r? Vov ~*v
kfdhdb.grpstmp.hi: 32937833 ; 0x0e4: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7daITPUB個人空間B)MO{q:~1r
kfdhdb.grpstmp.lo: 1704339456 ; 0x0e8: USEC=0x0 MSEC=0x1

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19602/viewspace-1059903/,如需轉載,請註明出處,否則將追究法律責任。

相關文章