Заголовки буферов (buffer header).X$BH

dbstalker, 11 июня

Буферный кэш содержит только буфера, но не управляющие структуры. Для каждого буфера есть соответствующий буферный заголовок в переменной области SGA. Аналогично, working set headers, the hash chain headers и их защелки также находятся в переменной области SGA.

Каждый буферный заголовок (buffer header) описывает содержимое одного буфера. Буферные заголовки составляют массив в постоянной части shared pool. Все буфера доступны через буферные заголовки. Сессии манипулируют буферными заголовками (а таким образом и буферами) посредством динамически размещаемых структур называемых буферными указателями. Буферный заголовок содержит ссылку на сам буфер и на защелку "Cache Buffers Chains latch".

Попробую дать немного информации, чтобы стало ясно, что такое заголовок буфера.

Выполним команду:

alter session set events 'immediate trace name buffers level 1'

Результат получим в папке, на которую установлен параметр инициализации user_dump_dest. Дамп содержит заголовки буферов. Например,

BH (0x827F5D8C) file#: 1 rdba: 0x0040c68e (1/50830) class 1 ba: 0x8261A000
  set: 9 dbwrid: 0 obj: 82 objn: 82
  hash: [a4c92344,a4c92344] lru: [827f60c4,827f5ae4]
  ckptq: [NULL] fileq: [NULL]
  st: XCURRENT md: NULL rsop: 0x00000000 tch: 0
  flags: only_sequential_access
  LRBA: [0x0.0.0] HSCN: [0xffff.ffffffff] HSUB: [255] RRBA: [0x0.0.0]

А теперь выберем информацию по этому буферу в таблице X$BH:

ADDR                                         INDX                                INST_ID HLADDR                                      BLSIZ NXT_HASH   PRV_HASH   NXT_REPL   PRV_REPL                                     FLAG                               LRU_FLAG                                    TS#                                  FILE#                                DBARFIL                                 DBABLK                                  CLASS                                  STATE                              MODE_HELD                                CHANGES                                 CSTATE                              X_TO_NULL                           FORCED_READS                          FORCED_WRITES LE_ADDR                               DIRTY_QUEUE SET_DS                                        OBJ BA                                     CR_SCN_BAS                             CR_SCN_WRP                             CR_XID_USN                             CR_XID_SLT                             CR_XID_SQN                             CR_UBA_FIL                             CR_UBA_BLK                             CR_UBA_SEQ                             CR_UBA_REC                                 CR_SFL                               LRBA_SEQ                               LRBA_BNO                               HSCN_BAS                               HSCN_WRP                               HSUB_SCN                               RRBA_SEQ                               RRBA_BNO US_NXT     US_PRV     WA_NXT     WA_PRV                                        TCH                                    TIM
---------- -------------------------------------- -------------------------------------- ---------- -------------------------------------- ---------- ---------- ---------- ---------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- ---------- -------------------------------------- ---------- -------------------------------------- ---------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- -------------------------------------- ---------- ---------- ---------- ---------- -------------------------------------- --------------------------------------
06559210                                    63060                                      1 A437C724                                     8192 A4C92344   A4C92344   827F60C4   827F5AE4                                   524288                                      0                                      0                                      1                                      1                                  50830                                      1                                      1                                      0                                      0                                      0                                      0                                      0                                      0 00                                              0 A437EEF4                                       82 8261A000                                        0                                      0                                      0                                      0                                      0                                      0                                      0                                      0                                      0                                      0                                      0                                      0                             4294967295                                  65535                                    255                                      0                                      0 827F5DC0   827F5DC0   827F5DC8   827F5DC8                                        0                                      0

Вот так можно получить исчерпывающую информацию о заголовке буфера. Приведу некоторые пояснения к изложенному выше.

Dump of buffer cache at level 1:

  • Buffer status (st) : xcurrent, CR, reading.
  • Lock mode (md) : exclusive (excl), shared (shr) , and null (null)
  • In cache data block summary : dba, inc & seq, version and block type
  • Buffer holder and waiters list
  • Reference to the buffer’s location on the hash chain, a pointer location of the buffer header on either the LRU or LRUW list and the pointer to the actual buffer block (ba). Note, buffers blocks can be on either the LRU or LRUW lists, but not both.
  • Flags (flags) indicating operation to be perform or performed on the buffer block and recovery information.

hash: [ ] местонахождение в cache buffer chains

lru: [] – местонахождение в lru списке

X$bh:

set_ds maps to addr on x$kcbwds.
flag is a bit array. 
Bit	if set	 	
0	Block is dirty	 	
4	temporary block	 	
9 or 10	ping	 	
14	stale	 	
16	direct	 	
524288 (=0x80000)	Block was read in a full table scan	See this link

Block classes
KCBCSVSH (Save Undo Segment Headers (block class 5))
KCBCSVUN (Save Undo Blocks (block class 3))
KCBCSORT (Sort Blocks (block class 2))
KCBCDATA (Data Blocks (block class 1))
KCBCSEGH (Segment Headers (block class 4))
KCBCFRLS (Free List Blocks (block class 6))
KCBCUSH (Undo Segment Header (block class 7 + (n*2)))
KCBCUSB (Undo Segment Block (block class 7 + (n*2) + 1))
Note: For undo (rollback) segments, 'n' is the undo segment number.
Block Class ‘0’ is reserved for error detection in KCB.

x$bh.state
decode(state, 0, 'FREE', /* not currently is use */ 
1, 'XCUR', /* held exclusive by this instance */ 
2, 'SCUR', /* held shared by this instance */ 
3, 'CR', /* only valid for consistent read */ 
4, 'READ', /* is being read from disk */ 
5, 'MREC', /* in media recovery mode */ 
6, 'IREC') /* in instance(crash) recovery mode */

 

Новый комментарий

Я не спамер: введите суму 7+7



 

От авторов блога

О Блоге - прочитай перед началом.

Задать вопрос и получить ответ - уже решено 94 вопросов

Глоссарий - список терминов и сокращений


 
 

Бизнес форум

Последние темы:

Спутниковое тв
21 января, 3 ответа