最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

【OracleASM】PSTPartnershipStatusTable介绍

来源:动视网 责编:小采 时间:2020-11-09 13:06:25
文档

【OracleASM】PSTPartnershipStatusTable介绍

【OracleASM】PSTPartnershipStatusTable介绍: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拷贝。多数的PS
推荐度:
导读【OracleASM】PSTPartnershipStatusTable介绍: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拷贝。多数的PS


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 valid
  • Version number to compare with other PST copies
  • List of disks containing PST copies
  • Bit map for shadow paging updates
  • PST的最后一个块是heartbeat block,当diskgroup mount时其每3秒心跳更新一次。

    以下为PST header

    kfed read /oracleasm/asm-disk01 aun=1 blkn=0 aus=4194304 |less 
    kfbh.endian: 1 ; 0x000: 0x01
    kfbh.hard: 130 ; 0x001: 0x82
    kfbh.type: 17 ; 0x002: KFBTYP_PST_META
    kfbh.datfmt: 2 ; 0x003: 0x02
    kfbh.block.blk: 1024 ; 0x004: blk=1024
    kfbh.block.obj: 21474838 ; 0x008: disk=0
    kfbh.check: 3813974007 ; 0x00c: 0xe3549ff7
    kfbh.fcn.base: 0 ; 0x010: 0x00000000
    kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
    kfbh.spare1: 0 ; 0x018: 0x00000000
    kfbh.spare2: 0 ; 0x01c: 0x00000000
    kfdpHdrPairBv1.first.super.time.hi:32999670 ; 0x000: HOUR=0x16 DAYS=0x7 MNTH=0x2 YEAR=0x7de
    kfdpHdrPairBv1.first.super.time.lo:1788841984 ; 0x004: USEC=0x0 MSEC=0x3e4 SECS=0x29 MINS=0x1a
    kfdpHdrPairBv1.first.super.last: 2 ; 0x008: 0x00000002
    kfdpHdrPairBv1.first.super.next: 2 ; 0x00c: 0x00000002
    kfdpHdrPairBv1.first.super.copyCnt: 5 ; 0x010: 0x05
    kfdpHdrPairBv1.first.super.version: 1 ; 0x011: 0x01
    kfdpHdrPairBv1.first.super.ub2spare: 0 ; 0x012: 0x0000
    kfdpHdrPairBv1.first.super.incarn: 1 ; 0x014: 0x00000001
    kfdpHdrPairBv1.first.super.copy[0]: 0 ; 0x018: 0x0000
    kfdpHdrPairBv1.first.super.copy[1]: 1 ; 0x01a: 0x0001
    kfdpHdrPairBv1.first.super.copy[2]: 2 ; 0x01c: 0x0002
    kfdpHdrPairBv1.first.super.copy[3]: 3 ; 0x01e: 0x0003
    kfdpHdrPairBv1.first.super.copy[4]: 4 ; 0x020: 0x0004
    kfdpHdrPairBv1.first.super.dtaSz: 15 ; 0x022: 0x000f
    kfdpHdrPairBv1.first.asmCompat:1866528 ; 0x024: 0x0b200000
    kfdpHdrPairBv1.first.newCopy[0]: 0 ; 0x028: 0x0000
    kfdpHdrPairBv1.first.newCopy[1]: 0 ; 0x02a: 0x0000
    kfdpHdrPairBv1.first.newCopy[2]: 0 ; 0x02c: 0x0000
    kfdpHdrPairBv1.first.newCopy[3]: 0 ; 0x02e: 0x0000
    kfdpHdrPairBv1.first.newCopy[4]: 0 ; 0x030: 0x0000
    kfdpHdrPairBv1.first.newCopyCnt: 0 ; 0x032: 0x00
    kfdpHdrPairBv1.first.contType: 1 ; 0x033: 0x01
    kfdpHdrPairBv1.first.spares[0]: 0 ; 0x034: 0x00000000
    kfdpHdrPairBv1.first.spares[1]: 0 ; 0x038: 0x00000000
    kfdpHdrPairBv1.first.spares[2]: 0 ; 0x03c: 0x00000000
    kfdpHdrPairBv1.first.spares[3]: 0 ; 0x040: 0x00000000
    kfdpHdrPairBv1.first.spares[4]: 0 ; 0x044: 0x00000000
    kfdpHdrPairBv1.first.spares[5]: 0 ; 0x048: 0x00000000
    kfdpHdrPairBv1.first.spares[6]: 0 ; 0x04c: 0x00000000
    kfdpHdrPairBv1.first.spares[7]: 0 ; 0x050: 0x00000000
    kfdpHdrPairBv1.first.spares[8]: 0 ; 0x054: 0x00000000
    kfdpHdrPairBv1.first.spares[9]: 0 ; 0x058: 0x00000000
    kfdpHdrPairBv1.first.spares[10]: 0 ; 0x05c: 0x00000000
    kfdpHdrPairBv1.first.spares[11]: 0 ; 0x060: 0x00000000
    kfdpHdrPairBv1.first.spares[12]: 0 ; 0x0: 0x00000000
    kfdpHdrPairBv1.first.spares[13]: 0 ; 0x068: 0x00000000
    kfdpHdrPairBv1.first.spares[14]: 0 ; 0x06c: 0x00000000
    kfdpHdrPairBv1.first.spares[15]: 0 ; 0x070: 0x00000000
    kfdpHdrPairBv1.first.spares[16]: 0 ; 0x074: 0x00000000
    kfdpHdrPairBv1.first.spares[17]: 0 ; 0x078: 0x00000000
    kfdpHdrPairBv1.first.spares[18]: 0 ; 0x07c: 0x00000000
    kfdpHdrPairBv1.first.spares[19]: 0 ; 0x080: 0x00000000

  • super.time wall clock time of last PST commit
  • super.last? last committed content version number
  • super.next next available content version number
  • super.copyCnt? # of disks holding PST copies
  • super.version?? version of PST header format
  • super.ub2spare? pad to ub4 align
  • super.incarn incarnation of list
  • super.copy[0]? disks holding the PST copies
  • super.dtaSz? data entries in PST
  • newCopy[0]?? new disks holding PST copies
  • newCopyCnt? new # disks holding PST copies
  • 以下为PST table block:

    kfed read /oracleasm/asm-disk02 aun=1 blkn=3 aus=4194304 |less 
    kfbh.endian: 1 ; 0x000: 0x01
    kfbh.hard: 130 ; 0x001: 0x82
    kfbh.type: 18 ; 0x002: KFBTYP_PST_DTA
    kfbh.datfmt: 2 ; 0x003: 0x02
    kfbh.block.blk: 1027 ; 0x004: blk=1027
    kfbh.block.obj: 21474839 ; 0x008: disk=1
    kfbh.check: 42044293 ; 0x00c: 0xfa9dc7c5
    kfbh.fcn.base: 0 ; 0x010: 0x00000000
    kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
    kfbh.spare1: 0 ; 0x018: 0x00000000
    kfbh.spare2: 0 ; 0x01c: 0x00000000
    kfdpDtaEv1[0].status: 127 ; 0x000: I=1 V=1 V=1 P=1 P=1 A=1 D=1
    kfdpDtaEv1[0].fgNum: 1 ; 0x002: 0x0001
    kfdpDtaEv1[0].addTs: 2022663849 ; 0x004: 0x788f66a9
    kfdpDtaEv1[0].partner[0]: 49154 ; 0x008: P=1 P=1 PART=0x2
    kfdpDtaEv1[0].partner[1]: 49153 ; 0x00a: P=1 P=1 PART=0x1
    kfdpDtaEv1[0].partner[2]: 49155 ; 0x00c: P=1 P=1 PART=0x3
    kfdpDtaEv1[0].partner[3]: 49166 ; 0x00e: P=1 P=1 PART=0xe
    kfdpDtaEv1[0].partner[4]: 49165 ; 0x010: P=1 P=1 PART=0xd
    kfdpDtaEv1[0].partner[5]: 491 ; 0x012: P=1 P=1 PART=0xc
    kfdpDtaEv1[0].partner[6]: 49156 ; 0x014: P=1 P=1 PART=0x4
    kfdpDtaEv1[0].partner[7]: 49163 ; 0x016: P=1 P=1 PART=0xb
    kfdpDtaEv1[0].partner[8]: 10000 ; 0x018: P=0 P=0 PART=0x2710
    kfdpDtaEv1[0].partner[9]: 0 ; 0x01a: P=0 P=0 PART=0x0
    kfdpDtaEv1[0].partner[10]: 0 ; 0x01c: P=0 P=0 PART=0x0
    kfdpDtaEv1[0].partner[11]: 0 ; 0x01e: P=0 P=0 PART=0x0
    kfdpDtaEv1[0].partner[12]: 0 ; 0x020: P=0 P=0 PART=0x0
    kfdpDtaEv1[0].partner[13]: 0 ; 0x022: P=0 P=0 PART=0x0
    kfdpDtaEv1[0].partner[14]: 0 ; 0x024: P=0 P=0 PART=0x0
    kfdpDtaEv1[0].partner[15]: 0 ; 0x026: P=0 P=0 PART=0x0
    kfdpDtaEv1[0].partner[16]: 0 ; 0x028: P=0 P=0 PART=0x0
    kfdpDtaEv1[0].partner[17]: 0 ; 0x02a: P=0 P=0 PART=0x0
    kfdpDtaEv1[0].partner[18]: 0 ; 0x02c: P=0 P=0 PART=0x0
    kfdpDtaEv1[0].partner[19]: 0 ; 0x02e: P=0 P=0 PART=0x0
    kfdpDtaEv1[1].status: 127 ; 0x030: I=1 V=1 V=1 P=1 P=1 A=1 D=1
    kfdpDtaEv1[1].fgNum: 2 ; 0x032: 0x0002
    kfdpDtaEv1[1].addTs: 2022663849 ; 0x034: 0x788f66a9
    kfdpDtaEv1[1].partner[0]: 49155 ; 0x038: P=1 P=1 PART=0x3
    kfdpDtaEv1[1].partner[1]: 49152 ; 0x03a: P=1 P=1 PART=0x0
    kfdpDtaEv1[1].partner[2]: 49154 ; 0x03c: P=1 P=1 PART=0x2
    kfdpDtaEv1[1].partner[3]: 49166 ; 0x03e: P=1 P=1 PART=0xe
    kfdpDtaEv1[1].partner[4]: 49157 ; 0x040: P=1 P=1 PART=0x5
    kfdpDtaEv1[1].partner[5]: 49156 ; 0x042: P=1 P=1 PART=0x4
    kfdpDtaEv1[1].partner[6]: 49165 ; 0x044: P=1 P=1 PART=0xd
    kfdpDtaEv1[1].partner[7]: 491 ; 0x046: P=1 P=1 PART=0xc
    kfdpDtaEv1[1].partner[8]: 10000 ; 0x048: P=0 P=0 PART=0x2710
    kfdpDtaEv1[1].partner[9]: 0 ; 0x04a: P=0 P=0 PART=0x0
    kfdpDtaEv1[1].partner[10]: 0 ; 0x04c: P=0 P=0 PART=0x0
    kfdpDtaEv1[1].partner[11]: 0 ; 0x04e: P=0 P=0 PART=0x0
    kfdpDtaEv1[1].partner[12]: 0 ; 0x050: P=0 P=0 PART=0x0
    kfdpDtaEv1[1].partner[13]: 0 ; 0x052: P=0 P=0 PART=0x0
    kfdpDtaEv1[1].partner[14]: 0 ; 0x054: P=0 P=0 PART=0x0
    kfdpDtaEv1[1].partner[15]: 0 ; 0x056: P=0 P=0 PART=0x0
    kfdpDtaEv1[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 status
  • fgNum?? fail group number
  • addTs?? timestamp of the addition to the diskgroup
  • kfdpDtaEv1[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: 0x01
    kfbh.hard: 130 ; 0x001: 0x82
    kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD
    kfbh.datfmt: 1 ; 0x003: 0x01
    kfbh.block.blk: 1022 ; 0x004: blk=1022
    kfbh.block.obj: 21474839 ; 0x008: disk=1
    kfbh.check: 3107059260 ; 0x00c: 0xb931f63c
    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: 1866528 ; 0x020: 0x0b200000
    kfdhdb.dsknum: 1 ; 0x024: 0x0001
    kfdhdb.grptyp: 3 ; 0x026: KFDGTP_HIGH
    kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER
    kfdhdb.dskname: DATA1_0001 ; 0x028: length=10
    kfdhdb.grpname: DATA1 ; 0x048: length=5
    kfdhdb.fgname: DATA1_0001 ; 0x068: length=10
    kfdhdb.capname: ; 0x088: length=0
    kfdhdb.crestmp.hi: 32999670 ; 0x0a8: HOUR=0x16 DAYS=0x7 MNTH=0x2 YEAR=0x7de
    kfdhdb.crestmp.lo: 1788720128 ; 0x0ac: USEC=0x0 MSEC=0x36d SECS=0x29 MINS=0x1a
    kfdhdb.mntstmp.hi: 32999670 ; 0x0b0: HOUR=0x16 DAYS=0x7 MNTH=0x2 YEAR=0x7de
    kfdhdb.mntstmp.lo: 1812990976 ; 0x0b4: USEC=0x0 MSEC=0x3 SECS=0x1 MINS=0x1b
    kfdhdb.secsize: 512 ; 0x0b8: 0x0200
    kfdhdb.blksize: 4096 ; 0x0ba: 0x1000
    kfdhdb.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: 0x01
    kfbh.hard: 130 ; 0x001: 0x82
    kfbh.type: 19 ; 0x002: KFBTYP_HBEAT
    kfbh.datfmt: 2 ; 0x003: 0x02
    kfbh.block.blk: 2047 ; 0x004: blk=2047
    kfbh.block.obj: 21474839 ; 0x008: disk=1
    kfbh.check: 1479766671 ; 0x00c: 0x5833728f
    kfbh.fcn.base: 0 ; 0x010: 0x00000000
    kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
    kfbh.spare1: 0 ; 0x018: 0x00000000
    kfbh.spare2: 0 ; 0x01c: 0x00000000
    kfdpHbeatB.instance: 1 ; 0x000: 0x00000001
    kfdpHbeatB.ts.hi: 32999734 ; 0x004: HOUR=0x16 DAYS=0x9 MNTH=0x2 YEAR=0x7de
    kfdpHbeatB.ts.lo: 3968041984 ; 0x008: USEC=0x0 MSEC=0xe1 SECS=0x8 MINS=0x3b
    kfdpHbeatB.rnd[0]: 1065296177 ; 0x00c: 0x3f7f2131
    kfdpHbeatB.rnd[1]: 857037208 ; 0x010: 0x33155998
    kfdpHbeatB.rnd[2]: 2779184235 ; 0x014: 0xa5a6fc6b
    kfdpHbeatB.rnd[3]: 26607939 ; 0x018: 0x9e987e85

  • kfdpHbeatB.instance?? instance id
  • kfdpHbeatB.ts.hi timestamp
  • kfdpHbeatB.rnd[0]? 随机加盐
  • ?External Redundancy一般有一个PST
  • Normal Redundancy至多有个3个PST
  • High 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:

    1. 【Oracle ASM数据恢复】ERROR: no PST quorum in group 1: required 2, found 0问题解析
    2. 【Oracle ASM数据恢复】如何恢复oracleasm deletedisk删除的ASM Disk
    3. 【Oracle ASM数据恢复】ORA-15032、ORA-15075 ASM DISK PATH Problem
    4. 【Oracle ASM】ASM FILE NUMBER #2 DISK Directory
    5. 【ASM数据恢复】如何修复ASM Disk header_status=FORMER的磁盘重新加入Diskgroup ORA-15017 ORA-15063 ORA-15032
    6. 【Oracle ASM Metadata】Template Directory (file #5)
    7. 【Oracle ASM】ASM FILE NUMBER 3 Active Change Directory
    8. 【Oracle ASM Metadata】Alias Directory (file #6)
    9. 【Oracle ASM】Continuing Operations Directory (file #4)
    10. 【Oracle ASM数据恢复】ORA-15042: ASM disk is missing after add disk took place错误解析

    文档

    【OracleASM】PSTPartnershipStatusTable介绍

    【OracleASM】PSTPartnershipStatusTable介绍: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拷贝。多数的PS
    推荐度:
    标签: oracle as pst
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top