基於redhat 6.5 oracle 11.2.0.4初識oracle asm diskgroup相關概念之一
分析結論
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.
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部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-2139863/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- redhat 6.5之oracle 11.2.0.4 asm例項異常抽取asm配置資訊之amdu初識之一RedhatOracleASM
- 【oracle 12c asm專題】flex diskgroup相關概念OracleASMFlex
- solaris 10_oracle asm_diskgroup_failgroup_相關OracleASMAI
- redhat 6.5 gcc編譯器初識之一RedhatGC編譯
- 基於redhat 6.5 oracle 11.2.0.4測試tts傳輸表空間之資料庫遷移之一RedhatOracleTTS資料庫
- oracle 11.2.0.1以及oracle 11.2.0.4資料庫的時區time zone相關概念之一Oracle資料庫
- solaris 10_oracle10g asm_create_alter_diskgroup相關命令OracleASM
- redhat 6.5 oracle 11.2.0.4 gi oracle asm在作業系統重啟cssd程式無法自動重啟簡析RedhatOracleASM作業系統CSS
- ASM之ASM相關概念ASM
- Oracle相關基礎知識Oracle
- redhat 6.5 parted磁碟分割槽工具初識Redhat
- solaris10_oracle10g asm_相關基本概念OracleASM
- 20170603星期六之redhat 6.5 asmcmd之一些新用法初識之一RedhatASM
- ASM相關概念(筆記)ASM筆記
- oracle asm diskgroup add datafile error problemOracleASMError
- CentOS 6.5安裝Oracle 11.2.0.4------CentOS 6.5安裝CentOSOracle
- Oracle RAC 相關概念(Final)Oracle
- 深入瞭解Oracle ASM(一):基礎概念OracleASM
- oracle之time zone時區timestamp with time zone相關的概念之一Oracle
- oracle relink重連結初識之一Oracle
- oracle goldengate 相關概念介紹OracleGo
- Oracle 相關知識點Oracle
- oracle awr相關知識Oracle
- [BBED]Oracle 11.2.0.4 Centos6.5下編譯bbedOracleCentOS編譯
- oracle weblogic 基礎知識之一OracleWeb
- oracle spatial之基礎知識之一Oracle
- oracle關於分割槽相關操作Oracle
- 【ASM】Oracle ASM + 11gR2 + RHEL6.5 安裝ASMOracle
- RedHat6.5 安裝Oracle 12c RACRedhatOracle
- redhat7.2靜默安裝Oracle11.2.0.4RedhatOracle
- [ZT] Oracle 10g RAC的相關概念Oracle 10g
- ASM單例項(Oracle 11.2.0.4)環境(一)ASM單例Oracle
- ASM單例項(Oracle 11.2.0.4)環境(二)ASM單例Oracle
- oracle mutex概念掃盲之一OracleMutex
- redhat6.5關於rac配置DNS的問題RedhatDNS
- 磁碟相關概念以及知識
- 虛擬機器 redhat 6.5 oracle11g RAC虛擬機RedhatOracle
- oracle資料庫網路相關的若干概念Oracle資料庫