您好,欢迎访问一九零五行业门户网

【Oracle ASM】PST Partnership Status Table介绍

partner and status table 相关:http://www.askmaclean.com/archives/know-oracle-asm-basic-html.html 一般来说aun=1 是保留给partner and status table(pst)的拷贝使用的。 一般5个asm disk将包含一份pst拷贝。多数的pst内容必须相同且验证有效。否则无法
partner and status table
相关:http://www.askmaclean.com/archives/know-oracle-asm-basic-html.html
一般来说aun=1 是保留给partner and status table(pst)的拷贝使用的。 一般5个asm disk将包含一份pst拷贝。多数的pst内容必须相同且验证有效。否则无法判断哪些asm disk实际拥有相关数据。
在 pst中每一条记录对应diskgroup中的一个asm disk。每一条记录会对一个asm disk枚举其partners的asm disk。同时会有一个flag来表示该disk是否是online可读写的。这些信息对recovery是否能做很重要。
pst表的blkn=0是pst的header,存放了如下的信息:
timestamp to indicate pst is validversion number to compare with other pst copieslist of disks containing pst copiesbit map for shadow paging updatespst的最后一个块是heartbeat block,当diskgroup mount时其每3秒心跳更新一次。
以下为pst header
kfed read /oracleasm/asm-disk01 aun=1 blkn=0 aus=4194304 |less kfbh.endian: 1 ; 0x000: 0x01kfbh.hard: 130 ; 0x001: 0x82kfbh.type: 17 ; 0x002: kfbtyp_pst_metakfbh.datfmt: 2 ; 0x003: 0x02kfbh.block.blk: 1024 ; 0x004: blk=1024kfbh.block.obj: 2147483648 ; 0x008: disk=0kfbh.check: 3813974007 ; 0x00c: 0xe3549ff7kfbh.fcn.base: 0 ; 0x010: 0x00000000kfbh.fcn.wrap: 0 ; 0x014: 0x00000000kfbh.spare1: 0 ; 0x018: 0x00000000kfbh.spare2: 0 ; 0x01c: 0x00000000kfdphdrpairbv1.first.super.time.hi:32999670 ; 0x000: hour=0x16 days=0x7 mnth=0x2 year=0x7dekfdphdrpairbv1.first.super.time.lo:1788841984 ; 0x004: usec=0x0 msec=0x3e4 secs=0x29 mins=0x1akfdphdrpairbv1.first.super.last: 2 ; 0x008: 0x00000002kfdphdrpairbv1.first.super.next: 2 ; 0x00c: 0x00000002kfdphdrpairbv1.first.super.copycnt: 5 ; 0x010: 0x05kfdphdrpairbv1.first.super.version: 1 ; 0x011: 0x01kfdphdrpairbv1.first.super.ub2spare: 0 ; 0x012: 0x0000kfdphdrpairbv1.first.super.incarn: 1 ; 0x014: 0x00000001kfdphdrpairbv1.first.super.copy[0]: 0 ; 0x018: 0x0000kfdphdrpairbv1.first.super.copy[1]: 1 ; 0x01a: 0x0001kfdphdrpairbv1.first.super.copy[2]: 2 ; 0x01c: 0x0002kfdphdrpairbv1.first.super.copy[3]: 3 ; 0x01e: 0x0003kfdphdrpairbv1.first.super.copy[4]: 4 ; 0x020: 0x0004kfdphdrpairbv1.first.super.dtasz: 15 ; 0x022: 0x000fkfdphdrpairbv1.first.asmcompat:186646528 ; 0x024: 0x0b200000kfdphdrpairbv1.first.newcopy[0]: 0 ; 0x028: 0x0000kfdphdrpairbv1.first.newcopy[1]: 0 ; 0x02a: 0x0000kfdphdrpairbv1.first.newcopy[2]: 0 ; 0x02c: 0x0000kfdphdrpairbv1.first.newcopy[3]: 0 ; 0x02e: 0x0000kfdphdrpairbv1.first.newcopy[4]: 0 ; 0x030: 0x0000kfdphdrpairbv1.first.newcopycnt: 0 ; 0x032: 0x00kfdphdrpairbv1.first.conttype: 1 ; 0x033: 0x01kfdphdrpairbv1.first.spares[0]: 0 ; 0x034: 0x00000000kfdphdrpairbv1.first.spares[1]: 0 ; 0x038: 0x00000000kfdphdrpairbv1.first.spares[2]: 0 ; 0x03c: 0x00000000kfdphdrpairbv1.first.spares[3]: 0 ; 0x040: 0x00000000kfdphdrpairbv1.first.spares[4]: 0 ; 0x044: 0x00000000kfdphdrpairbv1.first.spares[5]: 0 ; 0x048: 0x00000000kfdphdrpairbv1.first.spares[6]: 0 ; 0x04c: 0x00000000kfdphdrpairbv1.first.spares[7]: 0 ; 0x050: 0x00000000kfdphdrpairbv1.first.spares[8]: 0 ; 0x054: 0x00000000kfdphdrpairbv1.first.spares[9]: 0 ; 0x058: 0x00000000kfdphdrpairbv1.first.spares[10]: 0 ; 0x05c: 0x00000000kfdphdrpairbv1.first.spares[11]: 0 ; 0x060: 0x00000000kfdphdrpairbv1.first.spares[12]: 0 ; 0x064: 0x00000000kfdphdrpairbv1.first.spares[13]: 0 ; 0x068: 0x00000000kfdphdrpairbv1.first.spares[14]: 0 ; 0x06c: 0x00000000kfdphdrpairbv1.first.spares[15]: 0 ; 0x070: 0x00000000kfdphdrpairbv1.first.spares[16]: 0 ; 0x074: 0x00000000kfdphdrpairbv1.first.spares[17]: 0 ; 0x078: 0x00000000kfdphdrpairbv1.first.spares[18]: 0 ; 0x07c: 0x00000000kfdphdrpairbv1.first.spares[19]: 0 ; 0x080: 0x00000000
super.time wall clock time of last pst commitsuper.last? last committed content version numbersuper.next next available content version numbersuper.copycnt? # of disks holding pst copiessuper.version version of pst header formatsuper.ub2spare? pad to ub4 alignsuper.incarn incarnation of listsuper.copy[0]? disks holding the pst copiessuper.dtasz? data entries in pstnewcopy[0] new disks holding pst copiesnewcopycnt? new # disks holding pst copies
以下为pst table block:
kfed read /oracleasm/asm-disk02 aun=1 blkn=3 aus=4194304 |less kfbh.endian: 1 ; 0x000: 0x01kfbh.hard: 130 ; 0x001: 0x82kfbh.type: 18 ; 0x002: kfbtyp_pst_dtakfbh.datfmt: 2 ; 0x003: 0x02kfbh.block.blk: 1027 ; 0x004: blk=1027kfbh.block.obj: 2147483649 ; 0x008: disk=1kfbh.check: 4204644293 ; 0x00c: 0xfa9dc7c5kfbh.fcn.base: 0 ; 0x010: 0x00000000kfbh.fcn.wrap: 0 ; 0x014: 0x00000000kfbh.spare1: 0 ; 0x018: 0x00000000kfbh.spare2: 0 ; 0x01c: 0x00000000kfdpdtaev1[0].status: 127 ; 0x000: i=1 v=1 v=1 p=1 p=1 a=1 d=1kfdpdtaev1[0].fgnum: 1 ; 0x002: 0x0001kfdpdtaev1[0].addts: 2022663849 ; 0x004: 0x788f66a9kfdpdtaev1[0].partner[0]: 49154 ; 0x008: p=1 p=1 part=0x2kfdpdtaev1[0].partner[1]: 49153 ; 0x00a: p=1 p=1 part=0x1kfdpdtaev1[0].partner[2]: 49155 ; 0x00c: p=1 p=1 part=0x3kfdpdtaev1[0].partner[3]: 49166 ; 0x00e: p=1 p=1 part=0xekfdpdtaev1[0].partner[4]: 49165 ; 0x010: p=1 p=1 part=0xdkfdpdtaev1[0].partner[5]: 49164 ; 0x012: p=1 p=1 part=0xckfdpdtaev1[0].partner[6]: 49156 ; 0x014: p=1 p=1 part=0x4kfdpdtaev1[0].partner[7]: 49163 ; 0x016: p=1 p=1 part=0xbkfdpdtaev1[0].partner[8]: 10000 ; 0x018: p=0 p=0 part=0x2710kfdpdtaev1[0].partner[9]: 0 ; 0x01a: p=0 p=0 part=0x0kfdpdtaev1[0].partner[10]: 0 ; 0x01c: p=0 p=0 part=0x0kfdpdtaev1[0].partner[11]: 0 ; 0x01e: p=0 p=0 part=0x0kfdpdtaev1[0].partner[12]: 0 ; 0x020: p=0 p=0 part=0x0kfdpdtaev1[0].partner[13]: 0 ; 0x022: p=0 p=0 part=0x0kfdpdtaev1[0].partner[14]: 0 ; 0x024: p=0 p=0 part=0x0kfdpdtaev1[0].partner[15]: 0 ; 0x026: p=0 p=0 part=0x0kfdpdtaev1[0].partner[16]: 0 ; 0x028: p=0 p=0 part=0x0kfdpdtaev1[0].partner[17]: 0 ; 0x02a: p=0 p=0 part=0x0kfdpdtaev1[0].partner[18]: 0 ; 0x02c: p=0 p=0 part=0x0kfdpdtaev1[0].partner[19]: 0 ; 0x02e: p=0 p=0 part=0x0kfdpdtaev1[1].status: 127 ; 0x030: i=1 v=1 v=1 p=1 p=1 a=1 d=1kfdpdtaev1[1].fgnum: 2 ; 0x032: 0x0002kfdpdtaev1[1].addts: 2022663849 ; 0x034: 0x788f66a9kfdpdtaev1[1].partner[0]: 49155 ; 0x038: p=1 p=1 part=0x3kfdpdtaev1[1].partner[1]: 49152 ; 0x03a: p=1 p=1 part=0x0kfdpdtaev1[1].partner[2]: 49154 ; 0x03c: p=1 p=1 part=0x2kfdpdtaev1[1].partner[3]: 49166 ; 0x03e: p=1 p=1 part=0xekfdpdtaev1[1].partner[4]: 49157 ; 0x040: p=1 p=1 part=0x5kfdpdtaev1[1].partner[5]: 49156 ; 0x042: p=1 p=1 part=0x4kfdpdtaev1[1].partner[6]: 49165 ; 0x044: p=1 p=1 part=0xdkfdpdtaev1[1].partner[7]: 49164 ; 0x046: p=1 p=1 part=0xckfdpdtaev1[1].partner[8]: 10000 ; 0x048: p=0 p=0 part=0x2710kfdpdtaev1[1].partner[9]: 0 ; 0x04a: p=0 p=0 part=0x0kfdpdtaev1[1].partner[10]: 0 ; 0x04c: p=0 p=0 part=0x0kfdpdtaev1[1].partner[11]: 0 ; 0x04e: p=0 p=0 part=0x0kfdpdtaev1[1].partner[12]: 0 ; 0x050: p=0 p=0 part=0x0kfdpdtaev1[1].partner[13]: 0 ; 0x052: p=0 p=0 part=0x0kfdpdtaev1[1].partner[14]: 0 ; 0x054: p=0 p=0 part=0x0kfdpdtaev1[1].partner[15]: 0 ; 0x056: p=0 p=0 part=0x0kfdpdtaev1[1].partner[16]: 0 ; 0x058: p=0 p=0 part=0x0
kfdpdtaev1[0].status: 127 ; 0×000: i=1 v=1 v=1 p=1 p=1 a=1 d=1 disk statusfgnum fail group numberaddts timestamp of the addition to the diskgroupkfdpdtaev1[0].partner[0]: 49154 ; 0×008: p=1 p=1 part=0×2? partner list
aun=1 的最后第二个block中备份了一份kfbtyp_diskhead
[oracle@mlab2 hzy]$ kfed read /oracleasm/asm-disk02 aun=1 blkn=1022 aus=4194304 |less kfbh.endian: 1 ; 0x000: 0x01kfbh.hard: 130 ; 0x001: 0x82kfbh.type: 1 ; 0x002: kfbtyp_diskheadkfbh.datfmt: 1 ; 0x003: 0x01kfbh.block.blk: 1022 ; 0x004: blk=1022kfbh.block.obj: 2147483649 ; 0x008: disk=1kfbh.check: 3107059260 ; 0x00c: 0xb931f63ckfbh.fcn.base: 0 ; 0x010: 0x00000000kfbh.fcn.wrap: 0 ; 0x014: 0x00000000kfbh.spare1: 0 ; 0x018: 0x00000000kfbh.spare2: 0 ; 0x01c: 0x00000000kfdhdb.driver.provstr: orcldisk ; 0x000: length=8kfdhdb.driver.reserved[0]: 0 ; 0x008: 0x00000000kfdhdb.driver.reserved[1]: 0 ; 0x00c: 0x00000000kfdhdb.driver.reserved[2]: 0 ; 0x010: 0x00000000kfdhdb.driver.reserved[3]: 0 ; 0x014: 0x00000000kfdhdb.driver.reserved[4]: 0 ; 0x018: 0x00000000kfdhdb.driver.reserved[5]: 0 ; 0x01c: 0x00000000kfdhdb.compat: 186646528 ; 0x020: 0x0b200000kfdhdb.dsknum: 1 ; 0x024: 0x0001kfdhdb.grptyp: 3 ; 0x026: kfdgtp_highkfdhdb.hdrsts: 3 ; 0x027: kfdhdr_memberkfdhdb.dskname: data1_0001 ; 0x028: length=10kfdhdb.grpname: data1 ; 0x048: length=5kfdhdb.fgname: data1_0001 ; 0x068: length=10kfdhdb.capname: ; 0x088: length=0kfdhdb.crestmp.hi: 32999670 ; 0x0a8: hour=0x16 days=0x7 mnth=0x2 year=0x7dekfdhdb.crestmp.lo: 1788720128 ; 0x0ac: usec=0x0 msec=0x36d secs=0x29 mins=0x1akfdhdb.mntstmp.hi: 32999670 ; 0x0b0: hour=0x16 days=0x7 mnth=0x2 year=0x7dekfdhdb.mntstmp.lo: 1812990976 ; 0x0b4: usec=0x0 msec=0x3 secs=0x1 mins=0x1bkfdhdb.secsize: 512 ; 0x0b8: 0x0200kfdhdb.blksize: 4096 ; 0x0ba: 0x1000kfdhdb.ausize: 4194304 ; 0x0bc: 0x00400000
aun=1 的最后一个block为kfbtyp_hbeat 心跳表:
[oracle@mlab2 hzy]$ kfed read /oracleasm/asm-disk02 aun=1 blkn=1023 aus=4194304 |less kfbh.endian: 1 ; 0x000: 0x01kfbh.hard: 130 ; 0x001: 0x82kfbh.type: 19 ; 0x002: kfbtyp_hbeatkfbh.datfmt: 2 ; 0x003: 0x02kfbh.block.blk: 2047 ; 0x004: blk=2047kfbh.block.obj: 2147483649 ; 0x008: disk=1kfbh.check: 1479766671 ; 0x00c: 0x5833728fkfbh.fcn.base: 0 ; 0x010: 0x00000000kfbh.fcn.wrap: 0 ; 0x014: 0x00000000kfbh.spare1: 0 ; 0x018: 0x00000000kfbh.spare2: 0 ; 0x01c: 0x00000000kfdphbeatb.instance: 1 ; 0x000: 0x00000001kfdphbeatb.ts.hi: 32999734 ; 0x004: hour=0x16 days=0x9 mnth=0x2 year=0x7dekfdphbeatb.ts.lo: 3968041984 ; 0x008: usec=0x0 msec=0xe1 secs=0x8 mins=0x3bkfdphbeatb.rnd[0]: 1065296177 ; 0x00c: 0x3f7f2131kfdphbeatb.rnd[1]: 857037208 ; 0x010: 0x33155998kfdphbeatb.rnd[2]: 2779184235 ; 0x014: 0xa5a6fc6bkfdphbeatb.rnd[3]: 2660793989 ; 0x018: 0x9e987e85
kfdphbeatb.instance instance idkfdphbeatb.ts.hi timestampkfdphbeatb.rnd[0]? 随机加盐
?external redundancy一般有一个pstnormal redundancy至多有个3个psthigh redundancy 至多有5个pst
如下场景中pst 可能被重定位:
存有pst的asm disk不可用了(当asm启东时)asm disk offline了当对pst的读写发生了i/o错误disk被正常drop了
?在读取其他asm metadata之前会先检查pst当asm实例被要求mount diskgroup时,gmon进程会读取diskgroup中所有磁盘去找到和确认pst拷贝如果他发现有足够的pst,那么会mount diskgroup之后,pst会被缓存在asm缓存中,以及gmon的pga中并使用排他的pt.n.0锁保护同集群中的其他asm实例也将缓存pst到gmon的pga,并使用共享pt.n.o锁保护仅仅那个持有排他锁的gmon能更新磁盘上的pst信息每一个asm disk上的aun=1均为pst保留,但只有几个磁盘上真的有pst数据
kfbh.endian
kf3.h /*endiannessofwriter*/
little endian = 1 big endian = 0
kfbh.hard
kf3.h /*h.a.r.d.magic#andblocksize*/
kfbh.type
kf3.h /* metadata block type */
kfbh.datfmt
kf3.h /*metadatablockdataformat */
kfbh.block
kf3.h /*blocklocationofthisblock */
blk — disk header should have t=0 and numb=0×0
obj — disk header should have type=0×8 numb= blkandobjvaluesarederivedfromaseriesofmacrosinkf3.h. see “kfbl macros” in kf3.h for more information.
kfbh.check
kf3.h /*checkvaluetoverifyconsistency*/
kfbh.fcn
kf3.h /*changenumberoflastchange */
kfdphdrb.time.hi
kf3.h hiorderedbitsfromthelastcommittedpstupdate
kfdphdrb.time.lo
kf3.h loworderedbitsfromthelastcommittedpstupdate
kfdphdrb.last
kf3.h /* last version number */
kfdphdrb.next
kf3.h /* next version number */
kfdphdrb.copycnt
kf3.h /* # of pst copies */
this defaults to “1″ for external redundancy, “3″ for normal redundancy and”5″forhighredundancy. ifthenumberoffailuregroupsisless than the default value, the number failure groups is the value used.
kfdphdrb.incarn
kf3.h /* incarnation of */
this is set to kfdphdrb.last when the pst is moved to another disk.
kfdphdrb.copy[0-4]
kf3.h /* disks holding the pst copies */
[0] — external redundancy [0-2] –normalredundancy [0-4] –highredundancy
kfdphdrb.dtasz
kf3.h /*#dtaentriesinpst */
this is the number of disks that it needs to keep track of. ub1[0-4027]
related posts:
【oracle asm数据恢复】error: no pst quorum in group 1: required 2, found 0问题解析【oracle asm数据恢复】如何恢复oracleasm deletedisk删除的asm disk【oracle asm数据恢复】ora-15032、ora-15075 asm disk path problem【oracle asm】asm file number #2 disk directory【asm数据恢复】如何修复asm disk header_status=former的磁盘重新加入diskgroup ora-15017 ora-15063 ora-15032【oracle asm metadata】template directory (file #5)【oracle asm】asm file number 3 active change directory【oracle asm metadata】alias directory (file #6)【oracle asm】continuing operations directory (file #4)【oracle asm数据恢复】ora-15042: asm disk is missing after add disk took place错误解析 原文地址:【oracle asm】pst partnership status table介绍, 感谢原作者分享。
其它类似信息

推荐信息