달력

12

« 2024/12 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2010. 7. 16. 15:09

Transaction-Undo DataBase이야기2010. 7. 16. 15:09

Undo Segements의 용도
1. 트랜잭션 롤백
2. 트랜잭션 복구
3. 읽기 일관성

트랜잭션 롤백이란  트랜잭션이 테이블 내의 레코드를 변경할 때 이전 이미지를 저장하여 ROLLBACK시에 사용되는 것.
트랜잭션 복구란 트랜잭션 수행중에 비정상적으로 프로세스가 종료될 경우에, 커밋되지 않은 변경사항을 롤백하기 위해 사용된다. 
일기 일관성 보장이란, 다른 트랜잭션에 의해 변경되었을 경우에도 일관된 시점의 데이터를 볼 수 있도록 해주는 것이다.
언두 세그먼트의 용도는 복구와 읽기 일관성을 위해 제공하는 것.
MVCC(Multi Vision Concurreny Control)을 위해 언두가 필요한 것. 다른 DBMS는 리두 로그에 트랜잭션 복구에 필요한 내용이 저장되므로 별도의 언두 세그먼트가 필요없다.

MVCC 
이 기능은, SQL 수행시점의 쿼리 SCN(qSCN)과 블록의 SCN을 비교하여, qSCN보다 같거나 작은 bSCN의 블록들에 대해서는 읽기를 수행하고, qSCN보다 큰 bSCN의 블록들에 대해서는 CR오퍼레이션을 수행한다. CR 오페ㅓ레이션은 CR카피를 수행하여 블로과 동일한 이미지를 copy한 후, 언두 세그먼트의 내용을 적용하여 이전 시점의블록 이미지를 생성하는 작업이다.
만일 언두세그먼트에 관련된 내용이 없어서 qSCN보다 같거나 작은 CR블록을 생성할 수 없을 경우에는 ORA-01555가 생성된다.


AUM vs MUM
Automatic vs manual

manual은 dba에 의해 수동으로 관리되므로, 트랜잭션 특성에 맞게 언두 세그먼트를 관리할 수 있다.
특정시간에 많은 트랜잭션이 발생할 경우 , US(Undo Segment)가 발생할 수 있다. 
mum방식을 이용하여 미리 트랜잭션 수를 많이 생성하므로써, 이를 방지할 수 있다.

AUM의 장점은 ORA-01555에러가 발생을 효과적으로 제거할 수 있다는 것이다.

Undo Header block & Undo block Structure
언두 헤더 블록은 언두 세그먼트의 익스텐트를 관리하는 익스텐트 컨트롤 영역, 언두 세그먼트의 익스텐트의 주소를 관리하는 익스텐트 맵, 언두 리텐션을 적용하기 위한 리텐션 테이블 영역, 트랜잭션 컨트롤 영역, 개별 트랜잭션을 관리하기 위한 트랜잭션 테이블로 구성된다. 
언두블록은, 언두 블록 헤더 영역, 유저 언두 레코드 영역 언두 레코드 영역으로 구성된다.






'DataBase이야기' 카테고리의 다른 글

Transaction-BlockLayer  (0) 2010.07.19
Transaction - Enqueue  (0) 2010.07.16
Transaction001  (0) 2010.07.13
'10.03.20 story  (0) 2010.04.01
'03.03.05 story  (0) 2010.04.01
:
Posted by НooпeУ


Code Start Code End