这几天很蕉绿,想着复习下技术。个人很喜欢ASM,就从ASM开始复习。循环kfed发现一个很奇怪的事情,就是,我扫到AU 11的时候发现,居然这个aun的blkn0是KFBTYP_DISKHEAD。要知道以前看到KFBTYP_DISKHEAD就是第二个AU的倒数第二个块。这太奇怪了。。于是。。。
当时觉得这个特性很有用。磁盘头的4K备份在第二个AU的倒数第二个block上。这次观察到这个现象我以为是磁盘头的第三个备份。然后我对这个AU11进行读取。发现,不对。
Oracle PL/SQL
[grid@dm01db08 ~]$ kfed op=read dev=/dev/mapper/data01 aus=4m aun=11 blkn=0| grep type
kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD
[grid@dm01db08 ~]$ kfed op=read dev=/dev/mapper/data01 aus=4m aun=11 blkn=1| grep type
kfbh.type: 2 ; 0x002: KFBTYP_FREESPC
[grid@dm01db08 ~]$ kfed op=read dev=/dev/mapper/data01 aus=4m aun=11 blkn=2| grep type
kfbh.type: 3 ; 0x002: KFBTYP_ALLOCTBL
[grid@dm01db08 ~]$ kfed op=read dev=/dev/mapper/data01 aus=4m aun=11 blkn=3| grep type
kfbh.type: 3 ; 0x002: KFBTYP_ALLOCTBL
[grid@dm01db08 ~]$ kfed op=read dev=/dev/mapper/data01 aus=4m aun=11 blkn=4| grep type
kfbh.type: 3 ; 0x002: KFBTYP_ALLOCTBL
[grid@dm01db08 ~]$ kfed op=read dev=/dev/mapper/data01 aus=4m aun=11 blkn=1023| grep type
kfbh.type: 3 ; 0x002: KFBTYP_ALLOCTBL
1
2
3
4
5
6
7
8
9
10
11
12
13
[grid@dm01db08~]$kfedop=readdev=/dev/mapper/data01aus=4maun=11blkn=0|greptype
kfbh.type:1;0x002:KFBTYP_DISKHEAD
[grid@dm01db08~]$kfedop=readdev=/dev/mapper/data01aus=4maun=11blkn=1|greptype
kfbh.type:2;0x002:KFBTYP_FREESPC
[grid@dm01db08~]$kfedop=readdev=/dev/mapper/data01aus=4maun=11blkn=2|greptype
kfbh.type:3;0x002:KFBTYP_ALLOCTBL
[grid@dm01db08~]$kfedop=readdev=/dev/mapper/data01aus=4maun=11blkn=3|greptype
kfbh.type:3;0x002:KFBTYP_ALLOCTBL
[grid@dm01db08~]$kfedop=readdev=/dev/mapper/data01aus=4maun=11blkn=4|greptype
kfbh.type:3;0x002:KFBTYP_ALLOCTBL
[grid@dm01db08~]$kfedop=readdev=/dev/mapper/data01aus=4maun=11blkn=1023|greptype
kfbh.type:3;0x002:KFBTYP_ALLOCTBL
可以看到,AU11不仅备份了磁盘头,还备份了FST,还备份了AT表。
百撕不得骑姐。
搜谷歌。
找到这个特性叫做 Physical metadata replication。从ASM 12.1开始,ASM就会对物理元数据进行备份。
直觉上感觉这是个磁盘组的属性。
于是查看磁盘组属性。
Oracle PL/SQL
[grid@dm01db08 ~]$ asmcmd lsattr -G data
Name
access_control.enabled
access_control.umask
appliance._partnering_type
ate_conversion_done
au_size
cell.smart_scan_capable
cell.sparse_dg
compatible.asm
compatible.rdbms
content.check
content.type
content_hardcheck.enabled
disk_repair_time
failgroup_repair_time
idp.boundary
idp.type
logical_sector_size
phys_meta_replicated
preferred_read.enabled
scrub_async_limit
scrub_metadata.enabled
sector_size
thin_provisioned
vam_migration_done
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[grid@dm01db08~]$asmcmdlsattr-Gdata
Name
access_control.enabled
access_control.umask
appliance._partnering_type
ate_conversion_done
au_size
cell.smart_scan_capable
cell.sparse_dg
compatible.asm
compatible.rdbms
content.check
content.type
content_hardcheck.enabled
disk_repair_time
failgroup_repair_time
idp.boundary
idp.type
logical_sector_size
phys_meta_replicated
preferred_read.enabled
scrub_async_limit
scrub_metadata.enabled
sector_size
thin_provisioned
vam_migration_done
有一个很可疑的属性属性,叫做phys_meta_replicated。
我看了下这个属性的值:
Oracle PL/SQL
[grid@dm01db08 ~]$ asmcmd lsattr -G data -l phys_meta_replicated
Name Value
phys_meta_replicated true
[grid@dm01db08 ~]$
1
2
3
4
5
[grid@dm01db08~]$asmcmdlsattr-Gdata-lphys_meta_replicated
NameValue
phys_meta_replicatedtrue
[grid@dm01db08~]$
看起来是对物理metadata进行了replicate。
ASM的物理元数据包括:
磁盘头,FST,AT。
哦对了,我的环境是19c的ASM。