1. SQL> create table scott.t1 as select * from scott.emp where 1=2
  2. SQL> insert into scott.t1 select * from scott.emp where rownum =1
  3. SQL> alter session set events 'immediate trace name buffers level 1'; 
  4. Session altered. 
  5. SQL> select object_id from dba_objects where object_name = 'T1'
  6.  OBJECT_ID 
  7. ---------- 
  8.      74099 
  9. SQL> select dbms_rowid.rowid_block_number(rowid) from scott.t1; 
  10. DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) 
  11. ------------------------------------ 
  12.                                  179 
  13. SQL> select current_trace from dual; 
  14. CURRENT_TRACE 
  15. ----------------------------------------------- 
  16. /opt/app/oracle/diag/rdbms/db2/db2/trace/db2_ora_15394.trc 
  17. SQL> ho vim /opt/app/oracle/diag/rdbms/db2/db2/trace/db2_ora_15394.trc 
  18.  
  19. BH (0x28fe6eb8) (BUFFER HEADER的hash值)file#: 4 rdba: 0x010000b3 (4/179) (块的位置)class: 1 ba: 0x28cc0000 (该数据块在BUFFER CACHE的地址)
  20.   set: 10 pool 3 bsz: 8192 bsi: 0 sflg: 1 pwc: 0,25 
  21.   dbwrid: 1 obj: 74099 (对象ID)objn: 74099 tsn: 4 afn: 4 hint: f 
  22.   hash: [0x33ab8b34,0x33ab8b34](同一天BUFERR CACHE CHAIN的上一块和下一块的HASH值,形成链)
  23. lru: [0x28fe7038,0x28fe6e90]
  24.   obj-flags: object_ckpt_list 
  25.   ckptq: [0x28fe6de4,0x28fe6f8c] fileq: [0x28fe6dec,0x28fe6f94] objq: [0x28fe7050,0x28fe6ea8] 
  26.  
  27.   st: XCURRENT (因为我们是UPDATE,可以看到这里有个排他锁)md: NULL tch: 1 (该块TOUCH了一次)
  28.   flags: buffer_dirty redo_since_read 
  29.   LRBA: [0x91.d69.0](数据块第一次更改对应的REDO BYTES ADDRESS) LSCN: [0x0.5c7cba] HSCN: [0x0.5c7cba] (最新更改的SCN)HSUB: [2] 
  30.   cr pin refcnt: 0 sh pin refcnt: 0 

BUFFER HEADER中包含的信息

1) 该数据块在buffer cache中实际的内存地址。
2) 该数据块的类型,包括data、segment header、undo header、undo block等等。
3) 该buffer header所在的hash chain,是通过在buffer header里保存指向前一个buffer header的指针和指向后一个buffer header的指针的方式实现的。
4) 该buffer header所在的LRU、LRUW、CKPTQ等链表,也是通过记录前后buffer header指针的方式实现。
5) 当前该buffer header所对应的数据块的状态以及标记。
6) 该buffer header被访问(touch)的次数。
7) 正在等待该buffer header的进程列表(waiter list)和正在使用该buffer header的进程列表(user list)。