IT/Oracle2011. 4. 21. 19:36


CHAP 9장 언두 데이터 관리

이장의 내용

 - DML및 언두 데이터 생성 설명
 - 언두 데이터 모니터 및 관리
 - 언두 데이터와 리두 데이터이 차이점 설명
 - 언두 retention 구성
 - 언두 retention 보장
 - Undo Advisor사용

데이터 조작

데이터 조작어(DML)은 다음으로 구성된다.
  - INSERT, UPDATE, DELETE, MERGE

언두 데이터(이전 데이터)

 특징
 - 수정되기 전 원래 데이터의 복사본
 - 데이터를 변경하는 모든 트랜잭션에 대해 캡쳐됩니다.
 - 적어도 트랜잭션이 종료될 때까지는 보존됩니다.
 - 지원하는 작업
     롤백 작업, 읽기 일관성 및 Flashback Query, 실패한 트랜잭션 recovery

 다음에 의해 트랜잭션이 종료될 때까지 언두 정보를 보존합니다.

  - 유저의 트랜잭션 언두(롤백)
  - 유저의 트랜잭션 종료(커밋)
  - 유저 세션의 비정상적인 종료(롤백)
  - 종료 명령에 의한 유저 세션의 정상적인 종료(커밋)

트랜잭션 및 언두 데이터

 - 각 트랜잭션은 하나의 언두 세그먼트에만 할당됩니다.
 - 하나의 언두 세그먼트는 한 번에 여러개의 트랜잭션을 처리할 수 있습니다.

언두 정보 저장

언두 정보는 Undo Segment에 저장되며 Undo Segment는 하나의 Undo Tablespace에 저장됩니다. 언두 테이블 스페이스의 특징은 다음과 같습니다.
  - 언두 세그먼트에만 사용됩니다.
  - recovery시 특별한 고려 사항이 있습니다.
  - 단일 instance와만 연관됩니다.
  - 여러 언두 테이블 스페이스 중 하나만 주어진 시간에 주어진 instance에 대해 현재 쓰기가 가능해야 합니다.
  - Undo segment는 SYS가 소유합니다. 세그먼트는 순환 버퍼처럼 사용되므로 각 세그먼트는 최소 두 개의 Extent를 갖습니다.

언두 데이터와 리두 데이터 비교

언두 모니터

  - 언두 테이블 스페이스의 사용 가능한 공간
  - "Snapshot too old"오류

보통 대부분의 경우 언두는 instance에 의해 자동으로 관리되므로 데이터 베이스 관리자(DBA)의 개입이 거의 필요하지 않습니다. 다음과 같은 경우 관리자의 개입이 필요할 수 있습니다.

  - undo space가 부족한 경우
  - 유저가 ORA-01555 snapshot too old오류 메세지를 수신하는 경우

언두 관리

언두 관리를 통해 다음 오류를 방지해야 합니다.
  언두 테이블 스페이스의 공간 오류 :
    - 언두 테이블 스페이스의 크기를 적절히 조정합니다.
    - 대형 트랜잭션을 주기적으로 커밋합니다.

 "Snapshot too old" 오류 :

    - 적절한 언두 retention 간격을 구성합니다.
    - 언두 테이블 스페이스의 크기를 적절히 조정합니다.
    - 언두 retention 보장을 고려합니다.

    자동 언두 관리 사용 :

     UNDO_MANAGEMENT = AUTO
     UNDO_TABLESPACE=UNDOTBS1

언두 Retention 구성

  UNDO_RETENTION은 이미 커밋된 언두 정보의 보관 기관을 초단위로 지정합니다.


 

Posted by 예영교육 연구소