buffer_header

BH (0x73bf9418) file#: 1 rdba: 0x0040410d (1/16653) class: 1 ba: 0x73b82000
  set: 3 pool: 3 bsz: 8192 bsi: 0 sflg: 2 pwc: 0,19

  BH :            buffer header 的hash值
  file#:           对应x$bh file#
  rdba:           rowid中的相对文件号rfile#+block块号,
			       select dbms_utility.make_data_block_address(1,16653) from dual;
			       	DBMS_UTILITY.MAKE_DATA_BLOCK_ADDRESS(1,16653)
			       		---------------------------------------------
			       											4210957


			       0x0040410d ---- > 4210957

  class 1 :          对应x$bh.class 表示buffer header对应block的类型,1=data block
						1=data block
						2=sort block
						3=save undo block
						4=segment header
						5=save undo header
						6=free list
						7=extent map
						9=2nd level bmb
						10=3rd level bmb
						11=bitmap block
						12=bitmap index block
						14=undo header
						15=undo block

  ba ;              对应x$bh.ba ,块在内存中的物理地址
  set 3              对应x$bh.state
						0 = free
						1 = xcur
						2 = scur
						3 = cr
						4 = read
						5 = mrec
						6 = irec
						7 = write
						8 = pi
						9 = memory
						10 = mwrite
						11 = donated
						12 = protected
						13 = securefile
						14 = siop
						15 = recckpt
						16 = flashfree
						17 = flashcur
						18 = flashna

  bsz                块大小




  dbwrid: 0 obj: 495 objn: 497 tsn: 0 afn: 1 hint: f
  hash: [0x7df88a08,0x7df88a08] lru: [0x6e7d8100,0x72beea00]
  lru-flags: on_auxiliary_list
						0 buffer 在主lru冷端 注意: 为0时 在trace文件中找不到这项,但实际是在lru冷端
						2 buffer 在主lru冷端
						4 在辅助lru链表中
						6 在辅助lru链表中
						8 主lru热端
						9 主lru热端

  obj :                        对应x$bh.obj 块上数据在哪个对象里,
  hash: [0x7df88a08,0x7df88a08] 对应 x$bh.nxt_hash x$bh.prv_hash
								这里用链表,指出下一个及前一个bh的hash值,如果这个hash_chain上只有一个bh,
								则这里的下一个及前一个bh的hash都是此bh。
  lru: [0x6e7d8100,0x72beea00]  对应 x$bh.nxt_repl x$bh.prv_reol
								这里用链表,指出下一个及前一个BH在lru链上的hash值





  obj-flags: object_ckpt_list
  ckptq: [0x7d260260,0x733f9088] fileq: [0x7d2602a0,0x733f9098] objq: [0x733f9198,0x790e5828] objaq: [0x733f79e8,0x733f7788]
  st: XCURRENT md: NULL fpin: 'kdswh11: kdst_fetch' tch: 3
  flags: buffer_dirty redo_since_read
  LRBA: [0xb.21e6.0] LSCN: [0x0.87ee5] HSCN: [0x0.87ee6] HSUB: [1]


  lru-flags: moved_to_tail 		  对应x$bh.lru_flag
						              表示该数据经历了全表扫描,它被移到了lru冷端,随时可能被 age out
								  lru-flags 为0时,在dump buffer时不显示这一行
  obj-flags:                     对应x$bh.obj_flag 文件队列对应x$bh.rflag
  flags :                         对应x$bh.flag
								  buffer_dirty redo_since_read 在dml后可能会出现这种状态的flags
  ckptq: [0x7d260260,0x733f9088]  在检查点队列上的hash值
  fileq: [0x7d2602a0,0x733f9098]  在文件队列上的hash值
  objq: [0x733f9198,0x790e5828]   对应x$bh.oq_nxt x$bh.oq_prv 对象队列hash值
  objaq: [0x733f79e8,0x733f7788]  对应x$bh.aq_nxt x$bh.aq_prv 辅助对象列的hash值
  st: XCURRENT                    对应x$bh.state
  tch: 3                          对应x$bh.tch touch的缩写
  LRBA: [0xb.21e6.0] redo byte address 对应日志号,块号,第几字节 块第一次被修改
  LSCN: [0x0.87ee5]  修改时的scn,如记录有修改时的scn,可以转换此十六进制为scn进行比较

块是cr块时 会有这一列
  cr: [scn: 0x0.86f61],[xid: 0x0.0.0],[uba: 0x0.0.0],[cls: 0x0.86f61],[sfl: 0x0],[lc: 0x0.0]

  cr: [scn: 0x0.86f61]   		  产生此CR块时的scn
	  [uba: 0x0.0.0]      		  undo前映象地址
	  [xid: 0x0.0.0]	 		  事务id





  以上均为内存块 磁盘中的数据会有所不同
  block header 补充内容另起文档






猜你喜欢

转载自www.cnblogs.com/ykyk1229/p/8989880.html