54
© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved. Research & Contents Team Analysis of Oracle Performance Degradation caused by Inefficient block cleanout Oracle Deep Internal report no. 004 (2016.05.20)

[KOR] ODI no.004 analysis of oracle performance degradation caused by inefficient block cleanout

  • Upload
    exem

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Research & Contents Team

Analysis of Oracle Performance

Degradation caused by

Inefficient block cleanout

Oracle Deep Internal report no. 004 (2016.05.20)

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Ⅰ. Transaction slot Before-image Chaining

Ⅰ-1. Questions

Ⅰ-2. Architecture of transaction slot before-image chaining

Ⅰ-3. Flow chart of delayed block cleanout

Ⅱ. Block cleanout Analysis

Ⅱ-1. Fast block cleanout (Fast commit)

Ⅱ-2. Delayed block cleanout using “commit SCN” of transaction slot

Ⅱ-3. Efficient Delayed Block Cleanout

(Delayed block cleanout using “commit SCN” of TRN CTL)

Ⅱ-4. Inefficient Delayed Block Cleanout

(Delayed block cleanout using ”commit SCN” of transaction slot before-image chaining)

Table of Agenda

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Ⅰ. Transaction slot Before-image Chaining

Oracle Deep Internal

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Ⅰ-1. Questions

Select 시 db file sequential read가 반복적으로 수행되는 wait 현상이 대형 오라클사이트에서 빈번하게 발생

Undo file Undo block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Transaction slot의 commit scn을 data block itl의 scn/fsc 컬럼에 update 하는 것

Data blockData block

Cleanout 이란 무엇인가?Question 1

BH (0x643fa1c8) file#: 5 rdba: 0x0140dcad (5/56493) class: 1 ba: 0x643b6000st: XCURRENT md: EXCL fpin: 'kdswh11: kdst_fetch' tch: 1

Itl Xid Uba Flag Lck Scn/Fsc0x01 0x000a.000.00000534 0x018000d2.01e6.01 C--- 0 scn 0x0000.003dbe3a0x02 0x0007.000.000004ed 0x018000a2.01d5.01 ---- 1 fsc 0x0000.00000000tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

BH (0x643fa1c8) file#: 5 rdba: 0x0140dcad (5/56493) class: 1 ba: 0x643b6000st: XCURRENT md: EXCL fpin: 'kdswh11: kdst_fetch' tch: 1

Itl Xid Uba Flag Lck Scn/Fsc0x01 0x000a.000.00000534 0x018000d2.01e6.01 C--- 0 scn 0x0000.003dbe3a0x02 0x0007.000.000004ed 0x018000a2.01d5.01 --U- 1 fsc 0x0000.003dbe4etl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

Undo Headerindex state cflags wrap# uel scn dba-----------------------------------------------------------------------------------

0x00 10 0x80 0x04ed 0x0000 0x0000.003dbe4e 0x018000a20x01 9 0x00 0x04ec 0x0002 0x0000.003d6d72 0x00000000 0x02 9 0x00 0x04ec 0x0003 0x0000.003d6d72 0x00000000

트랜잭션 상태 Cleanout 상태

Answer 1

Ⅰ-1. Questions

Commit scn

Commit scn적용 전

Commit scn적용 후

Transaction 상태

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

순식간에 완료된다.

• 일부만 cleanout 하고 나중에 cleanout하기 때문에 시간이 적게

소요된다.

만약 100억 건을 update 한 후에 Commit을 한다면,

100억 건에 대해서 모두 완료하기까지 시간이 얼마나 소요될까?

Question 2

Answer 2

Ⅰ-1. Questions

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Undo는 제한된 자원이기 때문에 트랜잭션 슬롯은 overwrite이 된다.

나중에 사용하기 위해서 저장하고 있던 commit scn은 어떻게 될까?

Question 3

• Undo는 제한적인 자원이기 때문에 영원히 보관할 수 없고, 시간이 지나

면 aging out 된다.

• Undo slot의 before image가 chaining 되면서 저장된다.

• 뒤의 슬라이드 참조

Answer 3

Ⅰ-1. Questions

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

TRN CTLseq: 0x0485 chd: 0x0006 ctl: 0x0005uba: 0x0180011c.0485.31 scn: 0x0000.0022c7ffindex state cflags wrap# uel scn dba-------------------------------------------------------------------------------0x05 9 0x00 0x0ad4 0xffff 0x0000.0022c818 0x0180011e0x06 9 0x00 0x0ad6 0x0005 0x0000.0022c811 0x0180011c

rdba: 0x01800160 (6/352)

TRN CTLseq: 0x0485 chd: 0x0005 ctl: 0x0006 uba: 0x0180011e.0485.02 scn: 0x0000.0022c811index state cflags wrap# uel scn dba--------------------------------------------------------------------------------------0x05 9 0x00 0x0ad4 0x0006 0x0000.0022c818 0x0180011e0x06 10 0x80 0x0ad7 0xffff 0x0000.0022c821 0x0180011f

UNDO BLKrdba: 0x0180011e seq: 0x485 Rec # 0x2 slt: 0x06 xid: 0x0001.006.00000ad7uba: 0x0180011c.0485.31 ctl max scn: 0x0000.0022c7ff prv tx scn: 0x0000.0022c811

chd 0x0006 슬롯을 사용할 예정이기때문에 uba, trn ctl SCN, 0x06 slot

SCN이 before image로 저장

Ⅰ-2. Architecture of transaction slot before image chaining (1/3)

• Chd: chain header 링크드 리스트의 시작, 다음번 트랜잭션이 사용할 트랜잭션 테이블 슬롯

• Ctl: chain tail 링크드 리스트의 끝, 해언당 두세그먼트에서 마지막으로 사용한 트랜잭션 테이블 슬롯

0x06 슬롯 갱신(state 10, cflags 0x80, SCN 갱신)

1

3

rdba: 0x0180011e (6/286)

rdba: 0x01800160 (6/352)

Update된 undo header block은TRN CTL uba에 before image의위치를 기록하고, SCN에 이전 슬롯의

SCN을 기록

2

file#=6 block#=352

1 1 2

2

1

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

TRN CTLseq: 0x0485 chd: 0x0006 ctl: 0x0005uba: 0x0180011c.0485.31 scn: 0x0000.0022c7ffindex state cflags wrap# uel scn dba-------------------------------------------------------------------------------0x05 9 0x00 0x0ad4 0xffff 0x0000.0022c818 0x0180011e0x06 9 0x00 0x0ad6 0x0005 0x0000.0022c811 0x0180011c

TRN CTLseq: 0x0485 chd: 0x0005 ctl: 0x0006 uba: 0x0180011e.0485.02 scn: 0x0000.0022c811index state cflags wrap# uel scn dba--------------------------------------------------------------------------------------0x05 9 0x00 0x0ad4 0x0006 0x0000.0022c818 0x0180011e0x06 9 0x00 0x0ad7 0xffff 0x0000.0022c821 0x0180011f

rdba: 0x0180011e (6/286)UNDO BLKrdba: 0x0180011e seq: 0x485 Rec # 0x2 slt: 0x06 xid: 0x0001.006.00000ad7uba: 0x0180011c.0485.31 ctl max scn: 0x0000.0022c7ff prv tx scn: 0x0000.0022c811rdba: 0x0180011f (6/287)

UNDO BLKrdba: 0x0180011f seq: 0x485 Rec # 0x2 slt: 0x05 xid: 0x0001.006.00000ad7uba: 0x0180011e.0485.02 ctl max scn: 0x0000.0022c811 prv tx scn: 0x0000.0022c818

TRN CTLseq: 0x0485 chd: 0x0006 ctl: 0x0005 uba: 0x0180011f.0485.02 scn: 0x0000.0022c818index state cflags wrap# uel scn dba--------------------------------------------------------------------------------------0x05 10 0x80 0x0ad5 0xffff 0x0000.0022c829 0x018001200x06 9 0x00 0x0ad7 0x0005 0x0000.0022c821 0x0180011f

0x05 슬롯 갱신(state 10, cflags 0x80, SCN 갱신)

Ⅰ-2. Architecture of transaction slot before image chaining (2/3)

3

rdba: 0x01800160 (6/352)

rdba: 0x01800160 (6/352)

chd 0x0005 슬롯을 사용할 예정이기때문에 uba, trn ctl SCN, 0x05 slot

SCN이 before image로 저장

1

rdba: 0x01800160 (6/352)

Update된 undo header block은TRN CTL uba에 before image의위치를 기록하고, SCN에 이전 슬롯의

SCN을 기록

2

1 11

2

2

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

TRN CTLseq: 0x0485 chd: 0x0006 ctl: 0x0005uba: 0x0180011c.0485.31 scn: 0x0000.0022c7ffindex state cflags wrap# uel scn dba-------------------------------------------------------------------------------0x05 9 0x00 0x0ad4 0xffff 0x0000.0022c818 0x0180011e0x06 9 0x00 0x0ad6 0x0005 0x0000.0022c811 0x0180011c

TRN CTLseq: 0x0485 chd: 0x0005 ctl: 0x0006 uba: 0x0180011e.0485.02 scn: 0x0000.0022c811index state cflags wrap# uel scn dba--------------------------------------------------------------------------------------0x05 9 0x00 0x0ad4 0x0006 0x0000.0022c818 0x0180011e0x06 9 0x00 0x0ad7 0xffff 0x0000.0022c821 0x0180011f

UNDO BLKrdba: 0x0180011e seq: 0x485 Rec # 0x2 slt: 0x06 xid: 0x0001.006.00000ad7uba: 0x0180011c.0485.31 ctl max scn: 0x0000.0022c7ff prv tx scn: 0x0000.0022c811

UNDO BLKrdba: 0x0180011f seq: 0x485 Rec # 0x2 slt: 0x05 xid: 0x0001.006.00000ad7uba: 0x0180011e.0485.02 ctl max scn: 0x0000.0022c811 prv tx scn: 0x0000.0022c818

TRN CTLseq: 0x0485 chd: 0x0006 ctl: 0x0005 uba: 0x0180011f.0485.02 scn: 0x0000.0022c818index state cflags wrap# uel scn dba--------------------------------------------------------------------------------------0x05 9 0x00 0x0ad5 0xffff 0x0000.0022c829 0x018001200x06 9 0x00 0x0ad7 0x0005 0x0000.0022c821 0x0180011f

TRN CTLseq: 0x0486 chd: 0x0005 ctl: 0x0006 uba: 0x01800120.0486.02 scn: 0x0000.0022c821index state cflags wrap# uel scn dba--------------------------------------------------------------------------------------0x05 9 0x00 0x0ad5 0x0006 0x0000.0022c829 0x01800120 0x06 10 0x80 0x0ad8 0xffff 0x0000.0022c832 0x01800121

UNDO BLKrdba: 0x01800120 seq: 0x486 Rec # 0x2 slt: 0x06 xid: 0x0001.005.00000ad5 uba: 0x0180011f.0485.02 ctl max scn: 0x0000.0022c818 prv tx scn: 0x0000.0022c821

0x06 슬롯 갱신(state 10, cflags 0x80, SCN 갱신)

Ⅰ-2. Architecture of transaction slot before image chaining (3/3)

3

Endless loop..

rdba: 0x01800160 (6/352)

rdba: 0x01800160 (6/352)

rdba: 0x01800160 (6/352)

rdba: 0x01800160 (6/352)

rdba: 0x0180011e (6/286)

rdba: 0x0180011f (6/287)

rdba: 0x01800120 (6/288)

chd 0x0006 슬롯을 사용할 예정이기때문에 uba, trn ctl SCN, 0x06 slot

SCN이 before image로 저장 Update된 undo header block은TRN CTL uba에 before image의위치를 기록하고, SCN에 이전 슬롯의

SCN을 기록

1

2

1 11

2

2

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

YES

NO

NO

YES

YES

NO

Wrap 번호가 같은가?

Before-image SCN이Query SCN보다 최신인가?

TRN CTL SCN 적용

이전 이미지 SCN과 비교반복 수행

해당 SCN 적용

해당 SCN 적용

<Delayed Block cleanout 작업>

Efficient delayed block cleanout

Inefficient delayed block cleanout

delayed block cleanout using “commit SCN” of transaction slot

Ⅰ-3. Flow chart of delayed block cleanout

Query SCN이 TRNCTL SCN보다 최신인가?

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Ⅰ-3. Flow chart of delayed block cleanout

<Inefficient delayed block cleanout> Undo Header

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0486 chd: 0x0005 ctl: 0x0006 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x01800120.0486.02 scn: 0x0000.0022d821

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad5 0x0006 0x0000.0022d829 0x01800120 0x06 9 0x00 0x0ad8 0xffff 0x0000.0022d832 0x01800121

Undo Block

buffer tsn: 6 rdba: 0x01800120 (6/288)UNDO BLK:xid: 0x0001.005.00000ad5 seq: 0x486 cnt: 0x1 irb: 0x1 icl: 0x0 flg: 0x0000* Rec #0x2 slt: 0x06 objn: 70146(0x00011202) objd: 70146 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011f.0485.02 ctl max scn: 0x0000.0022d818 prv tx scn: 0x0000.0022d821txn start scn: scn: 0x0000.0022d831 logon user: 5prev brb: 25166111 prev bcl: 0

Undo Block

buffer tsn: 6 rdba: 0x0180011f (6/287)UNDO BLK:xid: 0x0001.006.00000ad7 seq: 0x485 cnt: 0x1 irb: 0x1 icl: 0x0 flg: 0x0000* Rec #0x2 slt: 0x05 objn: 70146(0x00011202) objd: 70146 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011e.0485.02 ctl max scn: 0x0000.0022d811 prv tx scn: 0x0000.0022d818txn start scn: scn: 0x0000.0022d828 logon user: 5prev brb: 25166110 prev bcl: 0

1

2

3

4

Wrap 번호 비교

TRN CTL SCN을Query SCN과 비교

Before image SCN을Query SCN과 비교

해당 before image SCN으로 적용

NO

NO

NO

Wrap 번호가같은가?

Query SCN이 TRN CTL SCN보다 최신인가?

Before-image SCN이Query SCN보다 최신인가?

해당 SCN 적용

0x0ad6 ≠0x0ad8

• Query SCN: 0x0000.0022d811• Wrap#: 0x0ad6 (itl의 xid)

1

2

3

4

d811 < d821

Query SCN TRN CTL SCN

d811 < d818

Query SCN TRN CTL SCN

d811 ≥ d811

Query SCN TRN CTL SCN

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Oracle Deep Internal

Ⅱ. Block cleanout 분석

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Ⅱ-1. Fast block cleanout (Fast commit)

Oracle Deep Internal

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Commit SCN↓

9 (Committed)

10 (Active)

0x01 0x0008.013.000018a8

1--U- Commit SCN(Base#)

0x13 0x008004f8

0x008004f8.00cf.06

버퍼 캐시의 10% 초과하지 않는 블록들은

세션 메모리 내에 리스트로 생성

Fast block cleanout은“트랜잭션이 종료되는 시점에 Dirty블록에 관련된 트랜잭션의 정보를 정리하는 작업”

0x18a8

Ⅱ-1. Fast block cleanout (Fast commit)

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Oracle Deep Internal

Ⅱ-2. Delayed block cleanout using “commit SCN” of transaction slot

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Ⅱ-2. Delayed block cleanout using “commit SCN” of transaction slot

Delayed block cleanout은

“커밋 시점에 클린아웃 되지 않은 블록들(변경 하려는 블록의 수가 버퍼 캐시의 10%를 초과),

메모리에서 flush되어 cleanout 처리되지 않고 datafile에 기록된 블록들을 다음 세션에 의해 클린아웃 작업”

0x13 0x0080006c

0x01 0C--- Commit SCN0x008004f800cf.06

9 (Committed) Commit SCN0x18a8

0x0008.013.000018a8

Row Lock

Delayed block cleanout을 수행하는 세션은 클린아웃 되지 않은 트랜잭션의 xid를 이용해

undo header block의 transaction table을 확인(트랜잭션 종료여부, SCN)후, 해당 block

header의 ITL에 Lock byte 해제, SCN 설정, Flag를 C---로 변경 후 이에 대한 redo log를

생성한다.

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Ⅱ-3. Efficient Delayed Block Cleanout

Oracle Deep Internal

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

* Upper bound commit

Upper bound commit은

“원래 commit이 일어난 시점의 SCN이어야 하지만 overwrite 되었을 경우,

cleanout 할 쿼리 SCN(818)부터 시작해서 원래 commit이 일어난 시점(811)의 SCN

사이에 있는 가장 높은 값을 의미한다”

Upper bound commit

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Ⅱ-3. Efficient Delayed Block Cleanout

• Undo segment 10개 중 9개 offline, 1개만 online

• Undo segment의 34개 슬롯 중 32개 active, 2개만 사용 가능시나리오

Update Table T1

Flush Buffer

Commit

Update & Commit

Update & Commit

Update & Commit

Update & Commit

Select Table T1

t1

t2

t3

S1 S2Time

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Rows

1. 초기상태

ITL

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Header

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 41

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc1 chd: 0x0014 ctl: 0x0004 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.1cc1.05 scn: 0x0000.006e8ee1

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 9 0x00 0x353a 0x0004 0x0000.006e8ee3 0x0180011c

Undo Block

Itl Xid Uba Flag Lck Scn/fsc

ASCII code 41=> Value ‘A’

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Rows

ITL

2. update t1 set col2='B';

Undo Header

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 41

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc1 chd: 0x0014 ctl: 0x0004 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.1cc1.05 scn: 0x0000.006e8ee1

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 9 0x00 0x353a 0x0004 0x0000.006e8ee3 0x0180011c

Itl Xid Uba Flag Lck Scn/fsc

ASCII code 41=> Value ‘A’

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc1 chd: 0x0014 ctl: 0x0004 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.1cc1.05 scn: 0x0000.006e8ee1

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 9 0x00 0x353a 0x0004 0x0000.006e8ee3 0x0180011c

Undo Block

buffer tsn: 6 rdba: 0x0180011b (6/283)UNDO BLK:xid: 0x0006.014.0000353b seq: 0x1cc1 cnt: 0x31 irb: 0x31 icl: 0x0 flg: 0x0000* Rec #0xa slt: 0x14 objn: 78003(0x000130b3) objd: 78003 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011c.1cc1.05 ctl max scn: 0x0000.006e8ee1 prv tx scn: 0x0000.006e8ee3txn start scn: scn: 0x0000.006e8efa logon user: 5prev brb: 25166108 prev bcl: 0

Undo Header메모리에 적재

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Rows

ITL

2. update t1 set col2='B';

Undo Header

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 41

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc1 chd: 0x0014 ctl: 0x0004 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.1cc1.05 scn: 0x0000.006e8ee1

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 9 0x00 0x353a 0x0004 0x0000.006e8ee3 0x0180011c

Itl Xid Uba Flag Lck Scn/fsc

ASCII code 41=> Value ‘A’

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc1 chd: 0x0014 ctl: 0x0004 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.1cc1.05 scn: 0x0000.006e8ee1

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 9 0x00 0x353a 0x0004 0x0000.006e8ee3 0x0180011c

Undo Block

buffer tsn: 6 rdba: 0x0180011b (6/283)UNDO BLK:xid: 0x0006.014.0000353b seq: 0x1cc1 cnt: 0x31 irb: 0x31 icl: 0x0 flg: 0x0000* Rec #0xa slt: 0x14 objn: 78003(0x000130b3) objd: 78003 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011c.1cc1.05 ctl max scn: 0x0000.006e8ee1 prv tx scn: 0x0000.006e8ee3txn start scn: scn: 0x0000.006e8efa logon user: 5prev brb: 25166108 prev bcl: 0

chd 0x0014 슬롯을 사용할 예정이기때문에 uba, trn ctl SCN, 0x14 slot

SCN이 before-image로 저장

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Rows

ITL

Undo Block

buffer tsn: 6 rdba: 0x0180011b (6/283)UNDO BLK:xid: 0x0006.014.0000353b seq: 0x1cc1 cnt: 0x31 irb: 0x31 icl: 0x0 flg: 0x0000* Rec #0xa slt: 0x14 objn: 78003(0x000130b3) objd: 78003 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011c.1cc1.05 ctl max scn: 0x0000.006e8ee1 prv tx scn: 0x0000.006e8ee3txn start scn: scn: 0x0000.006e8efa logon user: 5prev brb: 25166108 prev bcl: 0

2. update t1 set col2='B';

Undo Header

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 41

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc1 chd: 0x0014 ctl: 0x0004 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.1cc1.05 scn: 0x0000.006e8ee1

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 9 0x00 0x353a 0x0004 0x0000.006e8ee3 0x0180011c

Itl Xid Uba Flag Lck Scn/fsc

ASCII code 41=> Value ‘A’

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc1 chd: 0x0014 ctl: 0x0004 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.1cc1.05 scn: 0x0000.006e8ee1

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 9 0x00 0x353a 0x0004 0x0000.006e8ee3 0x0180011c

BH (0x63fe3de8) file#: 6 rdba: 0x01800120 (6/288) class: 27 ba: 0x63d6e000st: XCURRENT md: NULL tch: 1buffer tsn: 6 rdba: 0x01800120 (6/288)…TRN CTL:: seq: 0x1cc1 chd: 0x0004 ctl: 0x0004 inc: 0x00000000 nfb: 0x0000

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011b.1cc1.0a scn: 0x0000.006e8ee3

…index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b 0x14 10 0x80 0x353b 0x0005 0x0000.006e8efa 0x0180011b

Update된 undo header block은 TRN CTL uba에 before-image의 위치를 기록하

고, SCN에 이전 슬롯의 SCN을 기록

Before image가 있는Undo Block

0x14 슬롯 갱신(state, cflag, wrap#, scn)

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Rows

ITL

Undo Block

buffer tsn: 6 rdba: 0x0180011b (6/283)UNDO BLK:xid: 0x0006.014.0000353b seq: 0x1cc1 cnt: 0x31 irb: 0x31 icl: 0x0 flg: 0x0000* Rec #0xa slt: 0x14 objn: 78003(0x000130b3) objd: 78003 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011c.1cc1.05 ctl max scn: 0x0000.006e8ee1 prv tx scn: 0x0000.006e8ee3txn start scn: scn: 0x0000.006e8efa logon user: 5prev brb: 25166108 prev bcl: 0

BH (0x63fe3de8) file#: 6 rdba: 0x01800120 (6/288) class: 27 ba: 0x63d6e000st: XCURRENT md: NULL tch: 1buffer tsn: 6 rdba: 0x01800120 (6/288)…TRN CTL:: seq: 0x1cc1 chd: 0x0004 ctl: 0x0004 inc: 0x00000000 nfb: 0x0000

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011b.1cc1.0a scn: 0x0000.006e8ee3

…index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b 0x14 10 0x80 0x353b 0x0005 0x0000.006e8efa 0x0180011b

2. update t1 set col2='B';

Undo Header

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 41

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc1 chd: 0x0014 ctl: 0x0004 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.1cc1.05 scn: 0x0000.006e8ee1

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 9 0x00 0x353a 0x0004 0x0000.006e8ee3 0x0180011c

Itl Xid Uba Flag Lck Scn/fsc

ASCII code 41=> Value ‘A’

Rows

ITL

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 41

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Itl Xid Uba Flag Lck Scn/fscItl Xid Uba Flag Lck Scn/fsc

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Rows

ITL

Undo Block

buffer tsn: 6 rdba: 0x0180011b (6/283)UNDO BLK:xid: 0x0006.014.0000353b seq: 0x1cc1 cnt: 0x31 irb: 0x31 icl: 0x0 flg: 0x0000* Rec #0xa slt: 0x14 objn: 78003(0x000130b3) objd: 78003 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011c.1cc1.05 ctl max scn: 0x0000.006e8ee1 prv tx scn: 0x0000.006e8ee3txn start scn: scn: 0x0000.006e8efa logon user: 5prev brb: 25166108 prev bcl: 0

BH (0x63fe3de8) file#: 6 rdba: 0x01800120 (6/288) class: 27 ba: 0x63d6e000st: XCURRENT md: NULL tch: 1buffer tsn: 6 rdba: 0x01800120 (6/288)…TRN CTL:: seq: 0x1cc1 chd: 0x0004 ctl: 0x0004 inc: 0x00000000 nfb: 0x0000

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011b.1cc1.0a scn: 0x0000.006e8ee3

…index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b 0x14 10 0x80 0x353b 0x0005 0x0000.006e8efa 0x0180011b

2. update t1 set col2='B';

Undo Header

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 41

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc1 chd: 0x0014 ctl: 0x0004 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.1cc1.05 scn: 0x0000.006e8ee1

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 9 0x00 0x353a 0x0004 0x0000.006e8ee3 0x0180011c

Itl Xid Uba Flag Lck Scn/fsc

ASCII code 41=> Value ‘A’

Rows

ITL

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 41

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Itl Xid Uba Flag Lck Scn/fsc

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0006.014.0000353b 0x0180011b.1cc1.28 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Itl Xid Uba Flag Lck Scn/fsc

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ASCII code 42=> Value ‘B’

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

ASCII code 42=> Value ‘B’

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0006.014.0000353b 0x0180011b.1cc1.28 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

3. alter system flush buffer_cache ;

Undo Header

Undo Block

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc1 chd: 0x0004 ctl: 0x0004 inc: 0x00000000 nfb: 0x0000

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011b.1cc1.0a scn: 0x0000.006e8ee3

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 10 0x80 0x353b 0x0005 0x0000.006e8efa 0x0180011b

buffer tsn: 6 rdba: 0x0180011b (6/283)UNDO BLK:xid: 0x0006.014.0000353b seq: 0x1cc1 cnt: 0x31 irb: 0x31 icl: 0x0 flg: 0x0000* Rec #0xa slt: 0x14 objn: 78003(0x000130b3) objd: 78003 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011c.1cc1.05 ctl max scn: 0x0000.006e8ee1 prv tx scn: 0x0000.006e8ee3txn start scn: scn: 0x0000.006e8efa logon user: 5prev brb: 25166108 prev bcl: 0

flush

Itl Xid Uba Flag Lck Scn/fsc

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

4. commit;

BH (0x637f5020) file#: 6 rdba: 0x01800120 (6/288) class: 27 ba: 0x63730000st: XCURRENT md: NULL fpin: 'ktuwh61: ktugus:ktucmt' tch: 1buffer tsn: 6 rdba: 0x01800120 (6/288)…TRN CTL:: seq: 0x1cc1 chd: 0x0004 ctl: 0x0014 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011b.1cc1.0a scn: 0x0000.006e8ee3

…index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0x0014 0x0000.006e8ee4 0x0180011b 0x14 9 0x00 0x353b 0xffff 0x0000.006e8efd 0x0180011b

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

ASCII code 42=> Value ‘B’

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0006.014.0000353b 0x0180011b.1cc1.28 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Header

Undo Block

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc1 chd: 0x0004 ctl: 0x0004 inc: 0x00000000 nfb: 0x0000

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011b.1cc1.0a scn: 0x0000.006e8ee3

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 10 0x80 0x353b 0x0005 0x0000.006e8efa 0x0180011b

buffer tsn: 6 rdba: 0x0180011b (6/283)UNDO BLK:xid: 0x0006.014.0000353b seq: 0x1cc1 cnt: 0x31 irb: 0x31 icl: 0x0 flg: 0x0000* Rec #0xa slt: 0x14 objn: 78003(0x000130b3) objd: 78003 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011c.1cc1.05 ctl max scn: 0x0000.006e8ee1 prv tx scn: 0x0000.006e8ee3txn start scn: scn: 0x0000.006e8efa logon user: 5prev brb: 25166108 prev bcl: 0

Itl Xid Uba Flag Lck Scn/fsc

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

5. Undo Header Slot 재사용 (세션2에서 Update 첫 번째)

Undo Block

Undo Header

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

ASCII code 42=> Value ‘B’

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0006.014.0000353b 0x0180011b.1cc1.28 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

BH (0x637f5020) file#: 6 rdba: 0x01800120 (6/288) class: 27 ba: 0x63730000st: XCURRENT md: NULL fpin: 'ktuwh61: ktugus:ktucmt' tch: 2buffer tsn: 6 rdba: 0x01800120 (6/288)…TRN CTL:: seq: 0x1cc1 chd: 0x0014 ctl: 0x0014 inc: 0x00000000 nfb: 0x0000

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011b.1cc1.32 scn: 0x0000.006e8ee4

…index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------

0x04 10 0x80 0x3539 0x0005 0x0000.006e8f05 0x0180011d0x14 9 0x00 0x353b 0xffff 0x0000.006e8efd 0x0180011b

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc1 chd: 0x0004 ctl: 0x0004 inc: 0x00000000 nfb: 0x0000

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011b.1cc1.0a scn: 0x0000.006e8ee3

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 10 0x80 0x353b 0x0005 0x0000.006e8efa 0x0180011b

buffer tsn: 6 rdba: 0x0180011d (6/285)UNDO BLK:xid: 0x0006.004.00003539 seq: 0x1cc1 cnt: 0x1 irb: 0x1 icl: 0x0 flg: 0x0000* Rec #0x1 slt: 0x04 objn: 78004(0x000130b4) objd: 78004 tblspc: 5(0x00000005)col 1: [2000]41 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20

Itl Xid Uba Flag Lck Scn/fsc

Session2> Update t2 set col2=‘B’;

Session2> Commit;

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

6. Undo Header Slot 재사용 (세션2에서 Update 두 번째)

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

ASCII code 42=> Value ‘B’

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0006.014.0000353b 0x0180011b.1cc1.28 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

Undo Header

BH (0x637f5020) file#: 6 rdba: 0x01800120 (6/288) class: 27 ba: 0x63730000st: XCURRENT md: NULL fpin: 'ktuwh61: ktugus:ktucmt' tch: 2buffer tsn: 6 rdba: 0x01800120 (6/288)…TRN CTL:: seq: 0x1cc1 chd: 0x0004 ctl: 0x0004 inc: 0x00000000 nfb: 0x0000

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011d.1cc1.02 scn: 0x0000.006e8efd

…index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3539 0xffff 0x0000.006e8f06 0x0180011d 0x14 10 0x80 0x353c 0x0005 0x0000.006e8f0d 0x0180011e

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc1 chd: 0x0004 ctl: 0x0004 inc: 0x00000000 nfb: 0x0000

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011b.1cc1.0a scn: 0x0000.006e8ee3

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 10 0x80 0x353b 0x0005 0x0000.006e8efa 0x0180011b

buffer tsn: 6 rdba: 0x0180011e (6/286)UNDO BLK:xid: 0x0006.014.0000353c seq: 0x1cc1 cnt: 0x1 irb: 0x1 icl: 0x0 flg: 0x0000* Rec #0x1 slt: 0x14 objn: 78004(0x000130b4) objd: 78004 tblspc: 5(0x00000005)col 1: [2000]50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20

Itl Xid Uba Flag Lck Scn/fsc

Session2> Update t2 set col2=‘B’;

Session2> Commit;

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

7. Undo Header Slot 재사용 (세션2에서 Update 세 번째)

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

ASCII code 42=> Value ‘B’

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0006.014.0000353b 0x0180011b.1cc1.28 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

Undo Header

BH (0x637f5020) file#: 6 rdba: 0x01800120 (6/288) class: 27 ba: 0x63730000st: XCURRENT md: NULL fpin: 'ktuwh61: ktugus:ktucmt' tch: 2buffer tsn: 6 rdba: 0x01800120 (6/288)…TRN CTL:: seq: 0x1cc1 chd: 0x0014 ctl: 0x0014 inc: 0x00000000 nfb: 0x0000

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011e.1cc1.02 scn: 0x0000.006e8f06

…index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 10 0x80 0x353a 0x0005 0x0000.006e8f15 0x0180011f0x14 9 0x00 0x353c 0xffff 0x0000.006e8f0e 0x0180011e

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc1 chd: 0x0004 ctl: 0x0004 inc: 0x00000000 nfb: 0x0000

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011b.1cc1.0a scn: 0x0000.006e8ee3

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 10 0x80 0x353b 0x0005 0x0000.006e8efa 0x0180011b

buffer tsn: 6 rdba: 0x0180011f (6/287)UNDO BLK:xid: 0x0006.004.0000353a seq: 0x1cc1 cnt: 0x1 irb: 0x1 icl: 0x0 flg: 0x0000* Rec #0x1 slt: 0x04 objn: 78004(0x000130b4) objd: 78004 tblspc: 5(0x00000005)col 1: [2000]51 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20

Itl Xid Uba Flag Lck Scn/fsc

Session2> Update t2 set col2=‘B’;

Session2> Commit;

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

8. Undo Header Slot 재사용 (세션2에서 Update 네 번째)

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

ASCII code 42=> Value ‘B’

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0006.014.0000353b 0x0180011b.1cc1.28 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

Undo Header

BH (0x637f5020) file#: 6 rdba: 0x01800120 (6/288) class: 27 ba: 0x63730000st: XCURRENT md: NULL fpin: 'ktuwh61: ktugus:ktucmt' tch: 3buffer tsn: 6 rdba: 0x01800120 (6/288)…TRN CTL:: seq: 0x1cc2 chd: 0x0004 ctl: 0x0004 inc: 0x00000000 nfb: 0x0000

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011f.1cc1.02 scn: 0x0000.006e8f0e

…index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x353a 0xffff 0x0000.006e8f16 0x0180011f 0x14 10 0x80 0x353d 0x0005 0x0000.006e8f1c 0x01800130

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc1 chd: 0x0004 ctl: 0x0004 inc: 0x00000000 nfb: 0x0000

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011b.1cc1.0a scn: 0x0000.006e8ee3

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 10 0x80 0x353b 0x0005 0x0000.006e8efa 0x0180011b

buffer tsn: 6 rdba: 0x01800130 (6/304)UNDO BLK:xid: 0x0006.014.0000353d seq: 0x1cc2 cnt: 0x1 irb: 0x1 icl: 0x0 flg: 0x0000

* Rec #0x1 slt: 0x14 objn: 78004(0x000130b4) objd: 78004 tblspc: 5(0x00000005)col 1: [2000]52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20

Itl Xid Uba Flag Lck Scn/fsc

Session2> Update t2 set col2=‘B’;

Session2> Commit;

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

BH (0x647efe78) file#: 6 rdba: 0x01800120 (6/288) class: 27 ba: 0x646aa000st: XCURRENT md: NULL fpin: 'ktuwh05: ktugct' tch: 1buffer tsn: 6 rdba: 0x01800120 (6/288)…TRN CTL:: seq: 0x1cc2 chd: 0x0004 ctl: 0x0014 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011f.1cc1.02 scn: 0x0000.006e8f0e

…index state cflags wrap# uel scn dba

-----------------------------------------------------------------------------------------0x04 9 0x00 0x353a 0x0014 0x0000.006e8f16 0x0180011f 0x14 9 0x00 0x353d 0xffff 0x0000.006e8f1e 0x01800130

9. select /*+ full(t1) */count(*) from t1 where rownum <= 1; 현재 시점 undo header block 의 TRN CTL SCN 값으로 cleanout

BH (0x657f85c0) file#: 5 rdba: 0x01418413 (5/99347) class: 1 ba: 0x65788000st: XCURRENT md: NULL fpin: 'kdswh11: kdst_fetch' tch: 1buffer tsn: 5 rdba: 0x01418413 (5/99347)…

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0006.014.0000353b 0x0180011b.1cc1.28 C-U- 0 scn 0x0000.006e8f0e0x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000…block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

ASCII code 42=> Value ‘B’

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0006.014.0000353b 0x0180011b.1cc1.28 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

Undo Header

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc2 chd: 0x0004 ctl: 0x0014 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011f.1cc1.02 scn: 0x0000.006e8f0e

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x353a 0x0014 0x0000.006e8f16 0x0180011f 0x14 9 0x00 0x353d 0xffff 0x0000.006e8f1e 0x01800130

buffer tsn: 6 rdba: 0x01800130 (6/304)UNDO BLK:xid: 0x0006.014.0000353d seq: 0x1cc2 cnt: 0x1 irb: 0x1 icl: 0x0 flg: 0x0000

* Rec #0x1 slt: 0x14 objn: 78004(0x000130b4) objd: 78004 tblspc: 5(0x00000005)col 1: [2000]52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20

Itl Xid Uba Flag Lck Scn/fsc

Itl Xid Uba Flag Lck Scn/fsc

ASCII code 42=> Value ‘B’

Begin cleaning out block ...Block header dump: 0x01418413…Itl Xid Uba Flag Lck Scn/Fsc0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0006.014.0000353b 0x0180011b.1cc1.28 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

WAIT #139971596639184: nam='db file sequential read' ela= 15 file#=6 block#=288 blocks=1 obj#=0 tim=1460423039184663…Block cleanout record, scn: 0xffff.ffffffff ver: 0x01 opt: 0x01, entries follow...

itli: 2 flg: 1 scn: 0x0000.006e8f0eBlock header dump: 0x01418413…Itl Xid Uba Flag Lck Scn/Fsc

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0006.014.0000353b 0x0180011b.1cc1.28 C-U- 0 scn 0x0000.006e8f0e0x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo header Block

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

BH (0x647efe78) file#: 6 rdba: 0x01800120 (6/288) class: 27 ba: 0x646aa000st: XCURRENT md: NULL fpin: 'ktuwh05: ktugct' tch: 1buffer tsn: 6 rdba: 0x01800120 (6/288)…TRN CTL:: seq: 0x1cc2 chd: 0x0004 ctl: 0x0014 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011f.1cc1.02 scn: 0x0000.006e8f0e

…index state cflags wrap# uel scn dba

-----------------------------------------------------------------------------------------0x04 9 0x00 0x353a 0x0014 0x0000.006e8f16 0x0180011f 0x14 9 0x00 0x353d 0xffff 0x0000.006e8f1e 0x01800130

9. select /*+ full(t1) */count(*) from t1 where rownum <= 1; 현재 시점 undo header block 의 TRN CTL SCN 값으로 cleanout.

BH (0x657f85c0) file#: 5 rdba: 0x01418413 (5/99347) class: 1 ba: 0x65788000st: XCURRENT md: NULL fpin: 'kdswh11: kdst_fetch' tch: 1buffer tsn: 5 rdba: 0x01418413 (5/99347)…

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0006.014.0000353b 0x0180011b.1cc1.28 C-U- 0 scn 0x0000.006e8f0e0x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000…block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

ASCII code 42=> Value ‘B’

0x01 0x002c.002.000000b4 0x00000000.0000.00 C--- 0 scn 0x0000.006e84260x02 0x0006.014.0000353b 0x0180011b.1cc1.28 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

Undo Header

buffer tsn: 6 rdba: 0x01800120 (6/288)TRN CTL:: seq: 0x1cc2 chd: 0x0004 ctl: 0x0014 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011f.1cc1.02 scn: 0x0000.006e8f0e

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x04 9 0x00 0x353a 0x0014 0x0000.006e8f16 0x0180011f 0x14 9 0x00 0x353d 0xffff 0x0000.006e8f1e 0x01800130

buffer tsn: 6 rdba: 0x01800130 (6/304)UNDO BLK:xid: 0x0006.014.0000353d seq: 0x1cc2 cnt: 0x1 irb: 0x1 icl: 0x0 flg: 0x0000

* Rec #0x1 slt: 0x14 objn: 78004(0x000130b4) objd: 78004 tblspc: 5(0x00000005)col 1: [2000]52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20

Itl Xid Uba Flag Lck Scn/fsc

Itl Xid Uba Flag Lck Scn/fsc

ASCII code 42=> Value ‘B’

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Ⅱ-4. Inefficient Delayed Block Cleanout

Oracle Deep Internal

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Ⅱ-4. Inefficient delayed block cleanout

• Undo segment 10개 중 9개 offline, 1개만 online

• Undo segment의 34개 슬롯 중 32개 active, 2개만 사용 가능시나리오

Update Table T1

Flush Buffer

Commit

Select Table T1

t1

t2

t4

S1 S2Time

t3Update & Commit

Update & Commit

Update & Commit

Update & Commit

Set transaction

read only

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 41

1. 초기상태

ITL

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Header

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0485 chd: 0x0006 ctl: 0x0005 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.05 scn: 0x0000.0022c7fb

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 0x0180011c

ASCII code 41=> Value ‘A’

Undo Block

Itl Xid Uba Flag Lck Scn/fsc

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Undo Header메모리에 적재

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 41

ITL

ASCII code 41=> Value ‘A’

0x01 0x001e.01b.0000000d 0x00000000.0000.00 C--- 0 scn 0x0000.002263d90x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

buffer tsn: 6 rdba: 0x0180011c (6/284)UNDO BLK:xid: 0x0001.006.00000ad6 seq: 0x485 cnt: 0x30 irb: 0x30 icl: 0x0 flg: 0x0000* Rec #0x9 slt: 0x06 objn: 70145(0x00011201) objd: 70145 tblspc: 5(0x00000005)

uba: 0x0180011c.0485.05 ctl max scn: 0x0000.0022c7fb prv tx scn: 0x0000.0022c7fetxn start scn: scn: 0x0000.0022c809 logon user: 5prev brb: 25166108 prev bcl: 0

2. update t1 set col2='B';

Undo Header

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0485 chd: 0x0006 ctl: 0x0005 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.05 scn: 0x0000.0022c7fb

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 0x0180011c

Itl Xid Uba Flag Lck Scn/fsc

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0485 chd: 0x0006 ctl: 0x0005 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.05 scn: 0x0000.0022c7fb

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 0x0180011c

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 41

ITL

ASCII code 41=> Value ‘A’

0x01 0x001e.01b.0000000d 0x00000000.0000.00 C--- 0 scn 0x0000.002263d90x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

buffer tsn: 6 rdba: 0x0180011c (6/284)UNDO BLK:xid: 0x0001.006.00000ad6 seq: 0x485 cnt: 0x30 irb: 0x30 icl: 0x0 flg: 0x0000* Rec #0x9 slt: 0x06 objn: 70145(0x00011201) objd: 70145 tblspc: 5(0x00000005)

uba: 0x0180011c.0485.05 ctl max scn: 0x0000.0022c7fb prv tx scn: 0x0000.0022c7fetxn start scn: scn: 0x0000.0022c809 logon user: 5prev brb: 25166108 prev bcl: 0

2. update t1 set col2='B';

Undo Header

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0485 chd: 0x0006 ctl: 0x0005 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.05 scn: 0x0000.0022c7fb

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 0x0180011c

Itl Xid Uba Flag Lck Scn/fsc

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0485 chd: 0x0006 ctl: 0x0005 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.05 scn: 0x0000.0022c7fb

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 0x0180011c

chd 0x0006 슬롯을 사용할 예정이기때문에 uba, trn ctl SCN, 0x06

slot SCN이 before-mage로 저장

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0485 chd: 0x0006 ctl: 0x0005 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.05 scn: 0x0000.0022c7fb

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 0x0180011c

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 41

ITL

ASCII code 41=> Value ‘A’

0x01 0x001e.01b.0000000d 0x00000000.0000.00 C--- 0 scn 0x0000.002263d90x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

buffer tsn: 6 rdba: 0x0180011c (6/284)UNDO BLK:xid: 0x0001.006.00000ad6 seq: 0x485 cnt: 0x30 irb: 0x30 icl: 0x0 flg: 0x0000* Rec #0x9 slt: 0x06 objn: 70145(0x00011201) objd: 70145 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011c.0485.05 ctl max scn: 0x0000.0022c7fb prv tx scn: 0x0000.0022c7fetxn start scn: scn: 0x0000.0022c809 logon user: 5prev brb: 25166108 prev bcl: 0

2. update t1 set col2='B';

Undo Header

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0485 chd: 0x0006 ctl: 0x0005 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.05 scn: 0x0000.0022c7fb

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 0x0180011c

Itl Xid Uba Flag Lck Scn/fsc

BH (0x663ea0a0) file#: 6 rdba: 0x01800160 (6/352) class: 17 ba: 0x66210000st: XCURRENT md: NULL tch: 1buffer tsn: 6 rdba: 0x01800160 (6/352)…TRN CTL:: seq: 0x0485 chd: 0x0005 ctl: 0x0005 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.09 scn: 0x0000.0022c7fe

…index state cflags wrap# uel scn dba

-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 10 0x80 0x0ad6 0x0005 0x0000.0022c809 0x0180011c

Before image가 있는Undo Block

Update된 undo header block은 TRN CTL uba에 before-image의 위치를 기록하

고, SCN에 이전 슬롯의 SCN을 기록

0x06 슬롯 갱신(state, cflag, wrap#, scn)

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0485 chd: 0x0006 ctl: 0x0005 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.05 scn: 0x0000.0022c7fb

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 0x0180011c

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 41

ITL

ASCII code 41=> Value ‘A’

0x01 0x001e.01b.0000000d 0x00000000.0000.00 C--- 0 scn 0x0000.002263d90x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

buffer tsn: 6 rdba: 0x0180011c (6/284)UNDO BLK:xid: 0x0001.006.00000ad6 seq: 0x485 cnt: 0x30 irb: 0x30 icl: 0x0 flg: 0x0000* Rec #0x9 slt: 0x06 objn: 70145(0x00011201) objd: 70145 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011c.0485.05 ctl max scn: 0x0000.0022c7fb prv tx scn: 0x0000.0022c7fetxn start scn: scn: 0x0000.0022c809 logon user: 5prev brb: 25166108 prev bcl: 0

2. update t1 set col2='B';

Undo Header

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0485 chd: 0x0006 ctl: 0x0005 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.05 scn: 0x0000.0022c7fb

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 0x0180011c

Itl Xid Uba Flag Lck Scn/fsc

BH (0x663ea0a0) file#: 6 rdba: 0x01800160 (6/352) class: 17 ba: 0x66210000st: XCURRENT md: NULL tch: 1buffer tsn: 6 rdba: 0x01800160 (6/352)…TRN CTL:: seq: 0x0485 chd: 0x0005 ctl: 0x0005 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.09 scn: 0x0000.0022c7fe

…index state cflags wrap# uel scn dba

-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 10 0x80 0x0ad6 0x0005 0x0000.0022c809 0x0180011c

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 41

ITL

0x01 0x001e.01b.0000000d 0x00000000.0000.00 C--- 0 scn 0x0000.002263d90x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Itl Xid Uba Flag Lck Scn/fsc

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0485 chd: 0x0006 ctl: 0x0005 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.05 scn: 0x0000.0022c7fb

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 0x0180011c

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 41

ITL

ASCII code 41=> Value ‘A’

0x01 0x001e.01b.0000000d 0x00000000.0000.00 C--- 0 scn 0x0000.002263d90x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

buffer tsn: 6 rdba: 0x0180011c (6/284)UNDO BLK:xid: 0x0001.006.00000ad6 seq: 0x485 cnt: 0x30 irb: 0x30 icl: 0x0 flg: 0x0000* Rec #0x9 slt: 0x06 objn: 70145(0x00011201) objd: 70145 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011c.0485.05 ctl max scn: 0x0000.0022c7fb prv tx scn: 0x0000.0022c7fetxn start scn: scn: 0x0000.0022c809 logon user: 5prev brb: 25166108 prev bcl: 0

2. update t1 set col2='B';

Undo Header

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0485 chd: 0x0006 ctl: 0x0005 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.05 scn: 0x0000.0022c7fb

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 0x0180011c

Itl Xid Uba Flag Lck Scn/fsc

BH (0x663ea0a0) file#: 6 rdba: 0x01800160 (6/352) class: 17 ba: 0x66210000st: XCURRENT md: NULL tch: 1buffer tsn: 6 rdba: 0x01800160 (6/352)…TRN CTL:: seq: 0x0485 chd: 0x0005 ctl: 0x0005 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.09 scn: 0x0000.0022c7fe

…index state cflags wrap# uel scn dba

-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 10 0x80 0x0ad6 0x0005 0x0000.0022c809 0x0180011c

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 41

ITL

0x01 0x001e.01b.0000000d 0x00000000.0000.00 C--- 0 scn 0x0000.002263d90x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Itl Xid Uba Flag Lck Scn/fsc0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Itl Xid Uba Flag Lck Scn/fsc

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ASCII code 42=> Value ‘B’

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

ASCII code 42=> Value ‘B’

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

3. alter system flush buffer_cache ;

Undo Header

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0485 chd: 0x0005 ctl: 0x0005 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.09 scn: 0x0000.0022c7fe

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 10 0x80 0x0ad6 0x0005 0x0000.0022c809 0x0180011c

Undo Block

buffer tsn: 6 rdba: 0x0180011c (6/284)UNDO BLK:xid: 0x0001.006.00000ad6 seq: 0x485 cnt: 0x30 irb: 0x30 icl: 0x0 flg: 0x0000* Rec #0x9 slt: 0x06 objn: 70145(0x00011201) objd: 70145 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011c.0485.05 ctl max scn: 0x0000.0022c7fb prv tx scn: 0x0000.0022c7fetxn start scn: scn: 0x0000.0022c809 logon user: 5prev brb: 25166108 prev bcl: 0

flush

Itl Xid Uba Flag Lck Scn/fsc

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

4. commit;

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

ASCII code 42=> Value ‘B’

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Header

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0485 chd: 0x0005 ctl: 0x0005 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.09 scn: 0x0000.0022c7fe

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 10 0x80 0x0ad6 0x0005 0x0000.0022c809 0x0180011c

BH (0x66be9f68) file#: 6 rdba: 0x01800160 (6/352) class: 17 ba: 0x66a0e000st: XCURRENT md: NULL fpin: 'ktuwh61: ktugus:ktucmt' tch: 1buffer tsn: 6 rdba: 0x01800160 (6/352)…TRN CTL:: seq: 0x0485 chd: 0x0005 ctl: 0x0006 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.09 scn: 0x0000.0022c7fe

…index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0x0006 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad6 0xffff 0x0000.0022c811 0x0180011c

Undo Block

buffer tsn: 6 rdba: 0x0180011c (6/284)UNDO BLK:xid: 0x0001.006.00000ad6 seq: 0x485 cnt: 0x30 irb: 0x30 icl: 0x0 flg: 0x0000* Rec #0x9 slt: 0x06 objn: 70145(0x00011201) objd: 70145 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011c.0485.05 ctl max scn: 0x0000.0022c7fb prv tx scn: 0x0000.0022c7fetxn start scn: scn: 0x0000.0022c809 logon user: 5prev brb: 25166108 prev bcl: 0

Itl Xid Uba Flag Lck Scn/fsc

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

5. Set transaction read only ;

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

ASCII code 42=> Value ‘B’

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Header

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0485 chd: 0x0005 ctl: 0x0005 inc: 0x00000000 nfb: 0x0001

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.09 scn: 0x0000.0022c7fe

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 10 0x80 0x0ad6 0x0005 0x0000.0022c809 0x0180011c

Undo Block

buffer tsn: 6 rdba: 0x0180011c (6/284)UNDO BLK:xid: 0x0001.006.00000ad6 seq: 0x485 cnt: 0x30 irb: 0x30 icl: 0x0 flg: 0x0000* Rec #0x9 slt: 0x06 objn: 70145(0x00011201) objd: 70145 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011c.0485.05 ctl max scn: 0x0000.0022c7fb prv tx scn: 0x0000.0022c7fetxn start scn: scn: 0x0000.0022c809 logon user: 5prev brb: 25166108 prev bcl: 0

Itl Xid Uba Flag Lck Scn/fsc

<Read only 시점>

• 현재 세션 Commit 시점 이후 (0x0000.0022c811 )

• 다른 세션 Commit 시점 이전 (0x0000.0022c818)

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

6. Undo Header Slot 재사용 (세션2에서 Update 첫 번째)

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

Undo Header

Itl Xid Uba Flag Lck Scn/fsc

ASCII code 42=> Value ‘B’

Session2> Update t2 set col2=‘B’;

Session2> Commit;

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0485 chd: 0x0006 ctl: 0x0005 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011c.0485.31 scn: 0x0000.0022c7ff

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad4 0xffff 0x0000.0022c818 0x0180011e0x06 9 0x00 0x0ad6 0x0005 0x0000.0022c811 0x0180011c

buffer tsn: 6 rdba: 0x0180011c (6/284)UNDO BLK:xid: 0x0001.005.00000ad4 seq: 0x485 cnt: 0x32 irb: 0x32 icl: 0x0 flg: 0x0000* Rec #0x31 slt: 0x05 objn: 70146(0x00011202) objd: 70146 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011c.0485.09 ctl max scn: 0x0000.0022c7fe prv tx scn: 0x0000.0022c7fftxn start scn: scn: 0x0000.0022c816 logon user: 5prev brb: 25166109 prev bcl: 0

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

7. Undo Header Slot 재사용 (세션2에서 Update 두 번째)

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

Undo Header

Itl Xid Uba Flag Lck Scn/fsc

ASCII code 42=> Value ‘B’

Session2> Update t2 set col2=‘B’;

Session2> Commit;

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0485 chd: 0x0005 ctl: 0x0006 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011e.0485.02 scn: 0x0000.0022c811

index state cflags wrap# uel scn dba -----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad4 0x0006 0x0000.0022c818 0x0180011e0x06 9 0x00 0x0ad7 0xffff 0x0000.0022c821 0x0180011f

buffer tsn: 6 rdba: 0x0180011e (6/286)UNDO BLK:xid: 0x0001.006.00000ad7 seq: 0x485 cnt: 0x3 irb: 0x3 icl: 0x0 flg: 0x0000* Rec #0x2 slt: 0x06 objn: 70146(0x00011202) objd: 70146 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011c.0485.31 ctl max scn: 0x0000.0022c7ff prv tx scn: 0x0000.0022c811txn start scn: scn: 0x0000.0022c820 logon user: 5prev brb: 25166108 prev bcl: 0

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

8. Undo Header Slot 재사용 (세션2에서 Update 세 번째)

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

ASCII code 42=> Value ‘B’

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

Undo Header

Itl Xid Uba Flag Lck Scn/fsc

Session2> Update t2 set col2=‘B’;

Session2> Commit;

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0486 chd: 0x0006 ctl: 0x0005 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011f.0485.02 scn: 0x0000.0022c818

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad5 0xffff 0x0000.0022c829 0x018001200x06 9 0x00 0x0ad7 0x0005 0x0000.0022c821 0x0180011f

buffer tsn: 6 rdba: 0x0180011f (6/287)UNDO BLK:xid: 0x0001.006.00000ad7 seq: 0x485 cnt: 0x1 irb: 0x1 icl: 0x0 flg: 0x0000* Rec #0x2 slt: 0x05 objn: 70146(0x00011202) objd: 70146 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011e.0485.02 ctl max scn: 0x0000.0022c811 prv tx scn: 0x0000.0022c818txn start scn: scn: 0x0000.0022c828 logon user: 5prev brb: 25166110 prev bcl: 0

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

9. Undo Header Slot 재사용 (세션2에서 Update 네 번째)

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

ASCII code 42=> Value ‘B’

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

Undo Header

Itl Xid Uba Flag Lck Scn/fsc

Session2> Update t2 set col2=‘B’;

Session2> Commit;

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0486 chd: 0x0005 ctl: 0x0006 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x01800120.0486.02 scn: 0x0000.0022c821

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad5 0x0006 0x0000.0022c829 0x01800120 0x06 9 0x00 0x0ad8 0xffff 0x0000.0022c832 0x01800121

buffer tsn: 6 rdba: 0x01800120 (6/288)UNDO BLK:xid: 0x0001.005.00000ad5 seq: 0x486 cnt: 0x1 irb: 0x1 icl: 0x0 flg: 0x0000* Rec #0x2 slt: 0x06 objn: 70146(0x00011202) objd: 70146 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011f.0485.02 ctl max scn: 0x0000.0022c818 prv tx scn: 0x0000.0022c821txn start scn: scn: 0x0000.0022c831 logon user: 5prev brb: 25166111 prev bcl: 0

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

BH (0x623e85d0) file#: 6 rdba: 0x01800160 (6/352) class: 17 ba: 0x621e4000st: XCURRENT md: NULL fpin: 'ktuwh05: ktugct' tch: 0buffer tsn: 6 rdba: 0x01800160 (6/352)…TRN CTL:: seq: 0x0486 chd: 0x0005 ctl: 0x0006 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x01800120.0486.02 scn: 0x0000.0022c821

…index state cflags wrap# uel scn dba -----------------------------------------------------------------

0x05 9 0x00 0x0ad5 0x0006 0x0000.0022c829 0x01800120 0x06 9 0x00 0x0ad8 0xffff 0x0000.0022c832 0x01800121

10. select /*+ full(t1) */count(*) from t1 where rownum <= 1; undo header block 의 CR을 만드는 과정에서 undo block read 발생함.

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

ASCII code 42=> Value ‘B’

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

buffer tsn: 6 rdba: 0x01800121 (6/289)UNDO BLK:xid: 0x0001.006.00000ad8 seq: 0x486 cnt: 0x1 irb: 0x1 icl: 0x0 flg: 0x0000* Rec #0x1 slt: 0x06 objn: 70146(0x00011202) objd: 70146 tblspc: 5(0x00000005)

Undo Header

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0486 chd: 0x0005 ctl: 0x0006 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x01800120.0486.02 scn: 0x0000.0022c821

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad5 0x0006 0x0000.0022c829 0x01800120 0x06 9 0x00 0x0ad8 0xffff 0x0000.0022c832 0x01800121

BH (0x66bf7720) file#: 5 rdba: 0x014000e3 (5/227) class: 1 ba: 0x66b70000st: XCURRENT md: NULL fpin: 'kdswh11: kdst_fetch' tch: 1buffer tsn: 5 rdba: 0x014000e3 (5/227)…

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 C-U- 0 scn 0x0000.0022c8110x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000…block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

Itl Xid Uba Flag Lck Scn/fsc

Itl Xid Uba Flag Lck Scn/fsc

Begin cleaning out block ...Block header dump: 0x014000e3…Itl Xid Uba Flag Lck Scn/fsc

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000WAIT #140004262172792: nam='db file sequential read' ela= 9 file#=6 block#=352 blocks=1 obj#=0 tim=1459261058673224WAIT #140004262172792: nam='db file sequential read' ela= 13 file#=6 block#=288 blocks=1 obj#=0 tim=1459261058676417WAIT #140004262172792: nam='db file sequential read' ela= 10 file#=6 block#=287 blocks=1 obj#=0 tim=1459261058677687…Block cleanout record, scn: 0x0000.0022c834 ver: 0x01 opt: 0x01, entries follow...

itli: 2 flg: 1 scn: 0x0000.0022c811Block header dump: 0x014000e3…Itl Xid Uba Flag Lck Scn/fsc

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 C-U- 0 scn 0x0000.0022c8110x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undoheader Block

두 번째 update Undo Block

첫 번째 update Undo Block

BH (0x673f4b40) file#: 6 rdba: 0x01800160 (6/352) class: 17 ba: 0x67328000st: CR md: NULL tch: 1buffer tsn: 6 rdba: 0x01800160 (6/352)…TRN CTL:: seq: 0x0486 chd: 0x0005 ctl: 0x0006 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011e.0485.02 scn: 0x0000.0022c811

…index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad4 0x0006 0x0000.0022c818 0x0180011e0x06 9 0x00 0x0ad7 0xffff 0x0000.0022c821 0x0180011f

Begin cleaning out block ...Block header dump: 0x014000e3…Itl Xid Uba Flag Lck Scn/fsc

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000WAIT #140004262172792: nam='db file sequential read' ela= 9 file#=6 block#=352 blocks=1 obj#=0 tim=1459261058673224WAIT #140004262172792: nam='db file sequential read' ela= 13 file#=6 block#=288 blocks=1 obj#=0 tim=1459261058676417WAIT #140004262172792: nam='db file sequential read' ela= 10 file#=6 block#=287 blocks=1 obj#=0 tim=1459261058677687…Block cleanout record, scn: 0x0000.0022c834 ver: 0x01 opt: 0x01, entries follow...

itli: 2 flg: 1 scn: 0x0000.0022c811Block header dump: 0x014000e3…Itl Xid Uba Flag Lck Scn/fsc

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 C-U- 0 scn 0x0000.0022c8110x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo header Block

두 번째 update Undo Block

첫 번째 update Undo Block

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

BH (0x623e85d0) file#: 6 rdba: 0x01800160 (6/352) class: 17 ba: 0x621e4000st: XCURRENT md: NULL fpin: 'ktuwh05: ktugct' tch: 0buffer tsn: 6 rdba: 0x01800160 (6/352)…TRN CTL:: seq: 0x0486 chd: 0x0005 ctl: 0x0006 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x01800120.0486.02 scn: 0x0000.0022c821

…index state cflags wrap# uel scn dba -----------------------------------------------------------------

0x05 9 0x00 0x0ad5 0x0006 0x0000.0022c829 0x01800120 0x06 9 0x00 0x0ad8 0xffff 0x0000.0022c832 0x01800121

10. select /*+ full(t1) */count(*) from t1 where rownum <= 1; undo header block 의 CR을 만드는 과정에서 undo block read 발생함.

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

ASCII code 42=> Value ‘B’

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

Undo Header

BH (0x66bf7720) file#: 5 rdba: 0x014000e3 (5/227) class: 1 ba: 0x66b70000st: XCURRENT md: NULL fpin: 'kdswh11: kdst_fetch' tch: 1buffer tsn: 5 rdba: 0x014000e3 (5/227)…

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 C-U- 0 scn 0x0000.0022c8110x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000…block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

Itl Xid Uba Flag Lck Scn/fsc

Itl Xid Uba Flag Lck Scn/fsc

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0486 chd: 0x0005 ctl: 0x0006 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x01800120.0486.02 scn: 0x0000.0022c821

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad5 0x0006 0x0000.0022c829 0x01800120 0x06 9 0x00 0x0ad8 0xffff 0x0000.0022c832 0x01800121

buffer tsn: 6 rdba: 0x01800120 (6/288)UNDO BLK:xid: 0x0001.005.00000ad5 seq: 0x486 cnt: 0x1 irb: 0x1 icl: 0x0 flg: 0x0000* Rec #0x2 slt: 0x06 objn: 70146(0x00011202) objd: 70146 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011f.0485.02 ctl max scn: 0x0000.0022c818 prv tx scn: 0x0000.0022c821txn start scn: scn: 0x0000.0022c831 logon user: 5prev brb: 25166111 prev bcl: 0

Begin cleaning out block ...Block header dump: 0x014000e3…Itl Xid Uba Flag Lck Scn/fsc

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000WAIT #140004262172792: nam='db file sequential read' ela= 9 file#=6 block#=352 blocks=1 obj#=0 tim=1459261058673224WAIT #140004262172792: nam='db file sequential read' ela= 13 file#=6 block#=288 blocks=1 obj#=0 tim=1459261058676417WAIT #140004262172792: nam='db file sequential read' ela= 10 file#=6 block#=287 blocks=1 obj#=0 tim=1459261058677687…Block cleanout record, scn: 0x0000.0022c834 ver: 0x01 opt: 0x01, entries follow...

itli: 2 flg: 1 scn: 0x0000.0022c811Block header dump: 0x014000e3…Itl Xid Uba Flag Lck Scn/fsc

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 C-U- 0 scn 0x0000.0022c8110x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo header Block

두 번째 update Undo Block

첫 번째 update Undo Block

Scn: 0x0000.0022c821

Scn: 0x0000.0022c818

Scn: 0x0000.0022c811

SGA

Undo SegmentData Block

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

BH (0x623e85d0) file#: 6 rdba: 0x01800160 (6/352) class: 17 ba: 0x621e4000st: XCURRENT md: NULL fpin: 'ktuwh05: ktugct' tch: 0buffer tsn: 6 rdba: 0x01800160 (6/352)…TRN CTL:: seq: 0x0486 chd: 0x0005 ctl: 0x0006 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x01800120.0486.02 scn: 0x0000.0022c821

…index state cflags wrap# uel scn dba -----------------------------------------------------------------

0x05 9 0x00 0x0ad5 0x0006 0x0000.0022c829 0x01800120 0x06 9 0x00 0x0ad8 0xffff 0x0000.0022c832 0x01800121

10. select /*+ full(t1) */count(*) from t1 where rownum <= 1; undo header block 의 CR을 만드는 과정에서 undo block read 발생함.

Rows

block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x2 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

ITL

ASCII code 42=> Value ‘B’

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo Block

Undo Header

BH (0x66bf7720) file#: 5 rdba: 0x014000e3 (5/227) class: 1 ba: 0x66b70000st: XCURRENT md: NULL fpin: 'kdswh11: kdst_fetch' tch: 1buffer tsn: 5 rdba: 0x014000e3 (5/227)…

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 C-U- 0 scn 0x0000.0022c8110x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000…block_row_dump:tab 0, row 0, @0x1f70tl: 16 fb: --H-FL-- lb: 0x0 cc: 2col 0: [10] 31 20 20 20 20 20 20 20 20 20col 1: [ 1] 42

Itl Xid Uba Flag Lck Scn/fsc

Itl Xid Uba Flag Lck Scn/fsc

buffer tsn: 6 rdba: 0x01800160 (6/352)TRN CTL:: seq: 0x0486 chd: 0x0005 ctl: 0x0006 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x01800120.0486.02 scn: 0x0000.0022c821

index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad5 0x0006 0x0000.0022c829 0x01800120 0x06 9 0x00 0x0ad8 0xffff 0x0000.0022c832 0x01800121

buffer tsn: 6 rdba: 0x01800120 (6/288)UNDO BLK:xid: 0x0001.005.00000ad5 seq: 0x486 cnt: 0x1 irb: 0x1 icl: 0x0 flg: 0x0000* Rec #0x2 slt: 0x06 objn: 70146(0x00011202) objd: 70146 tblspc: 5(0x00000005)*-----------------------------uba: 0x0180011f.0485.02 ctl max scn: 0x0000.0022c818 prv tx scn: 0x0000.0022c821txn start scn: scn: 0x0000.0022c831 logon user: 5prev brb: 25166111 prev bcl: 0

Begin cleaning out block ...Block header dump: 0x014000e3…Itl Xid Uba Flag Lck Scn/fsc

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 ---- 3 fsc 0x0000.000000000x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000WAIT #140004262172792: nam='db file sequential read' ela= 9 file#=6 block#=352 blocks=1 obj#=0 tim=1459261058673224WAIT #140004262172792: nam='db file sequential read' ela= 13 file#=6 block#=288 blocks=1 obj#=0 tim=1459261058676417WAIT #140004262172792: nam='db file sequential read' ela= 10 file#=6 block#=287 blocks=1 obj#=0 tim=1459261058677687…Block cleanout record, scn: 0x0000.0022c834 ver: 0x01 opt: 0x01, entries follow...

itli: 2 flg: 1 scn: 0x0000.0022c811Block header dump: 0x014000e3…Itl Xid Uba Flag Lck Scn/fsc

0x01 0x001c.005.00000010 0x00000000.0000.00 C--- 0 scn 0x0000.0022bf230x02 0x0001.006.00000ad6 0x0180011c.0485.27 C-U- 0 scn 0x0000.0022c8110x03 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

Undo header Block

두 번째 update Undo Block

첫 번째 update Undo Block

BH (0x673f4b40) file#: 6 rdba: 0x01800160 (6/352) class: 17 ba: 0x67328000st: CR md: NULL tch: 1buffer tsn: 6 rdba: 0x01800160 (6/352)…TRN CTL:: seq: 0x0486 chd: 0x0005 ctl: 0x0006 inc: 0x00000000 nfb: 0x0002

mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)uba: 0x0180011e.0485.02 scn: 0x0000.0022c811

…index state cflags wrap# uel scn dba-----------------------------------------------------------------------------------------0x05 9 0x00 0x0ad4 0x0006 0x0000.0022c818 0x0180011e0x06 9 0x00 0x0ad7 0xffff 0x0000.0022c821 0x0180011f

Scn: 0x0000.0022c821

Scn: 0x0000.0022c818

Scn: 0x0000.0022c811

CR 블록 적용

© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved.

Oracle Deep Internal

Blog

Video

E-mail

NAVER http://cafe.naver.com/playexem

ITPUB http://blog.itpub.net/31135309/

Wordpress https://playexem.wordpress.com/

Slideshare http://www.slideshare.net/playexem

Youtube https://www.youtube.com/channel/UC5wKR_-A0eL_Pn_EMzoauJg

Tudou http://www.tudou.com/home/maxgauge/

[email protected]

[email protected]