In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-16 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >
Share
Shulou(Shulou.com)06/02 Report--
Author:
Paulyibinyi
First, the purpose of the experiment:
We often lose the disk head information of the disk group due to misoperation, such as pvid=yes operation on disk, which can not be normal.
2. Experimental environment:
Operating system: AIX 6.1
Database version: oracle 10.2.0.4 + rac + asm
Database name: test
Instance name: test1, test2
Ip address: (p520) 192.168.3.225 / (p650) 192.168.3.223
Third, the experimental steps:
1. Generate kfed tools and read disk head information:
1) compile kfed and generate kfed tool:
Cd $ORACLE_HOME/rdbms/lib
Cp ins_rdbms.mk ins_rdbms.mk.bak
[make-f ins_rdbms.mk ikfed]
Linking KFED utility (kfed)
Rm-f / oracle/app/oracle/product/10.2.0/clusterdb/rdbms/lib/kfed
Ld-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/ ldbears`-lnsslb10-lncrypt10-lnsgr10-
Lnzjs10-ln10-lnnz10-lnl10-lnro10 `cat
/ oracle/app/oracle/product/10.2.0/clusterdb/lib/ ldbears`-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
Lnzjs10-ln10-lnnz10-lnl10-lnro10 `cat
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
/ oracle/app/oracle/product/10.2.0/clusterdb/lib/ sysliblist`-lm `if ["`/ usr/bin/uname-
V` "=" 4 "]
Then 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.o
Mv-f / oracle/app/oracle/product/10.2.0/clusterdb/bin/kfed
/ oracle/app/oracle/product/10.2.0/clusterdb/bin/kfedO
Mv / oracle/app/oracle/product/10.2.0/clusterdb/rdbms/lib/kfed
/ oracle/app/oracle/product/10.2.0/clusterdb/bin/kfed
Chmod 751 / oracle/app/oracle/product/10.2.0/clusterdb/bin/kfed
2) View the disk information under the disk group:
[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, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0-64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL > col name format A30
SQL > col path format A30
SQL > select name,path from v$asm_disk
NAME PATH
-
DATA_0000 / dev/rhdisk5
DATA_0001 / dev/rhdisk3
SQL > select name, state from v$asm_diskgroup
NAME STATE
DATA MOUNTED
SQL > /
NAME PATH HEADER_STATUS
-
DATA_0000 / dev/rhdisk5 MEMBER
DATA_0001 / dev/rhdisk3 MEMBER
3) use kfed tool to read disk head information:
For example, read the hdisk5 disk header information under disk group data.
[oracle@p520:/] $kfed read / dev/rhdisk5
Kfbh.endian: 0; 0x000: 0x00
Kfbh.hard: 130,130; 0x001: 0x82
Kfbh.type: 1; 0x002: KFBTYP_DISKHEAD
Kfbh.datfmt: 1; 0x003: 0x01
Kfbh.block.blk: 0; 0x004: titled 0 NUMB=0x0
Kfbh.block.obj: 2147483648; 0x008: TYPE=0x8 NUMB=0x0
Kfbh.check: 257017006; 0x00c: 0x0f51c4ae
Kfbh.fcn.base: 578; 0x010: 0x00000242
Kfbh.fcn.wrap: 0; 0x014: 0x00000000
Kfbh.spare1: 0; 0x018: 0x00000000
Kfbh.spare2: 0; 0x01c: 0x00000000
Kfdhdb.driver.provstr: ORCLDISK; 0x000: length=8
Kfdhdb.driver.reserved [0]: 0; 0x008: 0x00000000
Kfdhdb.driver.reserved [1]: 0; 0x00c: 0x00000000
Kfdhdb.driver.reserved [2]: 0; 0x010: 0x00000000
Kfdhdb.driver.reserved [3]: 0; 0x014: 0x00000000
Kfdhdb.driver.reserved [4]: 0; 0x018: 0x00000000
Kfdhdb.driver.reserved [5]: 0; 0x01c: 0x00000000
Kfdhdb.compat: 168820736; 0x020: 0x0a100000
Kfdhdb.dsknum: 0; 0x024: 0x0000
Kfdhdb.grptyp: 1; 0x026: KFDGTP_EXTERNAL
Kfdhdb.hdrsts: 3; 0x027: KFDHDR_MEMBER
Kfdhdb.dskname: DATA_0000; 0x028: length=9
Kfdhdb.grpname: DATA; 0x048: length=4
Kfdhdb.fgname: DATA_0000; 0x068: length=9
Kfdhdb.capname:; 0x088: length=0
Kfdhdb.crestmp.hi: 32937833; 0x0a8: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfdhdb.crestmp.lo: 1704514560; 0x0ac: USEC=0x0 MSEC=0x235 SECS=0x19 MINS=0x19
Kfdhdb.mntstmp.hi: 32937834; 0x0b0: HOUR=0xa DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfdhdb.mntstmp.lo: 679906304; 0x0b4: USEC=0x0 MSEC=0x1a3 SECS=0x8 MINS=0xa
Kfdhdb.secsize: 512; 0x0b8: 0x0200
Kfdhdb.blksize: 4096; 0x0ba: 0x1000
Kfdhdb.ausize: 1048576; 0x0bc: 0x00100000
Kfdhdb.mfact: 113792; 0x0c0: 0x0001bc80
Kfdhdb.dsksize: 51200; 0x0c4: 0x0000c800
Kfdhdb.pmcnt: 2; 0x0c8: 0x00000002
Kfdhdb.fstlocn: 1; 0x0cc: 0x00000001
Kfdhdb.altlocn: 2; 0x0d0: 0x00000002
Kfdhdb.f1b1locn: 2; 0x0d4: 0x00000002
Kfdhdb.redomirrors [0]: 0; 0x0d8: 0x0000
Kfdhdb.redomirrors [1]: 65535; 0x0da: 0xffff
Kfdhdb.redomirrors [2]: 65535; 0x0dc: 0xffff
Kfdhdb.redomirrors [3]: 65535; 0x0de: 0xffff
Kfdhdb.dbcompat: 168820736; 0x0e0: 0x0a100000
Kfdhdb.grpstmp.hi: 32937833; 0x0e4: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfdhdb.grpstmp.lo: 1704339456; 0x0e8: USEC=0x0 MSEC=0x18a SECS=0x19 MINS=0x19
Kfdhdb.ub4spare [0]: 0; 0x0ec: 0x00000000
Kfdhdb.ub4spare [1]: 0; 0x0f0: 0x00000000
Kfdhdb.ub4spare [2]: 0; 0x0f4: 0x00000000
Kfdhdb.ub4spare [3]: 0; 0x0f8: 0x00000000
Kfdhdb.ub4spare [4]: 0; 0x0fc: 0x00000000
Kfdhdb.ub4spare [5]: 0; 0x100: 0x00000000
Kfdhdb.ub4spare [6]: 0; 0x104: 0x00000000
Kfdhdb.ub4spare [7]: 0; 0x108: 0x00000000
Kfdhdb.ub4spare [8]: 0; 0x10c: 0x00000000
Kfdhdb.ub4spare [9]: 0; 0x110: 0x00000000
Kfdhdb.ub4spare [10]: 0; 0x114: 0x00000000
Kfdhdb.ub4spare [11]: 0; 0x118: 0x00000000
Kfdhdb.ub4spare [12]: 0; 0x11c: 0x00000000
Kfdhdb.ub4spare [13]: 0; 0x120: 0x00000000
Kfdhdb.ub4spare [14]: 0; 0x124: 0x00000000
Kfdhdb.ub4spare [15]: 0; 0x128: 0x00000000
Kfdhdb.ub4spare [16]: 0; 0x12c: 0x00000000
Kfdhdb.ub4spare [17]: 0; 0x130: 0x00000000
Kfdhdb.ub4spare [18]: 0; 0x134: 0x00000000
Kfdhdb.ub4spare [19]: 0; 0x138: 0x00000000
Kfdhdb.ub4spare [20]: 0; 0x13c: 0x00000000
Kfdhdb.ub4spare [21]: 0; 0x140: 0x00000000
Kfdhdb.ub4spare [22]: 0; 0x144: 0x00000000
Kfdhdb.ub4spare [23]: 0; 0x148: 0x00000000
Kfdhdb.ub4spare [24]: 0; 0x14c: 0x00000000
Kfdhdb.ub4spare [25]: 0; 0x150: 0x00000000
Kfdhdb.ub4spare [26]: 0; 0x154: 0x00000000
Kfdhdb.ub4spare [27]: 0; 0x158: 0x00000000
Kfdhdb.ub4spare [28]: 0; 0x15c: 0x00000000
Kfdhdb.ub4spare [29]: 0; 0x160: 0x00000000
Kfdhdb.ub4spare [30]: 0; 0x164: 0x00000000
Kfdhdb.ub4spare [31]: 0; 0x168: 0x00000000
Kfdhdb.ub4spare [32]: 0; 0x16c: 0x00000000
Kfdhdb.ub4spare [33]: 0; 0x170: 0x00000000
Kfdhdb.ub4spare [34]: 0; 0x174: 0x00000000
Kfdhdb.ub4spare [35]: 0; 0x178: 0x00000000
Kfdhdb.ub4spare [36]: 0; 0x17c: 0x00000000
Kfdhdb.ub4spare [37]: 0; 0x180: 0x00000000
Kfdhdb.ub4spare [38]: 0; 0x184: 0x00000000
Kfdhdb.ub4spare [39]: 0; 0x188: 0x00000000
Kfdhdb.ub4spare [40]: 0; 0x18c: 0x00000000
Kfdhdb.ub4spare [41]: 0; 0x190: 0x00000000
Kfdhdb.ub4spare [42]: 0; 0x194: 0x00000000
Kfdhdb.ub4spare [43]: 0; 0x198: 0x00000000
Kfdhdb.ub4spare [44]: 0; 0x19c: 0x00000000
Kfdhdb.ub4spare [45]: 0; 0x1a0: 0x00000000
Kfdhdb.ub4spare [46]: 0; 0x1a4: 0x00000000
Kfdhdb.ub4spare [47]: 0; 0x1a8: 0x00000000
Kfdhdb.ub4spare [48]: 0; 0x1ac: 0x00000000
Kfdhdb.ub4spare [49]: 0; 0x1b0: 0x00000000
Kfdhdb.ub4spare [50]: 0; 0x1b4: 0x00000000
Kfdhdb.ub4spare [51]: 0; 0x1b8: 0x00000000
Kfdhdb.ub4spare [52]: 0; 0x1bc: 0x00000000
Kfdhdb.ub4spare [53]: 0; 0x1c0: 0x00000000
Kfdhdb.ub4spare [54]: 0; 0x1c4: 0x00000000
Kfdhdb.ub4spare [55]: 0; 0x1c8: 0x00000000
Kfdhdb.ub4spare [56]: 0; 0x1cc: 0x00000000
Kfdhdb.ub4spare [57]: 0; 0x1d0: 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
From the above reading, we can get the following information:
Dsknum: disk number
Grptyp: type EXTERNAL REDUNDANCY to which the disk belongs
The main types of disks are:
NORMAL REDUNDANCY-Two-way mirroring, requiring two failure groups.
HIGH REDUNDANCY-Three-way mirroring, requiring three failure groups.
EXTERNAL REDUNDANCY-No mirroring for disks that are already protected using hardware
Mirroring or RAID.
Ddrsts: disk head statu
Dskname: disk name in asm
Grpname: disk group name
Fgname:failure group name
Crestmp.hi:asm disk group creation time
Mntstmp.hi:asm disk group mount time
Blksize: disk head block size 4096
Ausize: striped size defaults to 1m
Dsksize: disk siz
F1b1locn:File Directory blk 1 AU num
Beginging for file directory
2. The disk head can be restored using dd backup:
1) back up with dd:
Because the disk head information only takes up the first 4k content, we can use dd to back up only the first 4k content:
[oracle@p520:/] $dd if=/dev/rhdisk5 f=/oracle/hdisk5header bs=4096 count=1
1: 0 records in.
1: 0 records out.
[oracle@p520:/] $dd if=/dev/rhdisk3 f=/oracle/hdisk3header bs=4096 count=1
1: 0 records in.
1: 0 records out.
2) restore using dd:
Dd destroys hdisk5 disk head information
[oracle@p520:/oracle] $dd if=/dev/zero f=/dev/rhdisk5 bs=4096 count=1
1: 0 records in.
1: 0 records out.
The damaged disk head information is as follows:
[oracle@p520:/oracle] $kfed read / dev/rhdisk5
Kfbh.endian: 0; 0x000: 0x00
Kfbh.hard: 0; 0x001: 0x00
Kfbh.type: 0; 0x002: KFBTYP_INVALID
Kfbh.datfmt: 0; 0x003: 0x00
Kfbh.block.blk: 0; 0x004: titled 0 NUMB=0x0
Kfbh.block.obj: 0; 0x008: TYPE=0x0 NUMB=0x0
Kfbh.check: 0; 0x00c: 0x00000000
Kfbh.fcn.base: 0; 0x010: 0x00000000
Kfbh.fcn.wrap: 0; 0x014: 0x00000000
Kfbh.spare1: 0; 0x018: 0x00000000
Kfbh.spare2: 0; 0x01c: 0x00000000
As you can see, the information related to the disk head is lost.
Asm instance launches the following error message:
SQL > startup
ASM instance started
Total System Global Area 130023424 bytes
Fixed Size 2019136 bytes
Variable Size 102838464 bytes
ASM Cache 25165824 bytes
ORA-15032: not all alterations performed
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DATA"
SQL > select name,state from v$asm_diskgroup
NAME STATE
--
DATA DISMOUNTED
SQL > alter diskgroup data mount
Alter diskgroup data mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DATA"
The following is recorded in the Asm instance log:
Thu May 27 11:00:03 2010
ERROR: no PST quorum in group 1: required 1, found 0
Thu May 27 11:00:03 2010
NOTE: cache dismounting group 1/0x1E9B7FD5 (DATA)
NOTE: dbwr not being msg'd to dismount
ERROR: diskgroup DATA was not mounted
Restore using dd:
[oracle@p520:/oracle] $dd if=/oracle/hdisk5header f=/dev/rhdisk5 bs=4096 count=1
1: 0 records in.
1: 0 records out.
At this point, the disk head information can be read normally:
[oracle@p520:/oracle] $kfed read / dev/rhdisk5
Kfbh.endian: 0; 0x000: 0x00
Kfbh.hard: 130,130; 0x001: 0x82
Kfbh.type: 1; 0x002: KFBTYP_DISKHEAD
Kfbh.datfmt: 1; 0x003: 0x01
Kfbh.block.blk: 0; 0x004: titled 0 NUMB=0x0
Kfbh.block.obj: 2147483648; 0x008: TYPE=0x8 NUMB=0x0
Kfbh.check: 257017006; 0x00c: 0x0f51c4ae
Kfbh.fcn.base: 578; 0x010: 0x00000242
Kfbh.fcn.wrap: 0; 0x014: 0x00000000
Kfbh.spare1: 0; 0x018: 0x00000000
Kfbh.spare2: 0; 0x01c: 0x00000000
Kfdhdb.driver.provstr: ORCLDISK; 0x000: length=8
Kfdhdb.driver.reserved [0]: 0; 0x008: 0x00000000
Kfdhdb.driver.reserved [1]: 0; 0x00c: 0x00000000
Kfdhdb.driver.reserved [2]: 0; 0x010: 0x00000000
Kfdhdb.driver.reserved [3]: 0; 0x014: 0x00000000
Kfdhdb.driver.reserved [4]: 0; 0x018: 0x00000000
Kfdhdb.driver.reserved [5]: 0; 0x01c: 0x00000000
Kfdhdb.compat: 168820736; 0x020: 0x0a100000
Kfdhdb.dsknum: 0; 0x024: 0x0000
Kfdhdb.grptyp: 1; 0x026: KFDGTP_EXTERNAL
Kfdhdb.hdrsts: 3; 0x027: KFDHDR_MEMBER
Kfdhdb.dskname: DATA_0000; 0x028: length=9
Kfdhdb.grpname: DATA; 0x048: length=4
Kfdhdb.fgname: DATA_0000; 0x068: length=9
Kfdhdb.capname:; 0x088: length=0
Kfdhdb.crestmp.hi: 32937833; 0x0a8: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfdhdb.crestmp.lo: 1704514560; 0x0ac: USEC=0x0 MSEC=0x235 SECS=0x19 MINS=0x19
Kfdhdb.mntstmp.hi: 32937834; 0x0b0: HOUR=0xa DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfdhdb.mntstmp.lo: 679906304; 0x0b4: USEC=0x0 MSEC=0x1a3 SECS=0x8 MINS=0xa
Kfdhdb.secsize: 512; 0x0b8: 0x0200
Kfdhdb.blksize: 4096; 0x0ba: 0x1000
Kfdhdb.ausize: 1048576; 0x0bc: 0x00100000
Kfdhdb.mfact: 113792; 0x0c0: 0x0001bc80
Kfdhdb.dsksize: 51200; 0x0c4: 0x0000c800
Kfdhdb.pmcnt: 2; 0x0c8: 0x00000002
Kfdhdb.fstlocn: 1; 0x0cc: 0x00000001
Kfdhdb.altlocn: 2; 0x0d0: 0x00000002
Kfdhdb.f1b1locn: 2; 0x0d4: 0x00000002
Kfdhdb.redomirrors [0]: 0; 0x0d8: 0x0000
Kfdhdb.redomirrors [1]: 65535; 0x0da: 0xffff
Kfdhdb.redomirrors [2]: 65535; 0x0dc: 0xffff
Kfdhdb.redomirrors [3]: 65535; 0x0de: 0xffff
Kfdhdb.dbcompat: 168820736; 0x0e0: 0x0a100000
Kfdhdb.grpstmp.hi: 32937833; 0x0e4: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfdhdb.grpstmp.lo: 1704339456; 0x0e8: USEC=0x0 MSEC=0x18a SECS=0x19 MINS=0x19
Kfdhdb.ub4spare [0]: 0; 0x0ec: 0x00000000
Kfdhdb.ub4spare [1]: 0; 0x0f0: 0x00000000
Kfdhdb.ub4spare [2]: 0; 0x0f4: 0x00000000
Kfdhdb.ub4spare [3]: 0; 0x0f8: 0x00000000
Kfdhdb.ub4spare [4]: 0; 0x0fc: 0x00000000
Kfdhdb.ub4spare [5]: 0; 0x100: 0x00000000
Kfdhdb.ub4spare [6]: 0; 0x104: 0x00000000
Kfdhdb.ub4spare [7]: 0; 0x108: 0x00000000
Kfdhdb.ub4spare [8]: 0; 0x10c: 0x00000000
Kfdhdb.ub4spare [9]: 0; 0x110: 0x00000000
Kfdhdb.ub4spare [10]: 0; 0x114: 0x00000000
Kfdhdb.ub4spare [11]: 0; 0x118: 0x00000000
Kfdhdb.ub4spare [12]: 0; 0x11c: 0x00000000
Kfdhdb.ub4spare [13]: 0; 0x120: 0x00000000
Kfdhdb.ub4spare [14]: 0; 0x124: 0x00000000
Kfdhdb.ub4spare [15]: 0; 0x128: 0x00000000
Kfdhdb.ub4spare [16]: 0; 0x12c: 0x00000000
Kfdhdb.ub4spare [17]: 0; 0x130: 0x00000000
Kfdhdb.ub4spare [18]: 0; 0x134: 0x00000000
Kfdhdb.ub4spare [19]: 0; 0x138: 0x00000000
Kfdhdb.ub4spare [20]: 0; 0x13c: 0x00000000
Kfdhdb.ub4spare [21]: 0; 0x140: 0x00000000
Kfdhdb.ub4spare [22]: 0; 0x144: 0x00000000
Kfdhdb.ub4spare [23]: 0; 0x148: 0x00000000
Kfdhdb.ub4spare [24]: 0; 0x14c: 0x00000000
Kfdhdb.ub4spare [25]: 0; 0x150: 0x00000000
Kfdhdb.ub4spare [26]: 0; 0x154: 0x00000000
Kfdhdb.ub4spare [27]: 0; 0x158: 0x00000000
Kfdhdb.ub4spare [28]: 0; 0x15c: 0x00000000
Kfdhdb.ub4spare [29]: 0; 0x160: 0x00000000
Kfdhdb.ub4spare [30]: 0; 0x164: 0x00000000
Kfdhdb.ub4spare [31]: 0; 0x168: 0x00000000
Kfdhdb.ub4spare [32]: 0; 0x16c: 0x00000000
Kfdhdb.ub4spare [33]: 0; 0x170: 0x00000000
Kfdhdb.ub4spare [34]: 0; 0x174: 0x00000000
Kfdhdb.ub4spare [35]: 0; 0x178: 0x00000000
Kfdhdb.ub4spare [36]: 0; 0x17c: 0x00000000
Kfdhdb.ub4spare [37]: 0; 0x180: 0x00000000
Kfdhdb.ub4spare [38]: 0; 0x184: 0x00000000
Kfdhdb.ub4spare [39]: 0; 0x188: 0x00000000
Kfdhdb.ub4spare [40]: 0; 0x18c: 0x00000000
Kfdhdb.ub4spare [41]: 0; 0x190: 0x00000000
Kfdhdb.ub4spare [42]: 0; 0x194: 0x00000000
Kfdhdb.ub4spare [43]: 0; 0x198: 0x00000000
Kfdhdb.ub4spare [44]: 0; 0x19c: 0x00000000
Kfdhdb.ub4spare [45]: 0; 0x1a0: 0x00000000
Kfdhdb.ub4spare [46]: 0; 0x1a4: 0x00000000
Kfdhdb.ub4spare [47]: 0; 0x1a8: 0x00000000
Kfdhdb.ub4spare [48]: 0; 0x1ac: 0x00000000
Kfdhdb.ub4spare [49]: 0; 0x1b0: 0x00000000
Kfdhdb.ub4spare [50]: 0; 0x1b4: 0x00000000
Kfdhdb.ub4spare [51]: 0; 0x1b8: 0x00000000
Kfdhdb.ub4spare [52]: 0; 0x1bc: 0x00000000
Kfdhdb.ub4spare [53]: 0; 0x1c0: 0x00000000
Kfdhdb.ub4spare [54]: 0; 0x1c4: 0x00000000
Kfdhdb.ub4spare [55]: 0; 0x1c8: 0x00000000
Kfdhdb.ub4spare [56]: 0; 0x1cc: 0x00000000
Kfdhdb.ub4spare [57]: 0; 0x1d0: 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
The disk group can mount normally:
SQL > alter diskgroup data mount
Diskgroup altered.
SQL > select name,state from v$asm_diskgroup
NAME STATE
--
DATA MOUNTED
3. The disk head can be restored using kfed backup:
1) use kfed to back up disk head information:
[oracle@p520:/oracle] $kfed read / dev/rhdisk5 > / oracle/hdisk5backup.txt
[oracle@p520:/oracle] $kfed read / dev/rhdisk3 > / oracle/hdisk3backup.txt
-rw-r--r-- 1 oracle oinstall 6607 May 27 11:11 hdisk5backup.txt
-rw-r--r-- 1 oracle oinstall 6607 May 27 11:11 hdisk3backup.txt
2) restore using kfed:
Use dd to destroy file directory, that is, hdisk5 disk head information
[oracle@p520:/oracle] $dd if=/dev/zero f=/dev/rhdisk5 bs=4096 count=1
1: 0 records in.
1: 0 records out.
SQL > alter diskgroup data mount
Alter diskgroup data mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DATA"
Because hdisk5 is file directory, the above error message is reported. If the hdisk3 disk head is damaged, report:
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15040: diskgroup is incomplete
ORA-15042: ASM disk "1" is missing
Resume using the kfed merge command
[oracle@p520:/oracle] $kfed merge / dev/rhdisk5 text=/oracle/hdisk5backup.txt
SQL > alter diskgroup data mount
Diskgroup alter
Use dd to destroy hdisk3 disk head information
[oracle@p520:/oracle] $dd if=/dev/zero f=/dev/rhdisk3 bs=4096 count=1
1: 0 records in.
1: 0 records out.
SQL > alter diskgroup data mount
Alter diskgroup data mount
*
SQL > alter diskgroup data mount
Alter diskgroup data mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15040: diskgroup is incomplete
ORA-15042: ASM disk "1" is missing
Resume using the kfed merge command
[oracle@p520:/oracle] $kfed merge / dev/rhdisk3 text=/oracle/hdisk3backup.txt
SQL > alter diskgroup data mount
Diskgroup altere
4. The disk head is not backed up, but it is not the recovery of the lost information of the file directory disk head:
1) first determine whether the disk is a file directory disk; if we determine that hdisk5 is a file directory disk.
2) destroy the hdisk3 header information of non-file directory disk:
Destroy the hdisk3 disk head:
[oracle@p520:/oracle] $dd if=/dev/zero f=/dev/rhdisk3 bs=4096 count=1
1: 0 records in.
1: 0 records out.
[oracle@p520:/oracle] $kfed read / dev/rhdisk3
Kfbh.endian: 0; 0x000: 0x00
Kfbh.hard: 0; 0x001: 0x00
Kfbh.type: 0; 0x002: KFBTYP_INVALID
Kfbh.datfmt: 0; 0x003: 0x00
Kfbh.block.blk: 0; 0x004: titled 0 NUMB=0x0
Kfbh.block.obj: 0; 0x008: TYPE=0x0 NUMB=0x0
Kfbh.check: 0; 0x00c: 0x00000000
Kfbh.fcn.base: 0; 0x010: 0x00000000
Kfbh.fcn.wrap: 0; 0x014: 0x00000000
Kfbh.spare1: 0; 0x018: 0x00000000
Kfbh.spare2: 0; 0x01c: 0x00000000
Check diskgroup
SQL > alter diskgroup data mount
Alter diskgroup data mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15040: diskgroup is incomplete
ORA-15042: ASM disk "1" is missing
3) find disk directory information according to file directory hdisk5; you can use select name,path from v$asm_disk to find it.
Out.
4) find out the disk information according to disk directory hdisk3; you can get hdisk3 disk information from it.
Kfddde [1] .dsknum: 1; 0x1f4: 0x0001
Kfddde [1] .dskname: DATA_0001; 0x1f8: length=9
Kfddde [1] .fgname: DATA_0001; 0x218: length=9
Kfddde [1] .crestmp.hi: 32937837; 0x238: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfddde [1] .crestmp.lo: 1899649024; 0x23c: USEC=0x0 MSEC=0x296 SECS=0x13 MINS=0x1c
Kfddde [1] .size: 1024; 0x24c: 0x00000400
5) generate the recovery hdisk3 disk header file based on the above information:
Here we can use hdisk5 to modify:
Kfed read / dev/rhdisk5 > / oracle/hdisk5.txt
Kfbh.block.obj: 2147483648; 0x008: TYPE=0x8 NUMB=0x0
Kfdhdb.dsknum: 0; 0x024: 0x0000
Kfdhdb.dskname: DATA_0000; 0x028: length=9
Kfdhdb.fgname: DATA_0000; 0x068: length=9
Kfdhdb.crestmp.hi: 32937833; 0x0a8: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfdhdb.crestmp.lo: 1704514560; 0x0ac: USEC=0x0 MSEC=0x235 SECS=0x19 MINS=0x19
Kfdhdb.dsksize: 51200; 0x0c4: 0x0000c800
Change the upper face value to the following values:
Kfbh.block.obj: 2147483649; 0x008: TYPE=0x8 NUMB=0x0
Kfdhdb.dsknum: 1; 0x024: 0x0000
Kfdhdb.dskname: DATA_0001; 0x028: length=9
Kfdhdb.fgname: DATA_0001; 0x068: length=9
Kfdhdb.crestmp.hi: 32937837; 0x0a8: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfdhdb.crestmp.lo: 1899649024; 0x0ac: USEC=0x0 MSEC=0x235 SECS=0x19 MINS=0x19
Kfdhdb.dsksize: 1024; 0x0c4: 0x0000c800
This is best edited with ultraedit to generate hdisk3.txt
Kfed merge enter header file information to hdisk3:
[oracle@p520:/oracle] $kfed merge / dev/rhdisk3 text=/oracle/hdisk3.txt
Verify that the repair was successful:
SQL > alter diskgroup data mount
Diskgroup altered.
And can read the disk head information correctly:
[oracle@p520:/oracle] $kfed read / dev/rhdisk3
Kfbh.endian: 0; 0x000: 0x00
Kfbh.hard: 130,130; 0x001: 0x82
Kfbh.type: 1; 0x002: KFBTYP_DISKHEAD
Kfbh.datfmt: 1; 0x003: 0x01
Kfbh.block.blk: 0; 0x004: titled 0 NUMB=0x0
Kfbh.block.obj: 2147483649; 0x008: TYPE=0x8 NUMB=0x1
Kfbh.check: 3781987247; 0x00c: 0xe16c8baf
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: ORCLDISK; 0x000: length=8
Kfdhdb.driver.reserved [0]: 0; 0x008: 0x00000000
Kfdhdb.driver.reserved [1]: 0; 0x00c: 0x00000000
Kfdhdb.driver.reserved [2]: 0; 0x010: 0x00000000
Kfdhdb.driver.reserved [3]: 0; 0x014: 0x00000000
Kfdhdb.driver.reserved [4]: 0; 0x018: 0x00000000
Kfdhdb.driver.reserved [5]: 0; 0x01c: 0x00000000
Kfdhdb.compat: 168820736; 0x020: 0x0a100000
Kfdhdb.dsknum: 1; 0x024: 0x0001
Kfdhdb.grptyp: 1; 0x026: KFDGTP_EXTERNAL
Kfdhdb.hdrsts: 3; 0x027: KFDHDR_MEMBER
Kfdhdb.dskname: DATA_0001; 0x028: length=9
Kfdhdb.grpname: DATA; 0x048: length=4
Kfdhdb.fgname: DATA_0001; 0x068: length=9
Kfdhdb.capname:; 0x088: length=0
Kfdhdb.crestmp.hi: 32937837; 0x0a8: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfdhdb.crestmp.lo: 1899649024; 0x0ac: USEC=0x0 MSEC=0x296 SECS=0x13 MINS=0x1c
Kfdhdb.mntstmp.hi: 32937834; 0x0b0: HOUR=0xa DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfdhdb.mntstmp.lo: 679906304; 0x0b4: USEC=0x0 MSEC=0x1a3 SECS=0x8 MINS=0xa
Kfdhdb.secsize: 512; 0x0b8: 0x0200
Kfdhdb.blksize: 4096; 0x0ba: 0x1000
Kfdhdb.ausize: 1048576; 0x0bc: 0x00100000
Kfdhdb.mfact: 113792; 0x0c0: 0x0001bc80
Kfdhdb.dsksize: 1024; 0x0c4: 0x00000400
Kfdhdb.pmcnt: 2; 0x0c8: 0x00000002
Kfdhdb.fstlocn: 1; 0x0cc: 0x00000001
Kfdhdb.altlocn: 2; 0x0d0: 0x00000002
Kfdhdb.f1b1locn: 0; 0x0d4: 0x00000000
Kfdhdb.redomirrors [0]: 0; 0x0d8: 0x0000
Kfdhdb.redomirrors [1]: 0; 0x0da: 0x0000
Kfdhdb.redomirrors [2]: 0; 0x0dc: 0x0000
Kfdhdb.redomirrors [3]: 0; 0x0de: 0x0000
Kfdhdb.dbcompat: 168820736; 0x0e0: 0x0a100000
Kfdhdb.grpstmp.hi: 32937833; 0x0e4: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfdhdb.grpstmp.lo: 1704339456; 0x0e8: USEC=0x0 MSEC=0x18a SECS=0x19 MINS=0x19
Kfdhdb.ub4spare [0]: 0; 0x0ec: 0x00000000
Kfdhdb.ub4spare [1]: 0; 0x0f0: 0x00000000
Kfdhdb.ub4spare [2]: 0; 0x0f4: 0x00000000
Kfdhdb.ub4spare [3]: 0; 0x0f8: 0x00000000
Kfdhdb.ub4spare [4]: 0; 0x0fc: 0x00000000
Kfdhdb.ub4spare [5]: 0; 0x100: 0x00000000
Kfdhdb.ub4spare [6]: 0; 0x104: 0x00000000
Kfdhdb.ub4spare [7]: 0; 0x108: 0x00000000
Kfdhdb.ub4spare [8]: 0; 0x10c: 0x00000000
Kfdhdb.ub4spare [9]: 0; 0x110: 0x00000000
Kfdhdb.ub4spare [10]: 0; 0x114: 0x00000000
Kfdhdb.ub4spare [11]: 0; 0x118: 0x00000000
Kfdhdb.ub4spare [12]: 0; 0x11c: 0x00000000
Kfdhdb.ub4spare [13]: 0; 0x120: 0x00000000
Kfdhdb.ub4spare [14]: 0; 0x124: 0x00000000
Kfdhdb.ub4spare [15]: 0; 0x128: 0x00000000
Kfdhdb.ub4spare [16]: 0; 0x12c: 0x00000000
Kfdhdb.ub4spare [17]: 0; 0x130: 0x00000000
Kfdhdb.ub4spare [18]: 0; 0x134: 0x00000000
Kfdhdb.ub4spare [19]: 0; 0x138: 0x00000000
Kfdhdb.ub4spare [20]: 0; 0x13c: 0x00000000
Kfdhdb.ub4spare [21]: 0; 0x140: 0x00000000
Kfdhdb.ub4spare [22]: 0; 0x144: 0x00000000
Kfdhdb.ub4spare [23]: 0; 0x148: 0x00000000
Kfdhdb.ub4spare [24]: 0; 0x14c: 0x00000000
Kfdhdb.ub4spare [25]: 0; 0x150: 0x00000000
Kfdhdb.ub4spare [26]: 0; 0x154: 0x00000000
Kfdhdb.ub4spare [27]: 0; 0x158: 0x00000000
Kfdhdb.ub4spare [28]: 0; 0x15c: 0x00000000
Kfdhdb.ub4spare [29]: 0; 0x160: 0x00000000
Kfdhdb.ub4spare [30]: 0; 0x164: 0x00000000
Kfdhdb.ub4spare [31]: 0; 0x168: 0x00000000
Kfdhdb.ub4spare [32]: 0; 0x16c: 0x00000000
Kfdhdb.ub4spare [33]: 0; 0x170: 0x00000000
Kfdhdb.ub4spare [34]: 0; 0x174: 0x00000000
Kfdhdb.ub4spare [35]: 0; 0x178: 0x00000000
Kfdhdb.ub4spare [36]: 0; 0x17c: 0x00000000
Kfdhdb.ub4spare [37]: 0; 0x180: 0x00000000
Kfdhdb.ub4spare [38]: 0; 0x184: 0x00000000
Kfdhdb.ub4spare [39]: 0; 0x188: 0x00000000
Kfdhdb.ub4spare [40]: 0; 0x18c: 0x00000000
Kfdhdb.ub4spare [41]: 0; 0x190: 0x00000000
Kfdhdb.ub4spare [42]: 0; 0x194: 0x00000000
Kfdhdb.ub4spare [43]: 0; 0x198: 0x00000000
Kfdhdb.ub4spare [44]: 0; 0x19c: 0x00000000
Kfdhdb.ub4spare [45]: 0; 0x1a0: 0x00000000
Kfdhdb.ub4spare [46]: 0; 0x1a4: 0x00000000
Kfdhdb.ub4spare [47]: 0; 0x1a8: 0x00000000
Kfdhdb.ub4spare [48]: 0; 0x1ac: 0x00000000
Kfdhdb.ub4spare [49]: 0; 0x1b0: 0x00000000
Kfdhdb.ub4spare [50]: 0; 0x1b4: 0x00000000
Kfdhdb.ub4spare [51]: 0; 0x1b8: 0x00000000
Kfdhdb.ub4spare [52]: 0; 0x1bc: 0x00000000
Kfdhdb.ub4spare [53]: 0; 0x1c0: 0x00000000
Kfdhdb.ub4spare [54]: 0; 0x1c4: 0x00000000
Kfdhdb.ub4spare [55]: 0; 0x1c8: 0x00000000
Kfdhdb.ub4spare [56]: 0; 0x1cc: 0x00000000
Kfdhdb.ub4spare [57]: 0; 0x1d0: 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
The repair was successful.
5. Recovery from the loss of information on the disk head where the disk group file directory is located:
1) destroy the hdisk5 disk head:
[oracle@p520:/oracle] $dd if=/dev/zero f=/dev/rhdisk5 bs=4096 count=1
1: 0 records in.
1: 0 records out.
[oracle@p520:/oracle] $kfed read / dev/rhdisk5
Kfbh.endian: 0; 0x000: 0x00
Kfbh.hard: 0; 0x001: 0x00
Kfbh.type: 0; 0x002: KFBTYP_INVALID
Kfbh.datfmt: 0; 0x003: 0x00
Kfbh.block.blk: 0; 0x004: titled 0 NUMB=0x0
Kfbh.block.obj: 0; 0x008: TYPE=0x0 NUMB=0x0
Kfbh.check: 0; 0x00c: 0x00000000
Kfbh.fcn.base: 0; 0x010: 0x00000000
Kfbh.fcn.wrap: 0; 0x014: 0x00000000
Kfbh.spare1: 0; 0x018: 0x00000000
Kfbh.spare2: 0; 0x01c: 0x00000000
Check diskgroup:
SQL > alter diskgroup data mount
Alter diskgroup data mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DATA"
2) find disk directory information according to file directory hdisk5:
You can use select name,path from v$asm_disk to find out.
3) find out the disk information according to disk directory hdisk3; you can get the disk head information of the following hdisk5
Kfddde [0] .dsknum: 0; 0x034: 0x0000
Kfddde [0] .dskname: DATA_0000; 0x038: length=9
Kfddde [0] .fgname: DATA_0000; 0x058: length=9
Kfddde [0] .crestmp.hi: 32937833; 0x078: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfddde [0] .crestmp.lo: 1704514560; 0x07c: USEC=0x0 MSEC=0x235 SECS=0x19 MINS=0x19
Kfddde [0] .size: 51200; 0x08c: 0x0000c800
4) generate recovery hdisk5 disk header files based on info.txt information:
Here we can use the hdisk3 disk header information file to modify:
Kfed read / dev/rhdisk3 > / oracle/hdisk3.txt
Kfbh.block.obj: 2147483649; 0x008: TYPE=0x8 NUMB=0x1
Kfdhdb.dsknum: 1; 0x024: 0x0001
Kfdhdb.dskname: DATA_0001; 0x028: length=9
Kfdhdb.fgname: DATA_0001; 0x068: length=9
Kfdhdb.crestmp.hi: 32937833; 0x0a8: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfdhdb.crestmp.lo: 1704514560; 0x0ac: USEC=0x0 MSEC=0x235 SECS=0x19 MINS=0x19
Kfdhdb.dsksize: 1024; 0x0c4: 0x0000c800
Change the upper face value to the following values:
Kfbh.block.obj: 2147483648; 0x008: TYPE=0x8 NUMB=0x0
Kfdhdb.dsknum: 0; 0x024: 0x0000
Kfdhdb.dskname: DATA_0000; 0x028: length=9
Kfdhdb.fgname: DATA_0000; 0x068: length=9
Kfdhdb.crestmp.hi: 32937833; 0x0a8: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfdhdb.crestmp.lo: 1704514560; 0x0ac: USEC=0x0 MSEC=0x235 SECS=0x19 MINS=0x19
Kfdhdb.dsksize: 51200; 0x0c4: 0x0000c800
This is best edited with ultraedit to generate hdisk5.txt.
Kfed merge enter header file information to hdisk5:
[oracle@p520:/oracle] $kfed merge / dev/rhdisk3 text=/oracle/hdisk5.txt
Verify that the repair is successful
SQL > alter diskgroup data mount
Diskgroup altered.
And can read the disk head information:
[oracle@p520:/oracle] $kfed read / dev/rhdisk5
Kfbh.endian: 0; 0x000: 0x00
Kfbh.hard: 130,130; 0x001: 0x82
Kfbh.type: 1; 0x002: KFBTYP_DISKHEAD
Kfbh.datfmt: 1; 0x003: 0x01
Kfbh.block.blk: 0; 0x004: titled 0 NUMB=0x0
Kfbh.block.obj: 2147483648; 0x008: TYPE=0x8 NUMB=0x0
Kfbh.check: 170969582; 0x00c: 0x0a30c9ee
Kfbh.fcn.base: 0; 0x010: 0x00000242
Kfbh.fcn.wrap: 0; 0x014: 0x00000000
Kfbh.spare1: 0; 0x018: 0x00000000
Kfbh.spare2: 0; 0x01c: 0x00000000
Kfdhdb.driver.provstr: ORCLDISK; 0x000: length=8
Kfdhdb.driver.reserved [0]: 0; 0x008: 0x00000000
Kfdhdb.driver.reserved [1]: 0; 0x00c: 0x00000000
Kfdhdb.driver.reserved [2]: 0; 0x010: 0x00000000
Kfdhdb.driver.reserved [3]: 0; 0x014: 0x00000000
Kfdhdb.driver.reserved [4]: 0; 0x018: 0x00000000
Kfdhdb.driver.reserved [5]: 0; 0x01c: 0x00000000
Kfdhdb.compat: 168820736; 0x020: 0x0a100000
Kfdhdb.dsknum: 0; 0x024: 0x0000
Kfdhdb.grptyp: 1; 0x026: KFDGTP_EXTERNAL
Kfdhdb.hdrsts: 3; 0x027: KFDHDR_MEMBER
Kfdhdb.dskname: DATA_0000; 0x028: length=9
Kfdhdb.grpname: DATA; 0x048: length=4
Kfdhdb.fgname: DATA_0000; 0x068: length=9
Kfdhdb.capname:; 0x088: length=0
Kfdhdb.crestmp.hi: 32937833; 0x0a8: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfdhdb.crestmp.lo: 1704514560; 0x0ac: USEC=0x0 MSEC=0x235 SECS=0x19 MINS=0x19
Kfdhdb.mntstmp.hi: 32937834; 0x0b0: HOUR=0xa DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfdhdb.mntstmp.lo: 679906304; 0x0b4: USEC=0x0 MSEC=0x1a3 SECS=0x8 MINS=0xa
Kfdhdb.secsize: 512; 0x0b8: 0x0200
Kfdhdb.blksize: 4096; 0x0ba: 0x1000
Kfdhdb.ausize: 1048576; 0x0bc: 0x00100000
Kfdhdb.mfact: 113792; 0x0c0: 0x0001bc80
Kfdhdb.dsksize: 51200; 0x0c4: 0x0000c800
Kfdhdb.pmcnt: 2; 0x0c8: 0x00000002
Kfdhdb.fstlocn: 1; 0x0cc: 0x00000001
Kfdhdb.altlocn: 2; 0x0d0: 0x00000002
Kfdhdb.f1b1locn: 2; 0x0d4: 0x00000002
Kfdhdb.redomirrors [0]: 0; 0x0d8: 0x0000
Kfdhdb.redomirrors [1]: 65535; 0x0da: 0xffff
Kfdhdb.redomirrors [2]: 65535; 0x0dc: 0xffff
Kfdhdb.redomirrors [3]: 65535; 0x0de: 0xffff
Kfdhdb.dbcompat: 168820736; 0x0e0: 0x0a100000
Kfdhdb.grpstmp.hi: 32937833; 0x0e4: HOUR=0x9 DAYS=0x1b MNTH=0x5 YEAR=0x7da
Kfdhdb.grpstmp.lo: 1704339456; 0x0e8: USEC=0x0 MSEC=0x18a SECS=0x19 MINS=0x19
The repair was successful.
6. Recovery of the loss of all disk head information in the disk group:
1) destroy the disk head information of the disk group:
SQL > select DISK_NUMBER,name,path from v$asm_disk where group_number=2
DISK_NUMBER NAME PATH
1 DGTEST_0001 / dev/rhdisk7
0 DGTEST_0000 / dev/rhdisk5
[oracle@p520:/oracle/app/oracle] $dd if=/dev/zero f=/dev/rhdisk5 bs=4096 count=1
1: 0 records in.
1: 0 records out.
[oracle@p520:/oracle/app/oracle] $dd if=/dev/zero f=/dev/rhdisk6 bs=4096 count=1
1: 0 records in.
1: 0 records out.
SQL > alter diskgroup dgtest mount
Alter diskgroup dgtest mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DGTEST"
2) find disk information by looking for file directory disk
We identified hdisk5 as the file directory disk; and found the disk directory disk with the following command:
You can use select name,path from v$asm_disk to find out.
3) find the disk group disk information based on the above information:
Kfed read / dev/rhdisk5 aunum=3 blknum=0 | more
Get the disk hdisk5 disk head information:
Kfddde [0] .entry.incarn: 1; 0x024: Atre1 NUMM=0x0
Kfddde [0] .entry.hash: 0; 0x028: 0x00000000
Kfddde [0] .entry.refer.number: 4294967295; 0x02c: 0xffffffff
Kfddde [0] .entry.refer.incarn: 0; 0x030: Agg0 NUMM=0x0
Kfddde [0] .dsknum: 0; 0x034: 0x0000
Kfddde [0] .state: 2; 0x036: KFDSTA_NORMAL
Kfddde [0] .ub1neighbors: 0; 0x037: 0x00
Kfddde [0] .dskname: DGTEST_0000; 0x038: length=11
Kfddde [0] .fgname: DGTEST_0000; 0x058: length=11
Kfddde [0] .crestmp.hi: 32937866; 0x078: HOUR=0xa DAYS=0x1c MNTH=0x5 YEAR=0x7da
Kfddde [0] .crestmp.lo: 3925069824; 0x07c: USEC=0x0 MSEC=0xf4 SECS=0x1f MINS=0x3a
Kfddde [0] .failstmp.hi: 0; 0x080: HOUR=0x0 DAYS=0x0 MNTH=0x0 YEAR=0x0
Kfddde [0] .failstmp.lo: 0; 0x084: USEC=0x0 MSEC=0x0 SECS=0x0 MINS=0x0
Kfddde [0] .timer: 0; 0x088: 0x00000000
Kfddde [0] .size: 51200; 0x08c: 0x0000c800
Kfddde [0] .duration [0]: 0; 0x090: 0x00000000
Kfddde [0] .duration [1]: 0; 0x094: 0x00000000
Kfddde [0] .duration [2]: 0; 0x098: 0x00000000
Kfddde [0] .duration [3]: 0; 0x09c: 0x00000000
Kfddde [0] .duration [4]: 0; 0x0a0: 0x00000000
Kfddde [0] .starting [0] .start: 0; 0x0a4: 0x00000000
Kfddde [0] .size [0] .size: 51200; 0x0a8: 0x0000c800
Kfddde [0] .cake [0] .used: 90; 0x0ac: 0x0000005a
Kfddde [0] .0x00000000 [0] .duration: 0; 0x0b0: 0x00000000
Get the disk hdisk7 disk head information:
Kfddde [1] .entry.incarn: 1; 0x1e4: Atre1 NUMM=0x0
Kfddde [1] .entry.hash: 1; 0x1e8: 0x00000001
Kfddde [1] .entry.refer.number: 4294967295; 0x1ec: 0xffffffff
Kfddde [1] .entry.refer.incarn: 0; 0x1f0: Agg0 NUMM=0x0
Kfddde [1] .dsknum: 1; 0x1f4: 0x0001
Kfddde [1] .state: 2; 0x1f6: KFDSTA_NORMAL
Kfddde [1] .ub1neighbors: 0; 0x1f7: 0x00
Kfddde [1] .dskname: DGTEST_0001; 0x1f8: length=11
Kfddde [1] .fgname: DGTEST_0001; 0x218: length=11
Kfddde [1] .crestmp.hi: 32937866; 0x238: HOUR=0xa DAYS=0x1c MNTH=0x5 YEAR=0x7da
Kfddde [1] .crestmp.lo: 3925069824; 0x23c: USEC=0x0 MSEC=0xf4 SECS=0x1f MINS=0x3a
Kfddde [1] .failstmp.hi: 0; 0x240: HOUR=0x0 DAYS=0x0 MNTH=0x0 YEAR=0x0
Kfddde [1] .failstmp.lo: 0; 0x244: USEC=0x0 MSEC=0x0 SECS=0x0 MINS=0x0
Kfddde [1] .timer: 0; 0x248: 0x00000000
Kfddde [1] .size: 2048; 0x24c: 0x00000800
Kfddde [1] .duration [0]: 0; 0x250: 0x00000000
Kfddde [1]. 0x00000000 [1]: 0; 0x254: 0x00000000
Kfddde [1]. 0x258 [2]: 0; 0x258: 0x00000000
Kfddde [1]. 0x00000000 [3]: 0; 0x25c: 0x00000000
Kfddde [1]. 0x00000000 [4]: 0; 0x260: 0x00000000
Kfddde [1] .starting [0] .start: 0; 0x264: 0x00000000
Kfddde [1] .size [0] .size: 2048; 0x268: 0x00000800
Kfddde [1]. 0x00000005 [0] .used: 5; 0x26c: 0x00000005
Kfddde [1]. 0x00000000 [0] .duration: 0; 0x270: 0x00000000
4) based on the above information, we regenerate the disk header file information for hdisk5 and hdisk7:
Hdisk5 disk header file information:
Kfbh.endian: 0; 0x000: 0x00
Kfbh.hard: 130,130; 0x001: 0x82
Kfbh.type: 1; 0x002: KFBTYP_DISKHEAD
Kfbh.datfmt: 1; 0x003: 0x01
Kfbh.block.blk: 0; 0x004: titled 0 NUMB=0x0
Kfbh.block.obj: {2147483648}; 0x008: TYPE=0x8 NUMB=0x0
Kfbh.check: 0; 0x00c: 0x750bcb49
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: ORCLDISK; 0x000: length=8
Kfdhdb.driver.reserved [0]: 0; 0x008: 0x00000000
Kfdhdb.driver.reserved [1]: 0; 0x00c: 0x00000000
Kfdhdb.driver.reserved [2]: 0; 0x010: 0x00000000
Kfdhdb.driver.reserved [3]: 0; 0x014: 0x00000000
Kfdhdb.driver.reserved [4]: 0; 0x018: 0x00000000
Kfdhdb.driver.reserved [5]: 0; 0x01c: 0x00000000
Kfdhdb.compat: 168820736; 0x020: 0x0a100000
Kfdhdb.dsknum: {0}; 0x024: 0x0000
Kfdhdb.grptyp: {1}; 0x026: KFDGTP_EXTERNAL
Kfdhdb.hdrsts: {3}; 0x027: KFDHDR_MEMBER
Kfdhdb.dskname: {DGTEST_0000}; 0x028: length=11
Kfdhdb.grpname: {DGTEST}; 0x048: length=6
Kfdhdb.fgname: {DGTEST_0000}; 0x068: length=11
Kfdhdb.capname:; 0x088: length=0
Kfdhdb.crestmp.hi: {32937866}; 0x0a8: HOUR=0xa DAYS=0x1c MNTH=0x5 YEAR=0x7da
Kfdhdb.crestmp.lo: {3925069824}; 0x0ac: USEC=0x0 MSEC=0xf4 SECS=0x1f MINS=0x3a
Kfdhdb.mntstmp.hi: 32937866; 0x0b0: HOUR=0xa DAYS=0x1c MNTH=0x5 YEAR=0x7da
Kfdhdb.mntstmp.lo: 3933855744; 0x0b4: USEC=0x0 MSEC=0x278 SECS=0x27 MINS=0x3a
Kfdhdb.secsize: 512; 0x0b8: 0x0200
Kfdhdb.blksize: 4096; 0x0ba: 0x1000
Kfdhdb.ausize: 1048576; 0x0bc: 0x00100000
Kfdhdb.mfact: 113792; 0x0c0: 0x0001bc80
Kfdhdb.dsksize: {51200}; 0x0c4: 0x0000c800
Kfdhdb.pmcnt: 2; 0x0c8: 0x00000002
Kfdhdb.fstlocn: 1; 0x0cc: 0x00000001
Kfdhdb.altlocn: 2; 0x0d0: 0x00000002
Kfdhdb.f1b1locn: 2; 0x0d4: 0x00000002
Kfdhdb.redomirrors [0]: 0; 0x0d8: 0x0000
Kfdhdb.redomirrors [1]: 0; 0x0da: 0x0000
Kfdhdb.redomirrors [2]: 0; 0x0dc: 0x0000
Kfdhdb.redomirrors [3]: 0; 0x0de: 0x0000
Kfdhdb.dbcompat: 168820736; 0x0e0: 0x0a100000
Kfdhdb.grpstmp.hi: 32937866; 0x0e4: HOUR=0xa DAYS=0x1c MNTH=0x5 YEAR=0x7da
Kfdhdb.grpstmp.lo: 3924577280; 0x0e8: USEC=0x0 MSEC=0x313 SECS=0x1e MINS=0x3a
Kfdhdb.ub4spare [0]: 0; 0x0ec: 0x00000000
Kfdhdb.ub4spare [1]: 0; 0x0f0: 0x00000000
Kfdhdb.ub4spare [2]: 0; 0x0f4: 0x00000000
Kfdhdb.ub4spare [3]: 0; 0x0f8: 0x00000000
Kfdhdb.ub4spare [4]: 0; 0x0fc: 0x00000000
Kfdhdb.ub4spare [5]: 0; 0x100: 0x00000000
Kfdhdb.ub4spare [6]: 0; 0x104: 0x00000000
Kfdhdb.ub4spare [7]: 0; 0x108: 0x00000000
Kfdhdb.ub4spare [8]: 0; 0x10c: 0x00000000
Kfdhdb.ub4spare [9]: 0; 0x110: 0x00000000
Kfdhdb.ub4spare [10]: 0; 0x114: 0x00000000
Kfdhdb.ub4spare [11]: 0; 0x118: 0x00000000
Kfdhdb.ub4spare [12]: 0; 0x11c: 0x00000000
Kfdhdb.ub4spare [13]: 0; 0x120: 0x00000000
Kfdhdb.ub4spare [14]: 0; 0x124: 0x00000000
Kfdhdb.ub4spare [15]: 0; 0x128: 0x00000000
Kfdhdb.ub4spare [16]: 0; 0x12c: 0x00000000
Kfdhdb.ub4spare [17]: 0; 0x130: 0x00000000
Kfdhdb.ub4spare [18]: 0; 0x134: 0x00000000
Kfdhdb.ub4spare [19]: 0; 0x138: 0x00000000
Kfdhdb.ub4spare [20]: 0; 0x13c: 0x00000000
Kfdhdb.ub4spare [21]: 0; 0x140: 0x00000000
Kfdhdb.ub4spare [22]: 0; 0x144: 0x00000000
Kfdhdb.ub4spare [23]: 0; 0x148: 0x00000000
Kfdhdb.ub4spare [24]: 0; 0x14c: 0x00000000
Kfdhdb.ub4spare [25]: 0; 0x150: 0x00000000
Kfdhdb.ub4spare [26]: 0; 0x154: 0x00000000
Kfdhdb.ub4spare [27]: 0; 0x158: 0x00000000
Kfdhdb.ub4spare [28]: 0; 0x15c: 0x00000000
Kfdhdb.ub4spare [29]: 0; 0x160: 0x00000000
Kfdhdb.ub4spare [30]: 0; 0x164: 0x00000000
Kfdhdb.ub4spare [31]: 0; 0x168: 0x00000000
Kfdhdb.ub4spare [32]: 0; 0x16c: 0x00000000
Kfdhdb.ub4spare [33]: 0; 0x170: 0x00000000
Kfdhdb.ub4spare [34]: 0; 0x174: 0x00000000
Kfdhdb.ub4spare [35]: 0; 0x178: 0x00000000
Kfdhdb.ub4spare [36]: 0; 0x17c: 0x00000000
Kfdhdb.ub4spare [37]: 0; 0x180: 0x00000000
Kfdhdb.ub4spare [38]: 0; 0x184: 0x00000000
Kfdhdb.ub4spare [39]: 0; 0x188: 0x00000000
Kfdhdb.ub4spare [40]: 0; 0x18c: 0x00000000
Kfdhdb.ub4spare [41]: 0; 0x190: 0x00000000
Kfdhdb.ub4spare [42]: 0; 0x194: 0x00000000
Kfdhdb.ub4spare [43]: 0; 0x198: 0x00000000
Kfdhdb.ub4spare [44]: 0; 0x19c: 0x00000000
Kfdhdb.ub4spare [45]: 0; 0x1a0: 0x00000000
Kfdhdb.ub4spare [46]: 0; 0x1a4: 0x00000000
Kfdhdb.ub4spare [47]: 0; 0x1a8: 0x00000000
Kfdhdb.ub4spare [48]: 0; 0x1ac: 0x00000000
Kfdhdb.ub4spare [49]: 0; 0x1b0: 0x00000000
Kfdhdb.ub4spare [50]: 0; 0x1b4: 0x00000000
Kfdhdb.ub4spare [51]: 0; 0x1b8: 0x00000000
Kfdhdb.ub4spare [52]: 0; 0x1bc: 0x00000000
Kfdhdb.ub4spare [53]: 0; 0x1c0: 0x00000000
Kfdhdb.ub4spare [54]: 0; 0x1c4: 0x00000000
Kfdhdb.ub4spare [55]: 0; 0x1c8: 0x00000000
Kfdhdb.ub4spare [56]: 0; 0x1cc: 0x00000000
Kfdhdb.ub4spare [57]: 0; 0x1d0: 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
Hdisk7 disk header file information
Kfbh.endian: 0; 0x000: 0x00
Kfbh.hard: 130,130; 0x001: 0x82
Kfbh.type: 1; 0x002: KFBTYP_DISKHEAD
Kfbh.datfmt: 1; 0x003: 0x01
Kfbh.block.blk: 0; 0x004: titled 0 NUMB=0x0
Kfbh.block.obj: {2147483649}; 0x008: TYPE=0x8 NUMB=0x1
Kfbh.check: 1963592522; 0x00c: 0x750a0b4a
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: ORCLDISK; 0x000: length=8
Kfdhdb.driver.reserved [0]: 0; 0x008: 0x00000000
Kfdhdb.driver.reserved [1]: 0; 0x00c: 0x00000000
Kfdhdb.driver.reserved [2]: 0; 0x010: 0x00000000
Kfdhdb.driver.reserved [3]: 0; 0x014: 0x00000000
Kfdhdb.driver.reserved [4]: 0; 0x018: 0x00000000
Kfdhdb.driver.reserved [5]: 0; 0x01c: 0x00000000
Kfdhdb.compat: 168820736; 0x020: 0x0a100000
Kfdhdb.dsknum: {1}; 0x024: 0x0001
Kfdhdb.grptyp: {1}; 0x026: KFDGTP_EXTERNAL
Kfdhdb.hdrsts: {3}; 0x027: KFDHDR_MEMBER
Kfdhdb.dskname: {DGTEST_0001}; 0x028: length=11
Kfdhdb.grpname: {DGTEST}; 0x048: length=6
Kfdhdb.fgname: {DGTEST_0001}; 0x068: length=11
Kfdhdb.capname:; 0x088: length=0
Kfdhdb.crestmp.hi: {32937866}; 0x0a8: HOUR=0xa DAYS=0x1c MNTH=0x5 YEAR=0x7da
Kfdhdb.crestmp.lo: {3925069824}; 0x0ac: USEC=0x0 MSEC=0xf4 SECS=0x1f MINS=0x3a
Kfdhdb.mntstmp.hi: 32937866; 0x0b0: HOUR=0xa DAYS=0x1c MNTH=0x5 YEAR=0x7da
Kfdhdb.mntstmp.lo: 3933855744; 0x0b4: USEC=0x0 MSEC=0x278 SECS=0x27 MINS=0x3a
Kfdhdb.secsize: 512; 0x0b8: 0x0200
Kfdhdb.blksize: 4096; 0x0ba: 0x1000
Kfdhdb.ausize: 1048576; 0x0bc: 0x00100000
Kfdhdb.mfact: 113792; 0x0c0: 0x0001bc80
Kfdhdb.dsksize: {2048}; 0x0c4: 0x00000800
Kfdhdb.pmcnt: 2; 0x0c8: 0x00000002
Kfdhdb.fstlocn: 1; 0x0cc: 0x00000001
Kfdhdb.altlocn: 2; 0x0d0: 0x00000002
Kfdhdb.f1b1locn: 0; 0x0d4: 0x00000000
Kfdhdb.redomirrors [0]: 0; 0x0d8: 0x0000
Kfdhdb.redomirrors [1]: 0; 0x0da: 0x0000
Kfdhdb.redomirrors [2]: 0; 0x0dc: 0x0000
Kfdhdb.redomirrors [3]: 0; 0x0de: 0x0000
Kfdhdb.dbcompat: 168820736; 0x0e0: 0x0a100000
Kfdhdb.grpstmp.hi: 32937866; 0x0e4: HOUR=0xa DAYS=0x1c MNTH=0x5 YEAR=0x7da
Kfdhdb.grpstmp.lo: 3924577280; 0x0e8: USEC=0x0 MSEC=0x313 SECS=0x1e MINS=0x3a
Kfdhdb.ub4spare [0]: 0; 0x0ec: 0x00000000
Kfdhdb.ub4spare [1]: 0; 0x0f0: 0x00000000
Kfdhdb.ub4spare [2]: 0; 0x0f4: 0x00000000
Kfdhdb.ub4spare [3]: 0; 0x0f8: 0x00000000
Kfdhdb.ub4spare [4]: 0; 0x0fc: 0x00000000
Kfdhdb.ub4spare [5]: 0; 0x100: 0x00000000
Kfdhdb.ub4spare [6]: 0; 0x104: 0x00000000
Kfdhdb.ub4spare [7]: 0; 0x108: 0x00000000
Kfdhdb.ub4spare [8]: 0; 0x10c: 0x00000000
Kfdhdb.ub4spare [9]: 0; 0x110: 0x00000000
Kfdhdb.ub4spare [10]: 0; 0x114: 0x00000000
Kfdhdb.ub4spare [11]: 0; 0x118: 0x00000000
Kfdhdb.ub4spare [12]: 0; 0x11c: 0x00000000
Kfdhdb.ub4spare [13]: 0; 0x120: 0x00000000
Kfdhdb.ub4spare [14]: 0; 0x124: 0x00000000
Kfdhdb.ub4spare [15]: 0; 0x128: 0x00000000
Kfdhdb.ub4spare [16]: 0; 0x12c: 0x00000000
Kfdhdb.ub4spare [17]: 0; 0x130: 0x00000000
Kfdhdb.ub4spare [18]: 0; 0x134: 0x00000000
Kfdhdb.ub4spare [19]: 0; 0x138: 0x00000000
Kfdhdb.ub4spare [20]: 0; 0x13c: 0x00000000
Kfdhdb.ub4spare [21]: 0; 0x140: 0x00000000
Kfdhdb.ub4spare [22]: 0; 0x144: 0x00000000
Kfdhdb.ub4spare [23]: 0; 0x148: 0x00000000
Kfdhdb.ub4spare [24]: 0; 0x14c: 0x00000000
Kfdhdb.ub4spare [25]: 0; 0x150: 0x00000000
Kfdhdb.ub4spare [26]: 0; 0x154: 0x00000000
Kfdhdb.ub4spare [27]: 0; 0x158: 0x00000000
Kfdhdb.ub4spare [28]: 0; 0x15c: 0x00000000
Kfdhdb.ub4spare [29]: 0; 0x160: 0x00000000
Kfdhdb.ub4spare [30]: 0; 0x164: 0x00000000
Kfdhdb.ub4spare [31]: 0; 0x168: 0x00000000
Kfdhdb.ub4spare [32]: 0; 0x16c: 0x00000000
Kfdhdb.ub4spare [33]: 0; 0x170: 0x00000000
Kfdhdb.ub4spare [34]: 0; 0x174: 0x00000000
Kfdhdb.ub4spare [35]: 0; 0x178: 0x00000000
Kfdhdb.ub4spare [36]: 0; 0x17c: 0x00000000
Kfdhdb.ub4spare [37]: 0; 0x180: 0x00000000
Kfdhdb.ub4spare [38]: 0; 0x184: 0x00000000
Kfdhdb.ub4spare [39]: 0; 0x188: 0x00000000
Kfdhdb.ub4spare [40]: 0; 0x18c: 0x00000000
Kfdhdb.ub4spare [41]: 0; 0x190: 0x00000000
Kfdhdb.ub4spare [42]: 0; 0x194: 0x00000000
Kfdhdb.ub4spare [43]: 0; 0x198: 0x00000000
Kfdhdb.ub4spare [44]: 0; 0x19c: 0x00000000
Kfdhdb.ub4spare [45]: 0; 0x1a0: 0x00000000
Kfdhdb.ub4spare [46]: 0; 0x1a4: 0x00000000
Kfdhdb.ub4spare [47]: 0; 0x1a8: 0x00000000
Kfdhdb.ub4spare [48]: 0; 0x1ac: 0x00000000
Kfdhdb.ub4spare [49]: 0; 0x1b0: 0x00000000
Kfdhdb.ub4spare [50]: 0; 0x1b4: 0x00000000
Kfdhdb.ub4spare [51]: 0; 0x1b8: 0x00000000
Kfdhdb.ub4spare [52]: 0; 0x1bc: 0x00000000
Kfdhdb.ub4spare [53]: 0; 0x1c0: 0x00000000
Kfdhdb.ub4spare [54]: 0; 0x1c4: 0x00000000
Kfdhdb.ub4spare [55]: 0; 0x1c8: 0x00000000
Kfdhdb.ub4spare [56]: 0; 0x1cc: 0x00000000
Kfdhdb.ub4spare [57]: 0; 0x1d0: 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
5) restore the disk head:
Kfed merge disk head information:
[oracle@p520:/oracle/app/oracle] $kfed merge / dev/rhdisk5 text=hdisk5.txt
[oracle@p520:/oracle/app/oracle] $kfed merge / dev/rhdisk7 text=hdisk7.txt
SQL > select name,state from v$asm_diskgroup
Name state
--
DGTEST DISMOUNTED
SQL > alter diskgroup dgtest mount
Diskgroup altered.
The repair was successful.
IV. Summary of the experiment
1. The idea of repairing disk head information:
Find file directory, then find disk directory according to file directory.
Find out the disk information according to disk directory, edit the disk header file manually, and finally use kfed merge to generate the disk header.
information.
2. File directory is usually in the position of a disk au=2 in the disk group. If the disk group has been deleted or added to the disk group,
File directory is not necessarily in the location of au=2 and needs to be found manually.
3. For customers who use asm, it is recommended to back up the disk head information.
4. The customer's production database should be backed up.
5. Oracle 11g already has tools for manipulating disk head information in amdu,10g environment. If you want to use it, you need to download it separately. Refer to the METALINK documentation.
Placeholder for AMDU binaries and using with ASM 10g [ID 553639.1] .
6. The recommended oracle version for kfed tool is above 10.2.0.2, and oracle 10.2.0.1 will have bug.
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.