分析结论
1,oracle 11.2.0.4 kfed可以直接使用,不用编译
2,dd if=/dev/zero of=/dev/asm_mount bs=4096 count=1
可以破坏ASM磁盘头信息
3,ASM磁盘组无法加载的报错如下
SQL> alter diskgroup dg_mount mount;
alter diskgroup dg_mount mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15017: diskgroup "DG_MOUNT" cannot be mounted
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DG_MOUNT"
4,asm磁盘头损坏后用KFED读取报错如下
可见ASM磁盘发现问题,其元数据全部变成了0,这是异常的
[grid@zxy ~]$ kfed read /dev/asm_mount
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: blk=0
kfbh.block.obj: 0 ; 0x008: file=0
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
7FF812D7B400 00000000 00000000 00000000 00000000 [................]
Repeat 255 times
KFED-00322: Invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][0]
5,asm磁盘头的元数据在0 号 数据块
其备份的元数据在510号数据块
6,kfed repair /dev/asm_mount 可以基于备份块恢复ASM磁盘头
7, 从ASM磁盘头备份出来的文本文件恢复ASM磁盘头的元数据
[grid@zxy ~]$ kfed write /dev/asm_mount aun=0 blknum=0 text=asm_header_backup.txt
8,把ASM磁盘头的信息备份到一个文本文件中
[grid@zxy ~]$ kfed read /dev/asm_mount aun=0 blknum=0 text=asm_header_backup.txt
9,可以用LINUX的strace分析跟踪ASM磁盘的操作
[grid@zxy ~]$ strace -o asm_learn.log kfed repair /dev/asm_mount
[grid@zxy ~]$
[grid@zxy ~]$ ls -l asm_learn.log
-rw-r--r--. 1 grid oinstall 30434 May 25 14:37 asm_learn.log
从STRACE日志分析可知,lseek定位ASM磁盘,定位到2088960数据块,然后读取它的信息,再定位到0数据块,然后通过WRITE把数据写进去
access("/dev/asm_mount", F_OK) = 0
statfs("/dev/asm_mount", {f_type=0x1021994, f_bsize=4096, f_blocks=367554, f_bfree=367510, f_bavail=367510, f_files=367554, f_ffree=366894, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
open("/dev/asm_mount", O_RDWR) = 7
lseek(7, 2088960, SEEK_SET) = 2088960
read(7, "\1\202\1\1\376\0\0\0\0\0\0\200\247S\231\2268\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
lseek(7, 0, SEEK_SET) = 0
read(7, "\1\202\1\1\0\0\0\0\0\0\0\200YS\231\2268\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
lseek(7, 0, SEEK_SET) = 0
write(7, "\1\202\1\1\0\0\0\0\0\0\0\200YS\231\2268\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
close(7) = 0
经查阅可知,fd为要定位的文件,offset为文件的偏移位置,whence为对应的指令,具体见下
[grid@zxy ~]$ man lseek
LSEEK(2) Linux Programmer’s Manual LSEEK(2)
分析明细
1,操作系统版本
[root@zxy ~]# more /etc/redhat-release
Red Hat Enterprise Linux Server release 6.5 (Santiago)
[root@zxy ~]#
2,查询ASM磁盘组信息
[root@zxy ~]# su - grid
mount: only root can do that
[grid@zxy ~]$ sqlplus '/as sysasm'
SQL*Plus: Release 11.2.0.4.0 Production on Wed May 24 22:36:25 2017
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Automatic Storage Management option
SQL>
SQL> r
1* select group_number,name,state,type,total_mb,free_mb,voting_files from v$asm_diskgroup
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB V
------------ ------------------------------ ----------- ------ ---------- ---------- -
1 ASM_OCRVOTE MOUNTED EXTERN 5120 5052 N
2 DG_MOUNT MOUNTED EXTERN 10240 7563 N
SQL> r
1* select group_number,disk_number,mount_status,header_status,state,redundancy,os_mb,total_mb,free_mb,name,path from v$asm_disk where group_number=2
GROUP_NUMBER DISK_NUMBER MOUNT_S HEADER_STATU STATE REDUNDA OS_MB TOTAL_MB FREE_MB NAME PATH
------------ ----------- ------- ------------ -------- ------- ---------- ---------- ---------- ------------------------------ --------------------------------------------------
2 0 CACHED MEMBER NORMAL UNKNOWN 10240 10240 7563 DG_MOUNT_0000 /dev/asm_mount
SQL>
3,查询kfed命令含义
[grid@zxy ~]$ id
uid=501(grid) gid=500(oinstall) groups=500(oinstall),501(dba),503(asmadmin),504(asmdba),505(asmoper) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[grid@zxy ~]$ kfed -help
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]
[grid@zxy ~]$
4,查询ASM配置文件获取ASM磁盘
[grid@zxy ~]$ more /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sdb",BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sdb",RESULT=="1ATA_VBOX_HARDDISK_VB064152c0-89688a5f",NAME="asm_ocrvote",OWNER="g
rid",GROUP="asmadmin",MODE="0660"
KERNEL=="sdc",BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sdc",RESULT=="1ATA_VBOX_HARDDISK_VBfa2191a6-5377b087",NAME="asm_mount",OWNER="gri
d",GROUP="asmadmin",MODE="0660"
5,只能用KFED读取ASM磁盘,而不能直接读取操作系统/DEV/SBX
[grid@zxy ~]$ kfed read /dev/sdc
KFED-00303: unable to open file '/dev/sdc'
6,asm磁盘头的信息损坏后,其相关信息变成为0
[grid@zxy ~]$ kfed read /dev/asm_mount
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: 95329940 ; 0x00c: 0x05ae9e94
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: 186646528 ; 0x020: 0x0b200000
kfdhdb.dsknum: 0 ; 0x024: 0x0000
kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL
kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
kfdhdb.dskname: DG_MOUNT_0000 ; 0x028: length=13
kfdhdb.grpname: DG_MOUNT ; 0x048: length=8
kfdhdb.fgname: DG_MOUNT_0000 ; 0x068: length=13
kfdhdb.capname: ; 0x088: length=0
kfdhdb.crestmp.hi: 33052113 ; 0x0a8: HOUR=0x11 DAYS=0xe MNTH=0x5 YEAR=0x7e1
kfdhdb.crestmp.lo: 592004096 ; 0x0ac: USEC=0x0 MSEC=0x251 SECS=0x34 MINS=0x8
kfdhdb.mntstmp.hi: 33052438 ; 0x0b0: HOUR=0x16 DAYS=0x18 MNTH=0x5 YEAR=0x7e1
kfdhdb.mntstmp.lo: 2306472960 ; 0x0b4: USEC=0x0 MSEC=0x27f SECS=0x17 MINS=0x22
kfdhdb.secsize: 512 ; 0x0b8: 0x0200
kfdhdb.blksize: 4096 ; 0x0ba: 0x1000
kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000
kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80
kfdhdb.dsksize: 10240 ; 0x0c4: 0x00002800
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: 33052113 ; 0x0e4: HOUR=0x11 DAYS=0xe MNTH=0x5 YEAR=0x7e1
kfdhdb.grpstmp.lo: 591817728 ; 0x0e8: USEC=0x0 MSEC=0x19b SECS=0x34 MINS=0x8
kfdhdb.vfstart: 0 ; 0x0ec: 0x00000000
kfdhdb.vfend: 0 ; 0x0f0: 0x00000000
kfdhdb.spfile: 0 ; 0x0f4: 0x00000000
kfdhdb.spfflg: 0 ; 0x0f8: 0x00000000
kfdhdb.ub4spare[0]: 0 ; 0x0fc: 0x00000000
kfdhdb.ub4spare[1]: 0 ; 0x100: 0x00000000
kfdhdb.ub4spare[2]: 0 ; 0x104: 0x00000000
kfdhdb.ub4spare[3]: 0 ; 0x108: 0x00000000
kfdhdb.ub4spare[4]: 0 ; 0x10c: 0x00000000
kfdhdb.ub4spare[5]: 0 ; 0x110: 0x00000000
kfdhdb.ub4spare[6]: 0 ; 0x114: 0x00000000
kfdhdb.ub4spare[7]: 0 ; 0x118: 0x00000000
kfdhdb.ub4spare[8]: 0 ; 0x11c: 0x00000000
kfdhdb.ub4spare[9]: 0 ; 0x120: 0x00000000
kfdhdb.ub4spare[10]: 0 ; 0x124: 0x00000000
kfdhdb.ub4spare[11]: 0 ; 0x128: 0x00000000
kfdhdb.ub4spare[12]: 0 ; 0x12c: 0x00000000
kfdhdb.ub4spare[13]: 0 ; 0x130: 0x00000000
kfdhdb.ub4spare[14]: 0 ; 0x134: 0x00000000
kfdhdb.ub4spare[15]: 0 ; 0x138: 0x00000000
kfdhdb.ub4spare[16]: 0 ; 0x13c: 0x00000000
kfdhdb.ub4spare[17]: 0 ; 0x140: 0x00000000
kfdhdb.ub4spare[18]: 0 ; 0x144: 0x00000000
kfdhdb.ub4spare[19]: 0 ; 0x148: 0x00000000
kfdhdb.ub4spare[20]: 0 ; 0x14c: 0x00000000
kfdhdb.ub4spare[21]: 0 ; 0x150: 0x00000000
kfdhdb.ub4spare[22]: 0 ; 0x154: 0x00000000
kfdhdb.ub4spare[23]: 0 ; 0x158: 0x00000000
kfdhdb.ub4spare[24]: 0 ; 0x15c: 0x00000000
kfdhdb.ub4spare[25]: 0 ; 0x160: 0x00000000
kfdhdb.ub4spare[26]: 0 ; 0x164: 0x00000000
kfdhdb.ub4spare[27]: 0 ; 0x168: 0x00000000
kfdhdb.ub4spare[28]: 0 ; 0x16c: 0x00000000
kfdhdb.ub4spare[29]: 0 ; 0x170: 0x00000000
kfdhdb.ub4spare[30]: 0 ; 0x174: 0x00000000
kfdhdb.ub4spare[31]: 0 ; 0x178: 0x00000000
kfdhdb.ub4spare[32]: 0 ; 0x17c: 0x00000000
kfdhdb.ub4spare[33]: 0 ; 0x180: 0x00000000
kfdhdb.ub4spare[34]: 0 ; 0x184: 0x00000000
kfdhdb.ub4spare[35]: 0 ; 0x188: 0x00000000
kfdhdb.ub4spare[36]: 0 ; 0x18c: 0x00000000
kfdhdb.ub4spare[37]: 0 ; 0x190: 0x00000000
kfdhdb.ub4spare[38]: 0 ; 0x194: 0x00000000
kfdhdb.ub4spare[39]: 0 ; 0x198: 0x00000000
kfdhdb.ub4spare[40]: 0 ; 0x19c: 0x00000000
kfdhdb.ub4spare[41]: 0 ; 0x1a0: 0x00000000
kfdhdb.ub4spare[42]: 0 ; 0x1a4: 0x00000000
kfdhdb.ub4spare[43]: 0 ; 0x1a8: 0x00000000
kfdhdb.ub4spare[44]: 0 ; 0x1ac: 0x00000000
kfdhdb.ub4spare[45]: 0 ; 0x1b0: 0x00000000
kfdhdb.ub4spare[46]: 0 ; 0x1b4: 0x00000000
kfdhdb.ub4spare[47]: 0 ; 0x1b8: 0x00000000
kfdhdb.ub4spare[48]: 0 ; 0x1bc: 0x00000000
kfdhdb.ub4spare[49]: 0 ; 0x1c0: 0x00000000
kfdhdb.ub4spare[50]: 0 ; 0x1c4: 0x00000000
kfdhdb.ub4spare[51]: 0 ; 0x1c8: 0x00000000
kfdhdb.ub4spare[52]: 0 ; 0x1cc: 0x00000000
kfdhdb.ub4spare[53]: 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
[grid@zxy ~]$
[grid@zxy ~]$ kfed read /dev/asm_mount|wc -l
108
6,关闭虚拟机
7,添加新的10虚拟硬盘,用于添加到ASM 磁盘组 DG_MOUNT中
[root@zxy ~]# !275
/u01/app/11.2.0.4/grid/bin/crsctl stop has
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'zxy'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'zxy'
CRS-2673: Attempting to stop 'ora.ASM_OCRVOTE.dg' on 'zxy'
CRS-2673: Attempting to stop 'ora.DG_MOUNT.dg' on 'zxy'
CRS-2677: Stop of 'ora.DG_MOUNT.dg' on 'zxy' succeeded
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'zxy' succeeded
CRS-2677: Stop of 'ora.ASM_OCRVOTE.dg' on 'zxy' succeeded
CRS-2679: Attempting to clean 'ora.ASM_OCRVOTE.dg' on 'zxy'
CRS-2681: Clean of 'ora.ASM_OCRVOTE.dg' on 'zxy' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'zxy'
CRS-2677: Stop of 'ora.asm' on 'zxy' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'zxy'
CRS-2677: Stop of 'ora.cssd' on 'zxy' succeeded
CRS-2673: Attempting to stop 'ora.evmd' on 'zxy'
CRS-2677: Stop of 'ora.evmd' on 'zxy' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'zxy' has completed
CRS-4133: Oracle High Availability Services has been stopped.
[root@zxy ~]# init 0
8,重启操作系统
9,配置新增的ASM 磁盘
[root@zxy ~]# /sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sdd
1ATA_VBOX_HARDDISK_VB6eb45221-d71c1c4a
[root@zxy ~]# tail -1f /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sdd",BUS=="scsi",PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/sdd",RESULT=="1ATA_VBOX_HARDDISK_VB6eb45221-d71c1c4a",NAME="asm_base",OWNER="grid",GROUP="asmadmin",MODE="0660"
[root@zxy ~]# start_udev
Starting udev: [ OK ]
[root@zxy ~]# ps -ef|grep d.bin
grid 1652 1 0 11:58 ? 00:00:06 /u01/app/11.2.0.4/grid/bin/ohasd.bin reboot
grid 1797 1 0 12:00 ? 00:00:02 /u01/app/11.2.0.4/grid/bin/oraagent.bin
grid 1812 1 0 12:00 ? 00:00:00 /u01/app/11.2.0.4/grid/bin/evmd.bin
grid 1814 1 0 12:00 ? 00:00:00 /u01/app/11.2.0.4/grid/bin/tnslsnr LISTENER -inherit
grid 1851 1812 0 12:00 ? 00:00:00 /u01/app/11.2.0.4/grid/bin/evmlogger.bin -o /u01/app/11.2.0.4/grid/evm/log/evmlogger.info -l /u01/app/11.2.0.4/grid/evm/log/evmlogger.log
grid 1855 1 0 12:00 ? 00:00:00 /u01/app/11.2.0.4/grid/bin/cssdagent
grid 1877 1 0 12:00 ? 00:00:00 /u01/app/11.2.0.4/grid/bin/ocssd.bin
root 3291 2070 0 12:24 pts/0 00:00:00 grep d.bin
[root@zxy ~]#
[root@zxy ~]# ls -l /dev/asm*
brw-rw----. 1 grid asmadmin 8, 48 May 25 12:23 /dev/asm_base
brw-rw----. 1 grid asmadmin 8, 32 May 25 12:24 /dev/asm_mount
brw-rw----. 1 grid asmadmin 8, 16 May 25 12:24 /dev/asm_ocrvote
10,在ASM实例验证新增的ASM DISK
SQL> select group_number,disk_number,mount_status,header_status,state,redundancy,os_mb,total_mb,free_mb,name,path from v$asm_disk where path='/dev/asm_base';
GROUP_NUMBER DISK_NUMBER MOUNT_S HEADER_STATU STATE REDUNDA OS_MB TOTAL_MB FREE_MB NAME PATH
------------ ----------- ------- ------------ -------- ------- ---------- ---------- ---------- ------------------------------ ------------------------------
0 0 CLOSED CANDIDATE NORMAL UNKNOWN 10240 0 0 /dev/asm_base
11,把新增ASM DISK添加到ASM DISKGROUP
SQL> select group_number,name,state,type,total_mb,free_mb,voting_files from v$asm_diskgroup;
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB V
------------ ------------------------------ ----------- ------ ---------- ---------- -
1 ASM_OCRVOTE MOUNTED EXTERN 5120 5052 N
2 DG_MOUNT MOUNTED EXTERN 10240 7563 N
SQL> alter diskgroup dg_mount add disk '/dev/asm_base';
Diskgroup altered.
SQL> select group_number,name,state,type,total_mb,free_mb,voting_files from v$asm_diskgroup;
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB V
------------ ------------------------------ ----------- ------ ---------- ---------- -
1 ASM_OCRVOTE MOUNTED EXTERN 5120 5052 N
2 DG_MOUNT MOUNTED EXTERN 20480 17801 N
12,基于ASM DISKGROUP创建数据库实例扫描ASM DISK的底层存储信息
----/dev/asm_mount
[grid@zxy ~]$ kfed read /dev/asm_mount
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: 4251885403 ; 0x00c: 0xfd6e9f5b
kfbh.fcn.base: 3896 ; 0x010: 0x00000f38
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: 186646528 ; 0x020: 0x0b200000
kfdhdb.dsknum: 0 ; 0x024: 0x0000
kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL
kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
kfdhdb.dskname: DG_MOUNT_0000 ; 0x028: length=13
kfdhdb.grpname: DG_MOUNT ; 0x048: length=8
kfdhdb.fgname: DG_MOUNT_0000 ; 0x068: length=13
kfdhdb.capname: ; 0x088: length=0
kfdhdb.crestmp.hi: 33052113 ; 0x0a8: HOUR=0x11 DAYS=0xe MNTH=0x5 YEAR=0x7e1
kfdhdb.crestmp.lo: 592004096 ; 0x0ac: USEC=0x0 MSEC=0x251 SECS=0x34 MINS=0x8
kfdhdb.mntstmp.hi: 33052460 ; 0x0b0: HOUR=0xc DAYS=0x19 MNTH=0x5 YEAR=0x7e1
kfdhdb.mntstmp.lo: 34348032 ; 0x0b4: USEC=0x0 MSEC=0x307 SECS=0x20 MINS=0x0
kfdhdb.secsize: 512 ; 0x0b8: 0x0200
kfdhdb.blksize: 4096 ; 0x0ba: 0x1000
kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000
kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80
kfdhdb.dsksize: 10240 ; 0x0c4: 0x00002800
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: 33052113 ; 0x0e4: HOUR=0x11 DAYS=0xe MNTH=0x5 YEAR=0x7e1
kfdhdb.grpstmp.lo: 591817728 ; 0x0e8: USEC=0x0 MSEC=0x19b SECS=0x34 MINS=0x8
kfdhdb.vfstart: 0 ; 0x0ec: 0x00000000
kfdhdb.vfend: 0 ; 0x0f0: 0x00000000
kfdhdb.spfile: 0 ; 0x0f4: 0x00000000
kfdhdb.spfflg: 0 ; 0x0f8: 0x00000000
kfdhdb.ub4spare[0]: 0 ; 0x0fc: 0x00000000
kfdhdb.ub4spare[1]: 0 ; 0x100: 0x00000000
kfdhdb.ub4spare[2]: 0 ; 0x104: 0x00000000
kfdhdb.ub4spare[3]: 0 ; 0x108: 0x00000000
kfdhdb.ub4spare[4]: 0 ; 0x10c: 0x00000000
kfdhdb.ub4spare[5]: 0 ; 0x110: 0x00000000
kfdhdb.ub4spare[6]: 0 ; 0x114: 0x00000000
kfdhdb.ub4spare[7]: 0 ; 0x118: 0x00000000
kfdhdb.ub4spare[8]: 0 ; 0x11c: 0x00000000
kfdhdb.ub4spare[9]: 0 ; 0x120: 0x00000000
kfdhdb.ub4spare[10]: 0 ; 0x124: 0x00000000
kfdhdb.ub4spare[11]: 0 ; 0x128: 0x00000000
kfdhdb.ub4spare[12]: 0 ; 0x12c: 0x00000000
kfdhdb.ub4spare[13]: 0 ; 0x130: 0x00000000
kfdhdb.ub4spare[14]: 0 ; 0x134: 0x00000000
kfdhdb.ub4spare[15]: 0 ; 0x138: 0x00000000
kfdhdb.ub4spare[16]: 0 ; 0x13c: 0x00000000
kfdhdb.ub4spare[17]: 0 ; 0x140: 0x00000000
kfdhdb.ub4spare[18]: 0 ; 0x144: 0x00000000
kfdhdb.ub4spare[19]: 0 ; 0x148: 0x00000000
kfdhdb.ub4spare[20]: 0 ; 0x14c: 0x00000000
kfdhdb.ub4spare[21]: 0 ; 0x150: 0x00000000
kfdhdb.ub4spare[22]: 0 ; 0x154: 0x00000000
kfdhdb.ub4spare[23]: 0 ; 0x158: 0x00000000
kfdhdb.ub4spare[24]: 0 ; 0x15c: 0x00000000
kfdhdb.ub4spare[25]: 0 ; 0x160: 0x00000000
kfdhdb.ub4spare[26]: 0 ; 0x164: 0x00000000
kfdhdb.ub4spare[27]: 0 ; 0x168: 0x00000000
kfdhdb.ub4spare[28]: 0 ; 0x16c: 0x00000000
kfdhdb.ub4spare[29]: 0 ; 0x170: 0x00000000
kfdhdb.ub4spare[30]: 0 ; 0x174: 0x00000000
kfdhdb.ub4spare[31]: 0 ; 0x178: 0x00000000
kfdhdb.ub4spare[32]: 0 ; 0x17c: 0x00000000
kfdhdb.ub4spare[33]: 0 ; 0x180: 0x00000000
kfdhdb.ub4spare[34]: 0 ; 0x184: 0x00000000
kfdhdb.ub4spare[35]: 0 ; 0x188: 0x00000000
kfdhdb.ub4spare[36]: 0 ; 0x18c: 0x00000000
kfdhdb.ub4spare[37]: 0 ; 0x190: 0x00000000
kfdhdb.ub4spare[38]: 0 ; 0x194: 0x00000000
kfdhdb.ub4spare[39]: 0 ; 0x198: 0x00000000
kfdhdb.ub4spare[40]: 0 ; 0x19c: 0x00000000
kfdhdb.ub4spare[41]: 0 ; 0x1a0: 0x00000000
kfdhdb.ub4spare[42]: 0 ; 0x1a4: 0x00000000
kfdhdb.ub4spare[43]: 0 ; 0x1a8: 0x00000000
kfdhdb.ub4spare[44]: 0 ; 0x1ac: 0x00000000
kfdhdb.ub4spare[45]: 0 ; 0x1b0: 0x00000000
kfdhdb.ub4spare[46]: 0 ; 0x1b4: 0x00000000
kfdhdb.ub4spare[47]: 0 ; 0x1b8: 0x00000000
kfdhdb.ub4spare[48]: 0 ; 0x1bc: 0x00000000
kfdhdb.ub4spare[49]: 0 ; 0x1c0: 0x00000000
kfdhdb.ub4spare[50]: 0 ; 0x1c4: 0x00000000
kfdhdb.ub4spare[51]: 0 ; 0x1c8: 0x00000000
kfdhdb.ub4spare[52]: 0 ; 0x1cc: 0x00000000
kfdhdb.ub4spare[53]: 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
[grid@zxy ~]$
[grid@zxy ~]$ kfed read /dev/asm_base
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: 2147483649 ; 0x008: disk=1
kfbh.check: 2946379607 ; 0x00c: 0xaf9e2f57
kfbh.fcn.base: 3846 ; 0x010: 0x00000f06
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: 186646528 ; 0x020: 0x0b200000
kfdhdb.dsknum: 1 ; 0x024: 0x0001
kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL
kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
kfdhdb.dskname: DG_MOUNT_0001 ; 0x028: length=13
kfdhdb.grpname: DG_MOUNT ; 0x048: length=8
kfdhdb.fgname: DG_MOUNT_0001 ; 0x068: length=13
kfdhdb.capname: ; 0x088: length=0
kfdhdb.crestmp.hi: 33052460 ; 0x0a8: HOUR=0xc DAYS=0x19 MNTH=0x5 YEAR=0x7e1
kfdhdb.crestmp.lo: 1821450240 ; 0x0ac: USEC=0x0 MSEC=0x48 SECS=0x9 MINS=0x1b
kfdhdb.mntstmp.hi: 33052460 ; 0x0b0: HOUR=0xc DAYS=0x19 MNTH=0x5 YEAR=0x7e1
kfdhdb.mntstmp.lo: 1821451264 ; 0x0b4: USEC=0x0 MSEC=0x49 SECS=0x9 MINS=0x1b
kfdhdb.secsize: 512 ; 0x0b8: 0x0200
kfdhdb.blksize: 4096 ; 0x0ba: 0x1000
kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000
kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80
kfdhdb.dsksize: 10240 ; 0x0c4: 0x00002800
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: 33052113 ; 0x0e4: HOUR=0x11 DAYS=0xe MNTH=0x5 YEAR=0x7e1
kfdhdb.grpstmp.lo: 591817728 ; 0x0e8: USEC=0x0 MSEC=0x19b SECS=0x34 MINS=0x8
kfdhdb.vfstart: 0 ; 0x0ec: 0x00000000
kfdhdb.vfend: 0 ; 0x0f0: 0x00000000
kfdhdb.spfile: 0 ; 0x0f4: 0x00000000
kfdhdb.spfflg: 0 ; 0x0f8: 0x00000000
kfdhdb.ub4spare[0]: 0 ; 0x0fc: 0x00000000
kfdhdb.ub4spare[1]: 0 ; 0x100: 0x00000000
kfdhdb.ub4spare[2]: 0 ; 0x104: 0x00000000
kfdhdb.ub4spare[3]: 0 ; 0x108: 0x00000000
kfdhdb.ub4spare[4]: 0 ; 0x10c: 0x00000000
kfdhdb.ub4spare[5]: 0 ; 0x110: 0x00000000
kfdhdb.ub4spare[6]: 0 ; 0x114: 0x00000000
kfdhdb.ub4spare[7]: 0 ; 0x118: 0x00000000
kfdhdb.ub4spare[8]: 0 ; 0x11c: 0x00000000
kfdhdb.ub4spare[9]: 0 ; 0x120: 0x00000000
kfdhdb.ub4spare[10]: 0 ; 0x124: 0x00000000
kfdhdb.ub4spare[11]: 0 ; 0x128: 0x00000000
kfdhdb.ub4spare[12]: 0 ; 0x12c: 0x00000000
kfdhdb.ub4spare[13]: 0 ; 0x130: 0x00000000
kfdhdb.ub4spare[14]: 0 ; 0x134: 0x00000000
kfdhdb.ub4spare[15]: 0 ; 0x138: 0x00000000
kfdhdb.ub4spare[16]: 0 ; 0x13c: 0x00000000
kfdhdb.ub4spare[17]: 0 ; 0x140: 0x00000000
kfdhdb.ub4spare[18]: 0 ; 0x144: 0x00000000
kfdhdb.ub4spare[19]: 0 ; 0x148: 0x00000000
kfdhdb.ub4spare[20]: 0 ; 0x14c: 0x00000000
kfdhdb.ub4spare[21]: 0 ; 0x150: 0x00000000
kfdhdb.ub4spare[22]: 0 ; 0x154: 0x00000000
kfdhdb.ub4spare[23]: 0 ; 0x158: 0x00000000
kfdhdb.ub4spare[24]: 0 ; 0x15c: 0x00000000
kfdhdb.ub4spare[25]: 0 ; 0x160: 0x00000000
kfdhdb.ub4spare[26]: 0 ; 0x164: 0x00000000
kfdhdb.ub4spare[27]: 0 ; 0x168: 0x00000000
kfdhdb.ub4spare[28]: 0 ; 0x16c: 0x00000000
kfdhdb.ub4spare[29]: 0 ; 0x170: 0x00000000
kfdhdb.ub4spare[30]: 0 ; 0x174: 0x00000000
kfdhdb.ub4spare[31]: 0 ; 0x178: 0x00000000
kfdhdb.ub4spare[32]: 0 ; 0x17c: 0x00000000
kfdhdb.ub4spare[33]: 0 ; 0x180: 0x00000000
kfdhdb.ub4spare[34]: 0 ; 0x184: 0x00000000
kfdhdb.ub4spare[35]: 0 ; 0x188: 0x00000000
kfdhdb.ub4spare[36]: 0 ; 0x18c: 0x00000000
kfdhdb.ub4spare[37]: 0 ; 0x190: 0x00000000
kfdhdb.ub4spare[38]: 0 ; 0x194: 0x00000000
kfdhdb.ub4spare[39]: 0 ; 0x198: 0x00000000
kfdhdb.ub4spare[40]: 0 ; 0x19c: 0x00000000
kfdhdb.ub4spare[41]: 0 ; 0x1a0: 0x00000000
kfdhdb.ub4spare[42]: 0 ; 0x1a4: 0x00000000
kfdhdb.ub4spare[43]: 0 ; 0x1a8: 0x00000000
kfdhdb.ub4spare[44]: 0 ; 0x1ac: 0x00000000
kfdhdb.ub4spare[45]: 0 ; 0x1b0: 0x00000000
kfdhdb.ub4spare[46]: 0 ; 0x1b4: 0x00000000
kfdhdb.ub4spare[47]: 0 ; 0x1b8: 0x00000000
kfdhdb.ub4spare[48]: 0 ; 0x1bc: 0x00000000
kfdhdb.ub4spare[49]: 0 ; 0x1c0: 0x00000000
kfdhdb.ub4spare[50]: 0 ; 0x1c4: 0x00000000
kfdhdb.ub4spare[51]: 0 ; 0x1c8: 0x00000000
kfdhdb.ub4spare[52]: 0 ; 0x1cc: 0x00000000
kfdhdb.ub4spare[53]: 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
[grid@zxy ~]$
13,创建数据库实例
dbca -silent -createDatabase -templateName $ORACLE_HOME/assistants/dbca/templates/New_Database.dbt -gdbName god -sysPassword system -systemPassword system -emConfiguration NONE \
-disableSecurityConfiguration ALL -storageType ASM -asmsnmpPassword system -diskGroupName DG_MOUNT -nodelist zxy \
-characterSet AL32UTF8 -nationalCharacterSet AL16UTF16 -sampleSchema false -memoryPercentage 30 -databaseType OLTP
12:33 begin create db instance
14,创建数据库实例后扫描ASM磁盘的信息
[grid@zxy ~]$ kfed read /dev/asm_mount
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: 4251885403 ; 0x00c: 0xfd6e9f5b
kfbh.fcn.base: 3896 ; 0x010: 0x00000f38
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: 186646528 ; 0x020: 0x0b200000
kfdhdb.dsknum: 0 ; 0x024: 0x0000
kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL
kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
kfdhdb.dskname: DG_MOUNT_0000 ; 0x028: length=13
kfdhdb.grpname: DG_MOUNT ; 0x048: length=8
kfdhdb.fgname: DG_MOUNT_0000 ; 0x068: length=13
kfdhdb.capname: ; 0x088: length=0
kfdhdb.crestmp.hi: 33052113 ; 0x0a8: HOUR=0x11 DAYS=0xe MNTH=0x5 YEAR=0x7e1
kfdhdb.crestmp.lo: 592004096 ; 0x0ac: USEC=0x0 MSEC=0x251 SECS=0x34 MINS=0x8
kfdhdb.mntstmp.hi: 33052460 ; 0x0b0: HOUR=0xc DAYS=0x19 MNTH=0x5 YEAR=0x7e1
kfdhdb.mntstmp.lo: 34348032 ; 0x0b4: USEC=0x0 MSEC=0x307 SECS=0x20 MINS=0x0
kfdhdb.secsize: 512 ; 0x0b8: 0x0200
kfdhdb.blksize: 4096 ; 0x0ba: 0x1000
kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000
kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80
kfdhdb.dsksize: 10240 ; 0x0c4: 0x00002800
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: 33052113 ; 0x0e4: HOUR=0x11 DAYS=0xe MNTH=0x5 YEAR=0x7e1
kfdhdb.grpstmp.lo: 591817728 ; 0x0e8: USEC=0x0 MSEC=0x19b SECS=0x34 MINS=0x8
kfdhdb.vfstart: 0 ; 0x0ec: 0x00000000
kfdhdb.vfend: 0 ; 0x0f0: 0x00000000
kfdhdb.spfile: 0 ; 0x0f4: 0x00000000
kfdhdb.spfflg: 0 ; 0x0f8: 0x00000000
kfdhdb.ub4spare[0]: 0 ; 0x0fc: 0x00000000
kfdhdb.ub4spare[1]: 0 ; 0x100: 0x00000000
kfdhdb.ub4spare[2]: 0 ; 0x104: 0x00000000
kfdhdb.ub4spare[3]: 0 ; 0x108: 0x00000000
kfdhdb.ub4spare[4]: 0 ; 0x10c: 0x00000000
kfdhdb.ub4spare[5]: 0 ; 0x110: 0x00000000
kfdhdb.ub4spare[6]: 0 ; 0x114: 0x00000000
kfdhdb.ub4spare[7]: 0 ; 0x118: 0x00000000
kfdhdb.ub4spare[8]: 0 ; 0x11c: 0x00000000
kfdhdb.ub4spare[9]: 0 ; 0x120: 0x00000000
kfdhdb.ub4spare[10]: 0 ; 0x124: 0x00000000
kfdhdb.ub4spare[11]: 0 ; 0x128: 0x00000000
kfdhdb.ub4spare[12]: 0 ; 0x12c: 0x00000000
kfdhdb.ub4spare[13]: 0 ; 0x130: 0x00000000
kfdhdb.ub4spare[14]: 0 ; 0x134: 0x00000000
kfdhdb.ub4spare[15]: 0 ; 0x138: 0x00000000
kfdhdb.ub4spare[16]: 0 ; 0x13c: 0x00000000
kfdhdb.ub4spare[17]: 0 ; 0x140: 0x00000000
kfdhdb.ub4spare[18]: 0 ; 0x144: 0x00000000
kfdhdb.ub4spare[19]: 0 ; 0x148: 0x00000000
kfdhdb.ub4spare[20]: 0 ; 0x14c: 0x00000000
kfdhdb.ub4spare[21]: 0 ; 0x150: 0x00000000
kfdhdb.ub4spare[22]: 0 ; 0x154: 0x00000000
kfdhdb.ub4spare[23]: 0 ; 0x158: 0x00000000
kfdhdb.ub4spare[24]: 0 ; 0x15c: 0x00000000
kfdhdb.ub4spare[25]: 0 ; 0x160: 0x00000000
kfdhdb.ub4spare[26]: 0 ; 0x164: 0x00000000
kfdhdb.ub4spare[27]: 0 ; 0x168: 0x00000000
kfdhdb.ub4spare[28]: 0 ; 0x16c: 0x00000000
kfdhdb.ub4spare[29]: 0 ; 0x170: 0x00000000
kfdhdb.ub4spare[30]: 0 ; 0x174: 0x00000000
kfdhdb.ub4spare[31]: 0 ; 0x178: 0x00000000
kfdhdb.ub4spare[32]: 0 ; 0x17c: 0x00000000
kfdhdb.ub4spare[33]: 0 ; 0x180: 0x00000000
kfdhdb.ub4spare[34]: 0 ; 0x184: 0x00000000
kfdhdb.ub4spare[35]: 0 ; 0x188: 0x00000000
kfdhdb.ub4spare[36]: 0 ; 0x18c: 0x00000000
kfdhdb.ub4spare[37]: 0 ; 0x190: 0x00000000
kfdhdb.ub4spare[38]: 0 ; 0x194: 0x00000000
kfdhdb.ub4spare[39]: 0 ; 0x198: 0x00000000
kfdhdb.ub4spare[40]: 0 ; 0x19c: 0x00000000
kfdhdb.ub4spare[41]: 0 ; 0x1a0: 0x00000000
kfdhdb.ub4spare[42]: 0 ; 0x1a4: 0x00000000
kfdhdb.ub4spare[43]: 0 ; 0x1a8: 0x00000000
kfdhdb.ub4spare[44]: 0 ; 0x1ac: 0x00000000
kfdhdb.ub4spare[45]: 0 ; 0x1b0: 0x00000000
kfdhdb.ub4spare[46]: 0 ; 0x1b4: 0x00000000
kfdhdb.ub4spare[47]: 0 ; 0x1b8: 0x00000000
kfdhdb.ub4spare[48]: 0 ; 0x1bc: 0x00000000
kfdhdb.ub4spare[49]: 0 ; 0x1c0: 0x00000000
kfdhdb.ub4spare[50]: 0 ; 0x1c4: 0x00000000
kfdhdb.ub4spare[51]: 0 ; 0x1c8: 0x00000000
kfdhdb.ub4spare[52]: 0 ; 0x1cc: 0x00000000
kfdhdb.ub4spare[53]: 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
[grid@zxy ~]$
[grid@zxy ~]$ kfed read /dev/asm_base
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: 2147483649 ; 0x008: disk=1
kfbh.check: 2946379607 ; 0x00c: 0xaf9e2f57
kfbh.fcn.base: 3846 ; 0x010: 0x00000f06
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: 186646528 ; 0x020: 0x0b200000
kfdhdb.dsknum: 1 ; 0x024: 0x0001
kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL
kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
kfdhdb.dskname: DG_MOUNT_0001 ; 0x028: length=13
kfdhdb.grpname: DG_MOUNT ; 0x048: length=8
kfdhdb.fgname: DG_MOUNT_0001 ; 0x068: length=13
kfdhdb.capname: ; 0x088: length=0
kfdhdb.crestmp.hi: 33052460 ; 0x0a8: HOUR=0xc DAYS=0x19 MNTH=0x5 YEAR=0x7e1
kfdhdb.crestmp.lo: 1821450240 ; 0x0ac: USEC=0x0 MSEC=0x48 SECS=0x9 MINS=0x1b
kfdhdb.mntstmp.hi: 33052460 ; 0x0b0: HOUR=0xc DAYS=0x19 MNTH=0x5 YEAR=0x7e1
kfdhdb.mntstmp.lo: 1821451264 ; 0x0b4: USEC=0x0 MSEC=0x49 SECS=0x9 MINS=0x1b
kfdhdb.secsize: 512 ; 0x0b8: 0x0200
kfdhdb.blksize: 4096 ; 0x0ba: 0x1000
kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000
kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80
kfdhdb.dsksize: 10240 ; 0x0c4: 0x00002800
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: 33052113 ; 0x0e4: HOUR=0x11 DAYS=0xe MNTH=0x5 YEAR=0x7e1
kfdhdb.grpstmp.lo: 591817728 ; 0x0e8: USEC=0x0 MSEC=0x19b SECS=0x34 MINS=0x8
kfdhdb.vfstart: 0 ; 0x0ec: 0x00000000
kfdhdb.vfend: 0 ; 0x0f0: 0x00000000
kfdhdb.spfile: 0 ; 0x0f4: 0x00000000
kfdhdb.spfflg: 0 ; 0x0f8: 0x00000000
kfdhdb.ub4spare[0]: 0 ; 0x0fc: 0x00000000
kfdhdb.ub4spare[1]: 0 ; 0x100: 0x00000000
kfdhdb.ub4spare[2]: 0 ; 0x104: 0x00000000
kfdhdb.ub4spare[3]: 0 ; 0x108: 0x00000000
kfdhdb.ub4spare[4]: 0 ; 0x10c: 0x00000000
kfdhdb.ub4spare[5]: 0 ; 0x110: 0x00000000
kfdhdb.ub4spare[6]: 0 ; 0x114: 0x00000000
kfdhdb.ub4spare[7]: 0 ; 0x118: 0x00000000
kfdhdb.ub4spare[8]: 0 ; 0x11c: 0x00000000
kfdhdb.ub4spare[9]: 0 ; 0x120: 0x00000000
kfdhdb.ub4spare[10]: 0 ; 0x124: 0x00000000
kfdhdb.ub4spare[11]: 0 ; 0x128: 0x00000000
kfdhdb.ub4spare[12]: 0 ; 0x12c: 0x00000000
kfdhdb.ub4spare[13]: 0 ; 0x130: 0x00000000
kfdhdb.ub4spare[14]: 0 ; 0x134: 0x00000000
kfdhdb.ub4spare[15]: 0 ; 0x138: 0x00000000
kfdhdb.ub4spare[16]: 0 ; 0x13c: 0x00000000
kfdhdb.ub4spare[17]: 0 ; 0x140: 0x00000000
kfdhdb.ub4spare[18]: 0 ; 0x144: 0x00000000
kfdhdb.ub4spare[19]: 0 ; 0x148: 0x00000000
kfdhdb.ub4spare[20]: 0 ; 0x14c: 0x00000000
kfdhdb.ub4spare[21]: 0 ; 0x150: 0x00000000
kfdhdb.ub4spare[22]: 0 ; 0x154: 0x00000000
kfdhdb.ub4spare[23]: 0 ; 0x158: 0x00000000
kfdhdb.ub4spare[24]: 0 ; 0x15c: 0x00000000
kfdhdb.ub4spare[25]: 0 ; 0x160: 0x00000000
kfdhdb.ub4spare[26]: 0 ; 0x164: 0x00000000
kfdhdb.ub4spare[27]: 0 ; 0x168: 0x00000000
kfdhdb.ub4spare[28]: 0 ; 0x16c: 0x00000000
kfdhdb.ub4spare[29]: 0 ; 0x170: 0x00000000
kfdhdb.ub4spare[30]: 0 ; 0x174: 0x00000000
kfdhdb.ub4spare[31]: 0 ; 0x178: 0x00000000
kfdhdb.ub4spare[32]: 0 ; 0x17c: 0x00000000
kfdhdb.ub4spare[33]: 0 ; 0x180: 0x00000000
kfdhdb.ub4spare[34]: 0 ; 0x184: 0x00000000
kfdhdb.ub4spare[35]: 0 ; 0x188: 0x00000000
kfdhdb.ub4spare[36]: 0 ; 0x18c: 0x00000000
kfdhdb.ub4spare[37]: 0 ; 0x190: 0x00000000
kfdhdb.ub4spare[38]: 0 ; 0x194: 0x00000000
kfdhdb.ub4spare[39]: 0 ; 0x198: 0x00000000
kfdhdb.ub4spare[40]: 0 ; 0x19c: 0x00000000
kfdhdb.ub4spare[41]: 0 ; 0x1a0: 0x00000000
kfdhdb.ub4spare[42]: 0 ; 0x1a4: 0x00000000
kfdhdb.ub4spare[43]: 0 ; 0x1a8: 0x00000000
kfdhdb.ub4spare[44]: 0 ; 0x1ac: 0x00000000
kfdhdb.ub4spare[45]: 0 ; 0x1b0: 0x00000000
kfdhdb.ub4spare[46]: 0 ; 0x1b4: 0x00000000
kfdhdb.ub4spare[47]: 0 ; 0x1b8: 0x00000000
kfdhdb.ub4spare[48]: 0 ; 0x1bc: 0x00000000
kfdhdb.ub4spare[49]: 0 ; 0x1c0: 0x00000000
kfdhdb.ub4spare[50]: 0 ; 0x1c4: 0x00000000
kfdhdb.ub4spare[51]: 0 ; 0x1c8: 0x00000000
kfdhdb.ub4spare[52]: 0 ; 0x1cc: 0x00000000
kfdhdb.ub4spare[53]: 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
[grid@zxy ~]$
15,关闭GI进程及相关进程
[root@zxy ~]# ps -ef|grep pmon
grid 1900 1 0 12:00 ? 00:00:00 asm_pmon_+ASM
oracle 4465 1 0 13:16 ? 00:00:00 ora_pmon_god
root 4819 2070 0 13:54 pts/0 00:00:00 grep pmon
[root@zxy ~]# ps -ef|grep has
root 869 1 0 11:58 ? 00:00:00 /bin/sh /etc/init.d/init.ohasd run
grid 1652 1 0 11:58 ? 00:00:24 /u01/app/11.2.0.4/grid/bin/ohasd.bin reboot
root 4822 2070 0 13:54 pts/0 00:00:00 grep has
[root@zxy ~]# !307
/u01/app/11.2.0.4/grid/bin/crsctl stop has
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'zxy'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'zxy'
CRS-2673: Attempting to stop 'ora.ASM_OCRVOTE.dg' on 'zxy'
CRS-2673: Attempting to stop 'ora.god.db' on 'zxy'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'zxy' succeeded
CRS-2677: Stop of 'ora.god.db' on 'zxy' succeeded
CRS-2673: Attempting to stop 'ora.DG_MOUNT.dg' on 'zxy'
CRS-2677: Stop of 'ora.DG_MOUNT.dg' on 'zxy' succeeded
CRS-2677: Stop of 'ora.ASM_OCRVOTE.dg' on 'zxy' succeeded
CRS-2679: Attempting to clean 'ora.ASM_OCRVOTE.dg' on 'zxy'
CRS-2681: Clean of 'ora.ASM_OCRVOTE.dg' on 'zxy' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'zxy'
CRS-2677: Stop of 'ora.asm' on 'zxy' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'zxy'
CRS-2677: Stop of 'ora.cssd' on 'zxy' succeeded
CRS-2673: Attempting to stop 'ora.evmd' on 'zxy'
CRS-2677: Stop of 'ora.evmd' on 'zxy' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'zxy' has completed
CRS-4133: Oracle High Availability Services has been stopped.
[root@zxy ~]# ps -ef|grep has
root 869 1 0 11:58 ? 00:00:00 /bin/sh /etc/init.d/init.ohasd run
root 4893 2070 0 13:59 pts/0 00:00:00 grep has
[root@zxy ~]# ps -ef|grep pmon
root 4898 2070 0 13:59 pts/0 00:00:00 grep pmon
16,关闭操作系统
[root@zxy ~]# init 0
17,备份虚拟机进行快照
before_destroy_asm_header 快照名称
18,重启操作系统可见GI及数据库实例进程会自动启动
[root@zxy ~]# ps -ef|grep pmon
grid 1981 1 0 14:02 ? 00:00:00 asm_pmon_+ASM
oracle 2066 1 0 14:03 ? 00:00:00 ora_pmon_god
root 2171 1803 0 14:03 pts/0 00:00:00 grep pmon
[root@zxy ~]# ps -ef|grep d.bin
grid 1657 1 0 14:01 ? 00:00:01 /u01/app/11.2.0.4/grid/bin/ohasd.bin reboot
grid 1858 1 0 14:02 ? 00:00:00 /u01/app/11.2.0.4/grid/bin/oraagent.bin
grid 1876 1 0 14:02 ? 00:00:00 /u01/app/11.2.0.4/grid/bin/evmd.bin
grid 1879 1 0 14:02 ? 00:00:00 /u01/app/11.2.0.4/grid/bin/tnslsnr LISTENER -inherit
grid 1914 1876 0 14:02 ? 00:00:00 /u01/app/11.2.0.4/grid/bin/evmlogger.bin -o /u01/app/11.2.0.4/grid/evm/log/evmlogger.info -l /u01/app/11.2.0.4/grid/evm/log/evmlogger.log
grid 1918 1 0 14:02 ? 00:00:00 /u01/app/11.2.0.4/grid/bin/cssdagent
grid 1942 1 0 14:02 ? 00:00:00 /u01/app/11.2.0.4/grid/bin/ocssd.bin
root 2179 1803 0 14:03 pts/0 00:00:00 grep d.bin
19,读取ASM磁盘的元数据信息,可见kfed read aun=0 blkn=0同于kfed read
[grid@zxy ~]$ kfed read /dev/asm_mount aun=0 blkn=0
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: 4083447641 ; 0x00c: 0xf3647759
kfbh.fcn.base: 3896 ; 0x010: 0x00000f38
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: 186646528 ; 0x020: 0x0b200000
kfdhdb.dsknum: 0 ; 0x024: 0x0000
kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL
kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
kfdhdb.dskname: DG_MOUNT_0000 ; 0x028: length=13
kfdhdb.grpname: DG_MOUNT ; 0x048: length=8
kfdhdb.fgname: DG_MOUNT_0000 ; 0x068: length=13
kfdhdb.capname: ; 0x088: length=0
kfdhdb.crestmp.hi: 33052113 ; 0x0a8: HOUR=0x11 DAYS=0xe MNTH=0x5 YEAR=0x7e1
kfdhdb.crestmp.lo: 592004096 ; 0x0ac: USEC=0x0 MSEC=0x251 SECS=0x34 MINS=0x8
kfdhdb.mntstmp.hi: 33052462 ; 0x0b0: HOUR=0xe DAYS=0x19 MNTH=0x5 YEAR=0x7e1
kfdhdb.mntstmp.lo: 201782272 ; 0x0b4: USEC=0x0 MSEC=0x1bd SECS=0x0 MINS=0x3
kfdhdb.secsize: 512 ; 0x0b8: 0x0200
kfdhdb.blksize: 4096 ; 0x0ba: 0x1000
kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000
kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80
kfdhdb.dsksize: 10240 ; 0x0c4: 0x00002800
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: 33052113 ; 0x0e4: HOUR=0x11 DAYS=0xe MNTH=0x5 YEAR=0x7e1
kfdhdb.grpstmp.lo: 591817728 ; 0x0e8: USEC=0x0 MSEC=0x19b SECS=0x34 MINS=0x8
kfdhdb.vfstart: 0 ; 0x0ec: 0x00000000
kfdhdb.vfend: 0 ; 0x0f0: 0x00000000
kfdhdb.spfile: 0 ; 0x0f4: 0x00000000
kfdhdb.spfflg: 0 ; 0x0f8: 0x00000000
kfdhdb.ub4spare[0]: 0 ; 0x0fc: 0x00000000
kfdhdb.ub4spare[1]: 0 ; 0x100: 0x00000000
kfdhdb.ub4spare[2]: 0 ; 0x104: 0x00000000
kfdhdb.ub4spare[3]: 0 ; 0x108: 0x00000000
kfdhdb.ub4spare[4]: 0 ; 0x10c: 0x00000000
kfdhdb.ub4spare[5]: 0 ; 0x110: 0x00000000
kfdhdb.ub4spare[6]: 0 ; 0x114: 0x00000000
kfdhdb.ub4spare[7]: 0 ; 0x118: 0x00000000
kfdhdb.ub4spare[8]: 0 ; 0x11c: 0x00000000
kfdhdb.ub4spare[9]: 0 ; 0x120: 0x00000000
kfdhdb.ub4spare[10]: 0 ; 0x124: 0x00000000
kfdhdb.ub4spare[11]: 0 ; 0x128: 0x00000000
kfdhdb.ub4spare[12]: 0 ; 0x12c: 0x00000000
kfdhdb.ub4spare[13]: 0 ; 0x130: 0x00000000
kfdhdb.ub4spare[14]: 0 ; 0x134: 0x00000000
kfdhdb.ub4spare[15]: 0 ; 0x138: 0x00000000
kfdhdb.ub4spare[16]: 0 ; 0x13c: 0x00000000
kfdhdb.ub4spare[17]: 0 ; 0x140: 0x00000000
kfdhdb.ub4spare[18]: 0 ; 0x144: 0x00000000
kfdhdb.ub4spare[19]: 0 ; 0x148: 0x00000000
kfdhdb.ub4spare[20]: 0 ; 0x14c: 0x00000000
kfdhdb.ub4spare[21]: 0 ; 0x150: 0x00000000
kfdhdb.ub4spare[22]: 0 ; 0x154: 0x00000000
kfdhdb.ub4spare[23]: 0 ; 0x158: 0x00000000
kfdhdb.ub4spare[24]: 0 ; 0x15c: 0x00000000
kfdhdb.ub4spare[25]: 0 ; 0x160: 0x00000000
kfdhdb.ub4spare[26]: 0 ; 0x164: 0x00000000
kfdhdb.ub4spare[27]: 0 ; 0x168: 0x00000000
kfdhdb.ub4spare[28]: 0 ; 0x16c: 0x00000000
kfdhdb.ub4spare[29]: 0 ; 0x170: 0x00000000
kfdhdb.ub4spare[30]: 0 ; 0x174: 0x00000000
kfdhdb.ub4spare[31]: 0 ; 0x178: 0x00000000
kfdhdb.ub4spare[32]: 0 ; 0x17c: 0x00000000
kfdhdb.ub4spare[33]: 0 ; 0x180: 0x00000000
kfdhdb.ub4spare[34]: 0 ; 0x184: 0x00000000
kfdhdb.ub4spare[35]: 0 ; 0x188: 0x00000000
kfdhdb.ub4spare[36]: 0 ; 0x18c: 0x00000000
kfdhdb.ub4spare[37]: 0 ; 0x190: 0x00000000
kfdhdb.ub4spare[38]: 0 ; 0x194: 0x00000000
kfdhdb.ub4spare[39]: 0 ; 0x198: 0x00000000
kfdhdb.ub4spare[40]: 0 ; 0x19c: 0x00000000
kfdhdb.ub4spare[41]: 0 ; 0x1a0: 0x00000000
kfdhdb.ub4spare[42]: 0 ; 0x1a4: 0x00000000
kfdhdb.ub4spare[43]: 0 ; 0x1a8: 0x00000000
kfdhdb.ub4spare[44]: 0 ; 0x1ac: 0x00000000
kfdhdb.ub4spare[45]: 0 ; 0x1b0: 0x00000000
kfdhdb.ub4spare[46]: 0 ; 0x1b4: 0x00000000
kfdhdb.ub4spare[47]: 0 ; 0x1b8: 0x00000000
kfdhdb.ub4spare[48]: 0 ; 0x1bc: 0x00000000
kfdhdb.ub4spare[49]: 0 ; 0x1c0: 0x00000000
kfdhdb.ub4spare[50]: 0 ; 0x1c4: 0x00000000
kfdhdb.ub4spare[51]: 0 ; 0x1c8: 0x00000000
kfdhdb.ub4spare[52]: 0 ; 0x1cc: 0x00000000
kfdhdb.ub4spare[53]: 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
[grid@zxy ~]$ kfed read /dev/asm_mount aun=0 blkn=0|wc -l
108
[grid@zxy ~]$
20,查看ASM磁盘头的备份信息
[grid@zxy ~]$ kfed read /dev/asm_mount aun=1 blkn=254
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: 4083447719 ; 0x00c: 0xf36477a7
kfbh.fcn.base: 3896 ; 0x010: 0x00000f38
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: 186646528 ; 0x020: 0x0b200000
kfdhdb.dsknum: 0 ; 0x024: 0x0000
kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL
kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
kfdhdb.dskname: DG_MOUNT_0000 ; 0x028: length=13
kfdhdb.grpname: DG_MOUNT ; 0x048: length=8
kfdhdb.fgname: DG_MOUNT_0000 ; 0x068: length=13
kfdhdb.capname: ; 0x088: length=0
kfdhdb.crestmp.hi: 33052113 ; 0x0a8: HOUR=0x11 DAYS=0xe MNTH=0x5 YEAR=0x7e1
kfdhdb.crestmp.lo: 592004096 ; 0x0ac: USEC=0x0 MSEC=0x251 SECS=0x34 MINS=0x8
kfdhdb.mntstmp.hi: 33052462 ; 0x0b0: HOUR=0xe DAYS=0x19 MNTH=0x5 YEAR=0x7e1
kfdhdb.mntstmp.lo: 201782272 ; 0x0b4: USEC=0x0 MSEC=0x1bd SECS=0x0 MINS=0x3
kfdhdb.secsize: 512 ; 0x0b8: 0x0200
kfdhdb.blksize: 4096 ; 0x0ba: 0x1000
kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000
kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80
kfdhdb.dsksize: 10240 ; 0x0c4: 0x00002800
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: 33052113 ; 0x0e4: HOUR=0x11 DAYS=0xe MNTH=0x5 YEAR=0x7e1
kfdhdb.grpstmp.lo: 591817728 ; 0x0e8: USEC=0x0 MSEC=0x19b SECS=0x34 MINS=0x8
kfdhdb.vfstart: 0 ; 0x0ec: 0x00000000
kfdhdb.vfend: 0 ; 0x0f0: 0x00000000
kfdhdb.spfile: 0 ; 0x0f4: 0x00000000
kfdhdb.spfflg: 0 ; 0x0f8: 0x00000000
kfdhdb.ub4spare[0]: 0 ; 0x0fc: 0x00000000
kfdhdb.ub4spare[1]: 0 ; 0x100: 0x00000000
kfdhdb.ub4spare[2]: 0 ; 0x104: 0x00000000
kfdhdb.ub4spare[3]: 0 ; 0x108: 0x00000000
kfdhdb.ub4spare[4]: 0 ; 0x10c: 0x00000000
kfdhdb.ub4spare[5]: 0 ; 0x110: 0x00000000
kfdhdb.ub4spare[6]: 0 ; 0x114: 0x00000000
kfdhdb.ub4spare[7]: 0 ; 0x118: 0x00000000
kfdhdb.ub4spare[8]: 0 ; 0x11c: 0x00000000
kfdhdb.ub4spare[9]: 0 ; 0x120: 0x00000000
kfdhdb.ub4spare[10]: 0 ; 0x124: 0x00000000
kfdhdb.ub4spare[11]: 0 ; 0x128: 0x00000000
kfdhdb.ub4spare[12]: 0 ; 0x12c: 0x00000000
kfdhdb.ub4spare[13]: 0 ; 0x130: 0x00000000
kfdhdb.ub4spare[14]: 0 ; 0x134: 0x00000000
kfdhdb.ub4spare[15]: 0 ; 0x138: 0x00000000
kfdhdb.ub4spare[16]: 0 ; 0x13c: 0x00000000
kfdhdb.ub4spare[17]: 0 ; 0x140: 0x00000000
kfdhdb.ub4spare[18]: 0 ; 0x144: 0x00000000
kfdhdb.ub4spare[19]: 0 ; 0x148: 0x00000000
kfdhdb.ub4spare[20]: 0 ; 0x14c: 0x00000000
kfdhdb.ub4spare[21]: 0 ; 0x150: 0x00000000
kfdhdb.ub4spare[22]: 0 ; 0x154: 0x00000000
kfdhdb.ub4spare[23]: 0 ; 0x158: 0x00000000
kfdhdb.ub4spare[24]: 0 ; 0x15c: 0x00000000
kfdhdb.ub4spare[25]: 0 ; 0x160: 0x00000000
kfdhdb.ub4spare[26]: 0 ; 0x164: 0x00000000
kfdhdb.ub4spare[27]: 0 ; 0x168: 0x00000000
kfdhdb.ub4spare[28]: 0 ; 0x16c: 0x00000000
kfdhdb.ub4spare[29]: 0 ; 0x170: 0x00000000
kfdhdb.ub4spare[30]: 0 ; 0x174: 0x00000000
kfdhdb.ub4spare[31]: 0 ; 0x178: 0x00000000
kfdhdb.ub4spare[32]: 0 ; 0x17c: 0x00000000
kfdhdb.ub4spare[33]: 0 ; 0x180: 0x00000000
kfdhdb.ub4spare[34]: 0 ; 0x184: 0x00000000
kfdhdb.ub4spare[35]: 0 ; 0x188: 0x00000000
kfdhdb.ub4spare[36]: 0 ; 0x18c: 0x00000000
kfdhdb.ub4spare[37]: 0 ; 0x190: 0x00000000
kfdhdb.ub4spare[38]: 0 ; 0x194: 0x00000000
kfdhdb.ub4spare[39]: 0 ; 0x198: 0x00000000
kfdhdb.ub4spare[40]: 0 ; 0x19c: 0x00000000
kfdhdb.ub4spare[41]: 0 ; 0x1a0: 0x00000000
kfdhdb.ub4spare[42]: 0 ; 0x1a4: 0x00000000
kfdhdb.ub4spare[43]: 0 ; 0x1a8: 0x00000000
kfdhdb.ub4spare[44]: 0 ; 0x1ac: 0x00000000
kfdhdb.ub4spare[45]: 0 ; 0x1b0: 0x00000000
kfdhdb.ub4spare[46]: 0 ; 0x1b4: 0x00000000
kfdhdb.ub4spare[47]: 0 ; 0x1b8: 0x00000000
kfdhdb.ub4spare[48]: 0 ; 0x1bc: 0x00000000
kfdhdb.ub4spare[49]: 0 ; 0x1c0: 0x00000000
kfdhdb.ub4spare[50]: 0 ; 0x1c4: 0x00000000
kfdhdb.ub4spare[51]: 0 ; 0x1c8: 0x00000000
kfdhdb.ub4spare[52]: 0 ; 0x1cc: 0x00000000
kfdhdb.ub4spare[53]: 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
[grid@zxy ~]$ kfed read /dev/asm_mount aun=1 blkn=254|wc -l
108
20,采用DD破坏ASM磁盘头信息
[grid@zxy ~]$ dd if=/dev/zero of=/dev/asm_mount bs=4096 count=1
1+0 records in
1+0 records out
4096 bytes (4.1 kB) copied, 0.000237957 s, 17.2 MB/s
21,可见ASM磁盘发现问题,其元数据全部变成了0,这是异常的
[grid@zxy ~]$ kfed read /dev/asm_mount
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: blk=0
kfbh.block.obj: 0 ; 0x008: file=0
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
7FF812D7B400 00000000 00000000 00000000 00000000 [................]
Repeat 255 times
KFED-00322: Invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][0]
22,oracle数据库实例好像还是正常的
[oracle@zxy trace]$ pwd
/oracle/diag/rdbms/god/god/trace
[oracle@zxy trace]$ tail -f alert_god.log
CJQ0 started with pid=32, OS id=2167
Thu May 25 14:03:16 2017
db_recovery_file_dest_size of 4977 MB is 3.30% used. This is a
user-specified limit on the amount of space that will be used by this
database for recovery-related files, and does not reflect the amount of
space available in the underlying filesystem or ASM diskgroup.
Thu May 25 14:08:15 2017
Starting background process SMCO
Thu May 25 14:08:15 2017
SMCO started with pid=22, OS id=2236
[oracle@zxy trace]$ export ORACLE_SID=god
[oracle@zxy trace]$ sqlplus '/as sysdba'
SQL*Plus: Release 11.2.0.4.0 Production on Thu May 25 14:15:08 2017
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
SQL> alter system checkpoint;
System altered.
SQL> create table t_asm(a int);
Table created.
SQL> insert into t_asm values(1);
1 row created.
SQL> commit;
Commit complete.
SQL> alter system checkpoint;
System altered.
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
[oracle@zxy trace]$ tail -f alert_god.log
CJQ0 started with pid=32, OS id=2167
Thu May 25 14:03:16 2017
db_recovery_file_dest_size of 4977 MB is 3.30% used. This is a
user-specified limit on the amount of space that will be used by this
database for recovery-related files, and does not reflect the amount of
space available in the underlying filesystem or ASM diskgroup.
Thu May 25 14:08:15 2017
Starting background process SMCO
Thu May 25 14:08:15 2017
SMCO started with pid=22, OS id=2236
[oracle@zxy trace]$ ps -ef|grep pmon
grid 1981 1 0 14:02 ? 00:00:00 asm_pmon_+ASM
oracle 2066 1 0 14:03 ? 00:00:00 ora_pmon_god
oracle 2366 2282 0 14:16 pts/1 00:00:00 grep pmon
23,查看ASM实例及ASM磁盘组,可见受损的ASM磁盘的磁盘头状态header_status由MEMBER变成CANDIATE
SQL> r
1* select group_number,name,state,type,total_mb,free_mb,voting_files from v$asm_diskgroup
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB V
------------ ------------------------------ ----------- ------ ---------- ---------- -
1 ASM_OCRVOTE MOUNTED EXTERN 5120 5052 N
2 DG_MOUNT MOUNTED EXTERN 10240 7584 N
SQL> r
1* select group_number,disk_number,mount_status,header_status,state,redundancy,os_mb,total_mb,free_mb,name,path from v$asm_disk where group_number=2
GROUP_NUMBER DISK_NUMBER MOUNT_S HEADER_STATU STATE REDUNDA OS_MB TOTAL_MB FREE_MB NAME PATH
------------ ----------- ------- ------------ -------- ------- ---------- ---------- ---------- ------------------------------ ------------------------------
2 0 CACHED CANDIDATE NORMAL UNKNOWN 10240 10240 7581 DG_MOUNT_0000 /dev/asm_mount
2 1 CACHED MEMBER NORMAL UNKNOWN 10240 10240 7584 DG_MOUNT_0001 /dev/asm_base
24,关闭数据库实例
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
25,DISMOUT ASM磁盘组,重新MOUNT就会报错
SQL> alter diskgroup dg_mount dismount;
Diskgroup altered.
SQL> alter diskgroup dg_mount mount;
alter diskgroup dg_mount mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15017: diskgroup "DG_MOUNT" cannot be mounted
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DG_MOUNT"
26,恢复或修复ASM磁盘的磁盘头
[grid@zxy zxy]$ kfed repair /dev/asm_mount
[grid@zxy zxy]$
27,重新加载ASM磁盘组
SQL> alter diskgroup dg_mount mount;
Diskgroup altered.
28,启动数据库实例
SQL> startup
ORACLE instance started.
Total System Global Area 906088448 bytes
Fixed Size 2258520 bytes
Variable Size 578816424 bytes
Database Buffers 318767104 bytes
Redo Buffers 6246400 bytes
Database mounted.
Database opened.
SQL>
29,通过STRACE分析跟踪KFED REPAIR是基于哪个磁盘的哪个位置的数据块修复磁盘的磁盘头具体位置
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
[grid@zxy ~]$ strace -o asm_learn.log kfed repair /dev/asm_mount
[grid@zxy ~]$
[grid@zxy ~]$ ls -l asm_learn.log
-rw-r--r--. 1 grid oinstall 30434 May 25 14:37 asm_learn.log
从STRACE日志分析可知,lseek定位ASM磁盘,定位到2088960数据块,然后读取它的信息,再定位到0数据块,然后通过WRITE把数据写进去
access("/dev/asm_mount", F_OK) = 0
statfs("/dev/asm_mount", {f_type=0x1021994, f_bsize=4096, f_blocks=367554, f_bfree=367510, f_bavail=367510, f_files=367554, f_ffree=366894, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
open("/dev/asm_mount", O_RDWR) = 7
lseek(7, 2088960, SEEK_SET) = 2088960
read(7, "\1\202\1\1\376\0\0\0\0\0\0\200\247S\231\2268\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
lseek(7, 0, SEEK_SET) = 0
read(7, "\1\202\1\1\0\0\0\0\0\0\0\200YS\231\2268\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
lseek(7, 0, SEEK_SET) = 0
write(7, "\1\202\1\1\0\0\0\0\0\0\0\200YS\231\2268\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096
close(7) = 0
经查阅可知,fd为要定位的文件,offset为文件的偏移位置,whence为对应的指令,具体见下
[grid@zxy ~]$ man lseek
LSEEK(2) Linux Programmer’s Manual LSEEK(2)
NAME
lseek - reposition read/write file offset
SYNOPSIS
#include
#include
off_t lseek(int fd, off_t offset, int whence);
DESCRIPTION
The lseek() function repositions the offset of the open file associated with the file descriptor fd to the argument offset according to the directive
whence as follows:
SEEK_SET
The offset is set to offset bytes.
SEEK_CUR
The offset is set to its current location plus offset bytes.
SEEK_END
The offset is set to the size of the file plus offset bytes.
The lseek() function allows the file offset to be set beyond the end of the file (but this does not change the size of the file). If data is later written
at this point, subsequent reads of the data in the gap (a "hole") return null bytes ('\0') until data is actually written into the gap.
RETURN VALUE
Upon successful completion, lseek() returns the resulting offset location as measured in bytes from the beginning of the file. Otherwise, a value of
(off_t) -1 is returned and errno is set to indicate the error.
ERRORS
EBADF fd is not an open file descriptor.
EINVAL whence is not one of SEEK_SET, SEEK_CUR, SEEK_END; or the resulting file offset would be negative, or beyond the end of a seekable device.
EOVERFLOW
The resulting file offset cannot be represented in an off_t.
ESPIPE fd is associated with a pipe, socket, or FIFO.
[grid@zxy ~]$ kfed read /dev/asm_mount blkn=510
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: blk=0
kfbh.block.obj: 0 ; 0x008: file=0
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
7F927FEE5400 00000000 00000000 00000000 00000000 [................]
Repeat 255 times
KFED-00322: Invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][0]
[grid@zxy ~]$ kfed read /dev/asm_mount blkn=2088960|grep -i kfbtyp
kfbh.type: 0 ; 0x002: KFBTYP_INVALID
SQL> select 2088960/4096 from dual;
2088960/4096
------------
510
510数据块即是ASM磁盘头的备份块
[grid@zxy ~]$ kfed read /dev/asm_mount 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: 2526630823 ; 0x00c: 0x969953a7
kfbh.fcn.base: 3896 ; 0x010: 0x00000f38
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: 186646528 ; 0x020: 0x0b200000
kfdhdb.dsknum: 0 ; 0x024: 0x0000
kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL
kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
kfdhdb.dskname: DG_MOUNT_0000 ; 0x028: length=13
kfdhdb.grpname: DG_MOUNT ; 0x048: length=8
kfdhdb.fgname: DG_MOUNT_0000 ; 0x068: length=13
kfdhdb.capname: ; 0x088: length=0
kfdhdb.crestmp.hi: 33052113 ; 0x0a8: HOUR=0x11 DAYS=0xe MNTH=0x5 YEAR=0x7e1
kfdhdb.crestmp.lo: 592004096 ; 0x0ac: USEC=0x0 MSEC=0x251 SECS=0x34 MINS=0x8
kfdhdb.mntstmp.hi: 33052462 ; 0x0b0: HOUR=0xe DAYS=0x19 MNTH=0x5 YEAR=0x7e1
kfdhdb.mntstmp.lo: 1778110464 ; 0x0b4: USEC=0x0 MSEC=0x2f4 SECS=0x1f MINS=0x1a
kfdhdb.secsize: 512 ; 0x0b8: 0x0200
kfdhdb.blksize: 4096 ; 0x0ba: 0x1000
kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000
kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80
kfdhdb.dsksize: 10240 ; 0x0c4: 0x00002800
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: 33052113 ; 0x0e4: HOUR=0x11 DAYS=0xe MNTH=0x5 YEAR=0x7e1
kfdhdb.grpstmp.lo: 591817728 ; 0x0e8: USEC=0x0 MSEC=0x19b SECS=0x34 MINS=0x8
kfdhdb.vfstart: 0 ; 0x0ec: 0x00000000
kfdhdb.vfend: 0 ; 0x0f0: 0x00000000
kfdhdb.spfile: 0 ; 0x0f4: 0x00000000
kfdhdb.spfflg: 0 ; 0x0f8: 0x00000000
kfdhdb.ub4spare[0]: 0 ; 0x0fc: 0x00000000
kfdhdb.ub4spare[1]: 0 ; 0x100: 0x00000000
kfdhdb.ub4spare[2]: 0 ; 0x104: 0x00000000
kfdhdb.ub4spare[3]: 0 ; 0x108: 0x00000000
kfdhdb.ub4spare[4]: 0 ; 0x10c: 0x00000000
kfdhdb.ub4spare[5]: 0 ; 0x110: 0x00000000
kfdhdb.ub4spare[6]: 0 ; 0x114: 0x00000000
kfdhdb.ub4spare[7]: 0 ; 0x118: 0x00000000
kfdhdb.ub4spare[8]: 0 ; 0x11c: 0x00000000
kfdhdb.ub4spare[9]: 0 ; 0x120: 0x00000000
kfdhdb.ub4spare[10]: 0 ; 0x124: 0x00000000
kfdhdb.ub4spare[11]: 0 ; 0x128: 0x00000000
kfdhdb.ub4spare[12]: 0 ; 0x12c: 0x00000000
kfdhdb.ub4spare[13]: 0 ; 0x130: 0x00000000
kfdhdb.ub4spare[14]: 0 ; 0x134: 0x00000000
kfdhdb.ub4spare[15]: 0 ; 0x138: 0x00000000
kfdhdb.ub4spare[16]: 0 ; 0x13c: 0x00000000
kfdhdb.ub4spare[17]: 0 ; 0x140: 0x00000000
kfdhdb.ub4spare[18]: 0 ; 0x144: 0x00000000
kfdhdb.ub4spare[19]: 0 ; 0x148: 0x00000000
kfdhdb.ub4spare[20]: 0 ; 0x14c: 0x00000000
kfdhdb.ub4spare[21]: 0 ; 0x150: 0x00000000
kfdhdb.ub4spare[22]: 0 ; 0x154: 0x00000000
kfdhdb.ub4spare[23]: 0 ; 0x158: 0x00000000
kfdhdb.ub4spare[24]: 0 ; 0x15c: 0x00000000
kfdhdb.ub4spare[25]: 0 ; 0x160: 0x00000000
kfdhdb.ub4spare[26]: 0 ; 0x164: 0x00000000
kfdhdb.ub4spare[27]: 0 ; 0x168: 0x00000000
kfdhdb.ub4spare[28]: 0 ; 0x16c: 0x00000000
kfdhdb.ub4spare[29]: 0 ; 0x170: 0x00000000
kfdhdb.ub4spare[30]: 0 ; 0x174: 0x00000000
kfdhdb.ub4spare[31]: 0 ; 0x178: 0x00000000
kfdhdb.ub4spare[32]: 0 ; 0x17c: 0x00000000
kfdhdb.ub4spare[33]: 0 ; 0x180: 0x00000000
kfdhdb.ub4spare[34]: 0 ; 0x184: 0x00000000
kfdhdb.ub4spare[35]: 0 ; 0x188: 0x00000000
kfdhdb.ub4spare[36]: 0 ; 0x18c: 0x00000000
kfdhdb.ub4spare[37]: 0 ; 0x190: 0x00000000
kfdhdb.ub4spare[38]: 0 ; 0x194: 0x00000000
kfdhdb.ub4spare[39]: 0 ; 0x198: 0x00000000
kfdhdb.ub4spare[40]: 0 ; 0x19c: 0x00000000
kfdhdb.ub4spare[41]: 0 ; 0x1a0: 0x00000000
kfdhdb.ub4spare[42]: 0 ; 0x1a4: 0x00000000
kfdhdb.ub4spare[43]: 0 ; 0x1a8: 0x00000000
kfdhdb.ub4spare[44]: 0 ; 0x1ac: 0x00000000
kfdhdb.ub4spare[45]: 0 ; 0x1b0: 0x00000000
kfdhdb.ub4spare[46]: 0 ; 0x1b4: 0x00000000
kfdhdb.ub4spare[47]: 0 ; 0x1b8: 0x00000000
kfdhdb.ub4spare[48]: 0 ; 0x1bc: 0x00000000
kfdhdb.ub4spare[49]: 0 ; 0x1c0: 0x00000000
kfdhdb.ub4spare[50]: 0 ; 0x1c4: 0x00000000
kfdhdb.ub4spare[51]: 0 ; 0x1c8: 0x00000000
kfdhdb.ub4spare[52]: 0 ; 0x1cc: 0x00000000
kfdhdb.ub4spare[53]: 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
[grid@zxy ~]$
30,把ASM磁盘头的信息备份到一个文本文件中
[grid@zxy ~]$ kfed read /dev/asm_mount aun=0 blknum=0 text=asm_header_backup.txt
[grid@zxy ~]$
[grid@zxy ~]$ more asm_header_backup.txt
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: 2526630745 ; 0x00c: 0x96995359
kfbh.fcn.base: 3896 ; 0x010: 0x00000f38
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: 186646528 ; 0x020: 0x0b200000
kfdhdb.dsknum: 0 ; 0x024: 0x0000
kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL
kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
kfdhdb.dskname: DG_MOUNT_0000 ; 0x028: length=13
kfdhdb.grpname: DG_MOUNT ; 0x048: length=8
kfdhdb.fgname: DG_MOUNT_0000 ; 0x068: length=13
kfdhdb.capname: ; 0x088: length=0
kfdhdb.crestmp.hi: 33052113 ; 0x0a8: HOUR=0x11 DAYS=0xe MNTH=0x5 YEAR=0x7e1
kfdhdb.crestmp.lo: 592004096 ; 0x0ac: USEC=0x0 MSEC=0x251 SECS=0x34 MINS=0x8
kfdhdb.mntstmp.hi: 33052462 ; 0x0b0: HOUR=0xe DAYS=0x19 MNTH=0x5 YEAR=0x7e1
kfdhdb.mntstmp.lo: 1778110464 ; 0x0b4: USEC=0x0 MSEC=0x2f4 SECS=0x1f MINS=0x1a
kfdhdb.secsize: 512 ; 0x0b8: 0x0200
kfdhdb.blksize: 4096 ; 0x0ba: 0x1000
kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000
kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80
kfdhdb.dsksize: 10240 ; 0x0c4: 0x00002800
kfdhdb.pmcnt: 2 ; 0x0c8: 0x00000002
kfdhdb.fstlocn: 1 ; 0x0cc: 0x00000001
kfdhdb.altlocn: 2 ; 0x0d0: 0x00000002
kfdhdb.f1b1locn: 2 ; 0x0d4: 0x00000002
31,从ASM磁盘头备份出来的文本文件恢复ASM磁盘头的元数据
[grid@zxy ~]$ kfed write /dev/asm_mount aun=0 blknum=0 text=asm_header_backup.txt
[grid@zxy ~]$
SQL> startup
ORACLE instance started.
Total System Global Area 906088448 bytes
Fixed Size 2258520 bytes
Variable Size 583010728 bytes
Database Buffers 314572800 bytes
Redo Buffers 6246400 bytes
Database mounted.
Database opened.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9240380/viewspace-2139863/
,如需转载,请注明出处,否则将追究法律责任。