위 그림에서 제일 위에 있는 Block Header는 Cache layer(common)와 Transaction layer(varaible,fixed) 나뉩니다.

위에서 구분한 부분들의 각각 크기를 비교해보겠습니다.



SQL> select component, type, description, type_size
from v$type_size
where component in (‘KCB’,’KTB’);

COMPONEN TYPE       DESCRIPTION                   TYPE_SIZE
——– ——– ——————————– ———-
KCB     KCBH       BLOCK COMMON HEADER                  20
KTB     KTBIT       TRANSACTION VARIABLE HEADER             24
KTB     KTBBH       TRANSACTION FIXED HEADER             48
KTB     KTBBH_BS TRANSACTION BLOCK BITMAP SEGMENT         8




Cache Layer는 20byte이며 KCBH로 조회됩니다.

아래와 같은 정보를 포함하고 있습니다.

@Data Block Address(DBA,주소)

@Block Type(예 : Table, Index, Undo)

@Block Format(v6,v7,v8,오라클버전)

@System Change Number(SCN : 복구작업 등에 사용됨)



다음은 Transaction layer에 대해 알아보겠습니다



SQL> select component, type, description, type_size
from v$type_size
where component in (‘KCB’,’KTB’)  2    3  ;

COMPONEN TYPE       DESCRIPTION                   TYPE_SIZE
——– ——– ——————————– ———-
KCB     KCBH       BLOCK COMMON HEADER                  20
KTB     KTBIT       TRANSACTION VARIABLE HEADER             24
KTB     KTBBH       TRANSACTION FIXED HEADER             48
KTB     KTBBH_BS TRANSACTION BLOCK BITMAP SEGMENT         8




Fixed영역은 KTBBH영역에 해당되며 총 48 byte의 크기를 가집니다.

@Block Type

@마지막으로 수행된 Block Cleanout 시간, ITL Entries 정보, Free List Link 정보, Free space Lock 정보 등이 저장되어 있습니다



그리고 varaiable 영역은 KTBIT 부분에 해당되며 24byte의 크기를 가집니다. 여기에는 row를 변경하기를 원하는 실제 itl 관련 정보가 들어갑니다.

By haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

One thought on “Oracle 저장 구조 – Data Block”

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다