기술 정보
home
채널 소개
home

트랜잭션에 따른 데이터 블록 내의 ITL 변화 확인 예제

문서 유형
기술 정보
분야
모니터링/점검
키워드
ITL
Block Dump
1 more property

개요

데이터 블록 내부에서 트랜잭션 처리와 관련된 정보가 어떻게 기록되고 처리되는지, 그리고 덤프 기능을 이용하여 데이터 블록 내부 정보를 확인하는 방법을 안내합니다.
참고
테스트는 아래와 같은 환경에서 진행하였습니다.
[tibero@T1:/tibero]$ tbboot -v
Tibero 6   (DB 6.0 FS06_CS_1703)
Linux stopbugs 2.6.9-89.ELsmp #1 SMP Mon Jun 22 12:31:33 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux version (little-endian)
Patch files (none)

방법

테이블 생성 및 데이터 삽입

CREATE TABLE TIBERO.T2 (c1 number, c2 char(2000)); insert into tibero.t2 values(111,'A'); insert into tibero.t2 values(222,'B'); insert into tibero.t2 values(333,'C'); insert into tibero.t2 values(444,'D'); insert into tibero.t2 values(555,'E'); insert into tibero.t2 values(666,'F');
SQL
복사

데이터 조회

select C1, SUBSTR(C2,1,1) from tibero.t2; C1 C2 ----------- 111 A 222 B 333 C 444 D 555 E 666 F
SQL
복사

파일 및 블록의 번호 조회

select C1, rowid, dbms_rowid.rowid_block_number(rowid) as blkno, dbms_rowid.rowid_to_relative_fno(rowid) as fno2 from tibero.t2; C1 ROWID BLKNO FNO2 ---------- ------------------ ---------- ---------- 111 AAAA5LAACAAADocAAA 14876 2 222 AAAA5LAACAAADocAAB 14876 2 333 AAAA5LAACAAADocAAC 14876 2 444 AAAA5LAACAAADodAAA 14877 2 555 AAAA5LAACAAADodAAB 14877 2 666 AAAA5LAACAAADodAAC 14877 2
SQL
복사

데이터 블록 덤프 실행

alter system dump datafile 2 block 14876; alter system dump datafile 2 block 14877;
SQL
복사

블록 덤프 항목 설명 및 분석 결과

ITL (Interested Transaction List)
예제에서는 itl 0의 fl(flag) 값이 'A'로 등록되어 있습니다.
'A'는 해당 트랜잭션이 커밋되지 않은 active 상태임을 의미합니다.
Row Piece (rp)
현재 총 2개의 블록에 걸쳐 **6개의 row piece (rp)**가 존재합니다.
첫 번째 블록에 3개, 두 번째 블록에 3개의 rp가 존재합니다.
xid 값: 0007.33.0134
이는 v$transaction 뷰의 3가지 컬럼(USN, SLOT, SQN) 값으로 나뉘어 해석됩니다
컬럼
설명
USN=7
7번 언두 세그먼트에서 롤백 정보를 저장하고 있음
SLOT=33
언두 세그먼트의 헤더 블록 내 33번 트랜잭션 슬롯에 관련 정보 저장
SQN=134
해당 트랜잭션 슬롯이 134번 재사용되었음을 의미함 (재사용 시마다 +1 증가)
uea 값
이는 언두 블록의 주소를 의미합니다.
해당 주소를 통해 UNDO 블록에 접근하면, 데이터 블록에 대한 UNDO 데이터를 저장하고 있습니다.
덤프 결과
트랜잭션이 커밋되기 전 상태에서 덤프를 수행한 결과, 6건의 row 모두 itl 정보의 fl 값이 'A'로 설정되어 있습니다.
이는 모든 row가 트랜잭션 진행 중(active) 임을 의미합니다.
[t72499@localhost tracedump]$ cat tb_dump_20650_19_425.trc
SQL
복사

블록 덤프 결과

**Dump start at 2017-12-18 18:21:09 DUMP of BLOCK file #2 block #14876 **Dump start at 2017-12-18 18:21:09 data block Dump[dba=02_00014876(8403484),tsn=0000.000a61d7,type=13,seqno =3] -------------------------------------------------------------- sgmt_id=3660 cleanout_tsn=0000.00000000 btxcnt=2 l1dba=02_00014871(8403479), offset_in_l1=5 btx xid undo fl tsn/credit 00 0007.33.0134 01_00028547.00011.00077 A 0000.00000000 01 0000.00.0000 00_00000000.00000.00000 I 0000.00000000 -------------------------------------------------------------- Data block dump: dlhdr_size=14 freespace=2060 freepos=2158 symtab_offset=0 rowcnt=3 Row piece dump: rp 0 6178: [2010] flag=--H-FL-- itlidx=0 colcnt=2 col 0: [4] 0000: 03 C2 81 8B .... col 1: [2003] 0000: FE 07 D0 41 20 20 20 20 20 20 20 20 20 20 20 20 ...A 0010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ~~~~~중략~~~~ 07D0: 20 20 20 rp 1 4168: [2010] flag=--H-FL-- itlidx=0 colcnt=2 col 0: [4] 0000: 03 C2 82 96 .... col 1: [2003] 0000: FE 07 D0 42 20 20 20 20 20 20 20 20 20 20 20 20 ...B 0010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ~~~~~중략~~~~ 07D0: 20 20 20 rp 2 2158: [2010] flag=--H-FL-- itlidx=0 colcnt=2 col 0: [4] 0000: 03 C2 83 A1 .... col 1: [2003] 0000: FE 07 D0 43 20 20 20 20 20 20 20 20 20 20 20 20 ...C 0010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ~~~~~중략~~~~ 07D0: 20 20 20 End of data block dump
SQL
복사
**Dump start at 2017-12-18 18:21:31 DUMP of BLOCK file #2 block #14877 **Dump start at 2017-12-18 18:21:31 data block Dump[dba=02_00014877(8403485),tsn=0000.000a61d7,type=13,seqno =3] -------------------------------------------------------------- sgmt_id=3660 cleanout_tsn=0000.00000000 btxcnt=2 l1dba=02_00014871(8403479), offset_in_l1=6 btx xid undo fl tsn/credit 00 0007.33.0134 01_00028547.00011.00080 A 0000.00000000 01 0000.00.0000 00_00000000.00000.00000 I 0000.00000000 -------------------------------------------------------------- Data block dump: dlhdr_size=14 freespace=2060 freepos=2158 symtab_offset=0 rowcnt=3 Row piece dump: rp 0 6178: [2010] flag=--H-FL-- itlidx=0 colcnt=2 col 0: [4] 0000: 03 C2 84 AC .... col 1: [2003] 0000: FE 07 D0 44 20 20 20 20 20 20 20 20 20 20 20 20 ...D 0010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ~~~~~중략~~~~ 07D0: 20 20 20 rp 1 4168: [2010] flag=--H-FL-- itlidx=0 colcnt=2 col 0: [4] 0000: 03 C2 85 B7 .... col 1: [2003] 0000: FE 07 D0 45 20 20 20 20 20 20 20 20 20 20 20 20 ...E 0010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ~~~~~중략~~~~ 07D0: 20 20 20 rp 2 2158: [2010] flag=--H-FL-- itlidx=0 colcnt=2 col 0: [4] 0000: 03 C2 86 C2 .... col 1: [2003] 0000: FE 07 D0 46 20 20 20 20 20 20 20 20 20 20 20 20 ...F 0010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0020: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ~~~~~중략~~~~ [t72499@localhost tracedump]$
SQL
복사