본문 바로가기
컴퓨터/Oracle

[Oracle]UNDO SEGMENT 관리 언두세그먼트

by TEATO 2014. 7. 14.
반응형

[Oracle]UNDO SEGMENT 관리 언두세그먼트


UNDO SEGMENT는 UPDATE DELETE할 때 변경전 데이터를 저장하는 역할을 합니다.

ROLLBACK을 위해서 필수적인 데이터이죠~

메모리영역에서는 UNDO BLOCK이있고 FILE부분에 UNDO SEGMENT가 있습니다.

UNDO SEGMENT의 종류는 

SYSTEM UNDO-SEGMENT

PRIVATE UNDOE-SEGMENT가있습니다.

 PRIVATE 가 사용자쓰는 세그먼트이고

SYSTEM세그먼트는 시스템이 변경될때 서버가 알아서 작업하는곳입니다.



한명의 사용자가 세션에 붙게되면 하나의 언두세그먼트를 할당받습니다.

언두세그먼트가 부족해지면 DML문처리가 느려질수있으니 주의해야합니다.

 

UNDOSEGMENT관리는

수동관리, 자동관리

두가지입니다. 이것은 자동관리를 쓰는것이 일반적입니다.



이부분이 언두 세그먼트입니다.



DBA_ROLLBACK_SEGS테이블을 확인해보면 현재 언두세그먼트가

얼마나 있는지 확인할 수 있습니다. 시스템 언두세그먼트가 하나있고

나머지 사용자 언두세그먼트가 10개가 있네요



스캇으로 세션에 붙으면 어떤 언두세그먼트가 할당되는지 확인해보겠습니다.



위와같은 쿼리를 날려보시면  XACTS부분에 전부 0이지만

1인 부분이있죠~ 이것이 바로 할당받은 UNDO 세그먼트입니다.

이상태로 많은 사용자가 붙는다면 문제가 있겠죠~


SHOW PARAMETER UNDO라는 명령어로

현재 언두 세그먼트 관리가 자동인지 수동인지 확인할 수 있습니다.

오늘은 여기까지...



반응형

댓글