56
© Copyrights 2001~2016, EXEM CO.,LTD. All Rights Reserved. Ver.2 (2016.07.18)

Oracle Deep Internal 4 (ver.2)

  • Upload
    exem

  • View
    88

  • Download
    2

Embed Size (px)

Citation preview

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

Ver.2 (2016.07.18)

SGA

Undo SegmentData Block

© 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

Oracle Deep Internal

Ⅰ. Transaction slot Before-image Chaining

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

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

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

File: Undo fileBlock: Undo block

Ⅰ-1. Questions

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

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

Cleanout 이란 무엇인가?

Question 1

Answer 1

Data blockData blockBH (0x643fa1c8) file#: 5 rdba: 0x0140dcad (5/56493) class: 1 ba: 0x643b6000

st: XCURRENT md: EXCL fpin: 'kdswh11: kdst_fetch' tch: 1Itl 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

Transaction 상태 Cleanout 상태

Commit scn

Commit scn적용 전

Commit scn적용 후

Transaction 상태

Ⅰ-1. Questions

© 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

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

Commit scn

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

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

rdba: 0x0180011e (6/286)

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)

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

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

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

rdba: 0x01800160 (6/352)

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

SCN을 기록

2

file#=6 block#=352

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

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

SCN이 before-image로 저장

1

Before-image

Update

2

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

3

1 11

2

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

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

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 9 0x00 0x0ad7 0xffff 0x0000.0022c821 0x0180011f

rdba: 0x01800160 (6/352)

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

rdba: 0x0180011e (6/286)

Before-image

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

rdba: 0x0180011f (6/287)

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

SCN이 before-image로 저장

1

1 1

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

rdba: 0x01800160 (6/352)

Update

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

기록

2

2

2

1

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

3

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

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

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 9 0x00 0x0ad7 0xffff 0x0000.0022c821 0x0180011f

rdba: 0x01800160 (6/352)

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

rdba: 0x0180011e (6/286)

Before-image

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

rdba: 0x0180011f (6/287)

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

rdba: 0x01800160 (6/352)

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

rdba: 0x01800120 (6/288)

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

SCN이 before-image로 저장

1

1

1

1

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

rdba: 0x01800160 (6/352)

Update

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

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

2

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

3

2

2

Endless loop..

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

YES

NO

NO

YES

YES

NO

Wrap 번호가 같은가?

TRN CTL SCN 적용

Before-image SCN과 비교반복 수행

해당 SCN 적용

해당 SCN 적용

<Delayed Block cleanout 작업>

Efficient delayed block cleanout

Inefficient delayed block cleanout

delayed block cleanout using “commit SCN” of transaction slot

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

Ⅰ-3. Flow chart of delayed block cleanout

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

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

<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 dba0x05 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.0022d818prv tx scn: 0x0000.0022d821 txn 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

Wrap 번호 비교

TRN CTL SCN을Query SCN과 비교

Before image SCN을Query SCN과 비교

해당 before image 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

Ⅰ-3. Flow chart of delayed block cleanout

NO

NO

NO

Wrap 번호가 같은가?

해당 SCN 적용

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

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

2

3

1

4

© 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

Oracle Deep Internal

Ⅱ. Block cleanout Analysis

Oracle Deep Internal

Ⅱ-1. Fast block cleanout (Fast commit)

© 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)

Oracle Deep Internal

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

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

Delayed block cleanout은

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

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

0x13 0x0080006c

0x01 0C--- Commit SCN0x008004f800cf.06

9 (Committed) Commit SCN0x18a8

0x0008.013.000018a8

Row Lock

클린아웃 되지 않은 트랜잭션의 xid를 이용해 transaction table을 확인(트랜잭션 종료여부, SCN)후,

해당 ITL에 Lock byte 해제, SCN 설정, Flag를 C---로 변경 후 이에 대한 redo log를 생성한다.

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

Oracle Deep Internal

Ⅱ-3. Efficient Delayed Block Cleanout

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

Upper bound commit은

“원래 commit이 일어난 시점의 SCN이어야 하지만 다른 트랜잭션에 의해 overwrite 되었을 경우,

cleanout 할 쿼리 SCN(818)부터 시작해서 원래 commit이 일어난 시점의 SCN(811) 사이에 있는 가장 높은 값(817)을 의미한다”

Upper bound commit

Upper bound commit

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

• 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

Ⅱ-3. Efficient Delayed Block Cleanout

SGA

Undo SegmentData Block

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

Rows

1. 초기상태

ITL

Itl Xid Uba Flag Lck Scn/fsc0x01 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 dba0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 9 0x00 0x353a 0x0004 0x0000.006e8ee3 0x0180011c

Undo Block

ASCII HEXA code 41=> Value ‘A’

SGA

Undo SegmentData Block

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

Rows

ITL 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

Itl Xid Uba Flag Lck Scn/fsc0x01 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 dba0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 9 0x00 0x353a 0x0004 0x0000.006e8ee3 0x0180011c

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 Header를메모리에 적재

Undo Block

ASCII HEXA code 41=> Value ‘A’

2. update t1 set col2='B';

SGA

Undo SegmentData Block

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

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 Header

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 dba0x04 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로 저장

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

Itl Xid Uba Flag Lck Scn/fsc0x01 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

ASCII HEXA code 41=> Value ‘A’

2. update t1 set col2='B';

SGA

Undo SegmentData Block

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

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

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

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 dba0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 9 0x00 0x353a 0x0004 0x0000.006e8ee3 0x0180011c

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

SCN에 이전 슬롯의 SCN을 기록

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

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

Itl Xid Uba Flag Lck Scn/fsc0x01 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

ASCII HEXA code 41=> Value ‘A’

Before image가 있는Undo Block

2. update t1 set col2='B';

SGA

Undo SegmentData Block

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

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

Undo Header

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 dba0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 9 0x00 0x353a 0x0004 0x0000.006e8ee3 0x0180011c

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

Itl Xid Uba Flag Lck Scn/fsc0x01 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

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

Itl Xid Uba Flag Lck Scn/fsc0x01 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

ASCII HEXA code 41=> Value ‘A’

2. update t1 set col2='B';

SGA

Undo SegmentData Block

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

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

Undo Header

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 dba0x04 9 0x00 0x3538 0xffff 0x0000.006e8ee4 0x0180011b0x14 9 0x00 0x353a 0x0004 0x0000.006e8ee3 0x0180011c

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

Itl Xid Uba Flag Lck Scn/fsc0x01 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/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

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 HEXA code 42=> Value ‘B’

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

Itl Xid Uba Flag Lck Scn/fsc0x01 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

ASCII HEXA code 41=> Value ‘A’

2. update t1 set col2='B';

SGA

Undo SegmentData Block

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

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 dba0x04 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

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

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 ASCII HEXA code 42

=> Value ‘B’

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

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 dba0x04 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

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

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 ASCII HEXA code 42

=> Value ‘B’

SGA

Undo SegmentData Block

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

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

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

ITL

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

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 ASCII HEXA code 42

=> Value ‘B’

Session2> Update t2 set col2=‘B’;

Session2> Commit;

Undo Header

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

Undo Block

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

SGA

Undo SegmentData Block

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

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

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

Session2> Update t2 set col2=‘B’;

Session2> Commit;

ITL

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

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 ASCII HEXA code 42

=> Value ‘B’

Undo Block

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

SGA

Undo SegmentData Block

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

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

Session2> Update t2 set col2=‘B’;

Session2> Commit;

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

ITL

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

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 ASCII HEXA code 42

=> Value ‘B’

SGA

Undo SegmentData Block

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

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

Query SCN

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

Undo Block

Undo Header

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

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

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 ASCII HEXA code 42

=> Value ‘B’

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

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

Wrap number가다름

Query SCN은0x0000.006e8f1c

ASCII HEXA code 42=> Value ‘B’

ITL

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

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 ASCII HEXA 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.00000000WAIT #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/Fsc0x01 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

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

Wrap number가다름

Query SCN은0x0000.006e8f1c

ASCII HEXA code 42=> Value ‘B’

ITL

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

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 ASCII HEXA code 42

=> Value ‘B’

Oracle Deep Internal

Ⅱ-4. Inefficient Delayed Block Cleanout

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

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

Ⅱ-4. Inefficient delayed block cleanout

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

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

SGA

Undo SegmentData Block

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

Rows

1. 초기상태

ITL

Itl Xid Uba Flag Lck Scn/fsc0x01 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

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: 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 dba0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 0x0180011c

Undo Block

ASCII HEXA code 41=> Value ‘A’

SGA

Undo SegmentData Block

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

Rows

ITL 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

Itl Xid Uba Flag Lck Scn/fsc0x01 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

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 dba0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 0x0180011c

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

Undo Header를메모리에 적재

Undo Block

ASCII HEXA code 41=> Value ‘A’

2. update t1 set col2='B';

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

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 dba0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 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

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

SCN이 before-mage로 저장

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

Itl Xid Uba Flag Lck Scn/fsc0x01 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

ASCII HEXA code 41=> Value ‘A’

2. update t1 set col2='B';

SGA

Undo SegmentData Block

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

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

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

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 dba0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 0x0180011c

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

SCN에 이전 슬롯의 SCN을 기록

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

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

Itl Xid Uba Flag Lck Scn/fsc0x01 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

ASCII HEXA code 41=> Value ‘A’

Before-image가 있는Undo Block

2. update t1 set col2='B';

SGA

Undo SegmentData Block

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

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

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

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 dba0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 0x0180011c

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

Itl Xid Uba Flag Lck Scn/fsc0x01 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

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

Itl Xid Uba Flag Lck Scn/fsc0x01 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

ASCII HEXA code 41=> Value ‘A’

2. update t1 set col2='B';

SGA

Undo SegmentData Block

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

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

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

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 dba0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 9 0x00 0x0ad5 0x0005 0x0000.0022c7fe 0x0180011c

Rows

ITL

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

Itl Xid Uba Flag Lck Scn/fsc0x01 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

ASCII HEXA code 41=> Value ‘A’

2. update t1 set col2='B';

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 Xid Uba Flag Lck Scn/fsc0x01 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

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 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

ASCII HEXA code 42=> Value ‘B’

SGA

Undo SegmentData Block

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

3. alter system flush buffer_cache ;

Undo Header

Undo Block

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 dba0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 10 0x80 0x0ad6 0x0005 0x0000.0022c809 0x0180011c

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

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

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 ASCII HEXA code 42

=> Value ‘B’

SGA

Undo SegmentData Block

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

4. commit;

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 Header

Undo Block

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 dba0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 10 0x80 0x0ad6 0x0005 0x0000.0022c809 0x0180011c

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

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

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 ASCII HEXA code 42

=> Value ‘B’

Query SCN

SGA

Undo SegmentData Block

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

5. Set transaction read only ;

Undo Header

Undo Block

<Read only 시점>

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

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

ITL

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

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 ASCII HEXA code 42

=> Value ‘B’

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 dba0x05 9 0x00 0x0ad3 0xffff 0x0000.0022c7ff 0x0180011d 0x06 10 0x80 0x0ad6 0x0005 0x0000.0022c809 0x0180011c

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

SGA

Undo SegmentData Block

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

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

Undo Header

Undo Block

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 dba0x05 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

Session2> Update t2 set col2=‘B’;

Session2> Commit;

ITL

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

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 ASCII HEXA code 42

=> Value ‘B’

SGA

Undo SegmentData Block

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

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

Session2> Update t2 set col2=‘B’;

Session2> Commit;

ITL

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

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 ASCII HEXA code 42

=> Value ‘B’

Undo Header

Undo Block

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 dba0x05 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 세 번째)

Session2> Update t2 set col2=‘B’;

Session2> Commit;

Undo Header

Undo Block

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 dba0x05 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

ITL

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

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 ASCII HEXA code 42

=> Value ‘B’

SGA

Undo SegmentData Block

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

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

Session2> Update t2 set col2=‘B’;

Session2> Commit;

ITL

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

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 ASCII HEXA code 42

=> Value ‘B’

Undo Header

Undo Block

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 dba0x05 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 발생함.

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

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

ITL

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

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

Undo Header

Undo Block

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 dba0x05 9 0x00 0x0ad5 0x0006 0x0000.0022c829 0x01800120 0x06 9 0x00 0x0ad8 0xffff 0x0000.0022c832 0x01800121

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)

Begin cleaning out block ...Block header dump: 0x014000e3…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.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.0022c811

Block header dump: 0x014000e3…Itl Xid Uba Flag Lck SCN/fsc0x01 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 발생함.

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

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

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

Undo Header

Undo Block

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 dba0x05 9 0x00 0x0ad5 0x0006 0x0000.0022c829 0x01800120 0x06 9 0x00 0x0ad8 0xffff 0x0000.0022c832 0x01800121

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)

Query SCN은0x0000.0022c811

Wrap number가다름

Begin cleaning out block ...Block header dump: 0x014000e3…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.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.0022c811

Block header dump: 0x014000e3…Itl Xid Uba Flag Lck SCN/fsc0x01 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 발생함.

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

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

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

Undo Header

Undo Block

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 dba0x05 9 0x00 0x0ad5 0x0006 0x0000.0022c829 0x01800120 0x06 9 0x00 0x0ad8 0xffff 0x0000.0022c832 0x01800121

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)

1BH (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

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]