Oracle

언두 데이터 관리

별다방체리콕 2024. 2. 27. 13:31

 

 

 

언두 데이터 관리

  • 자동 언두 관리 : Oracle 서버는 언두 세그먼트의 생성, 할당 및 튜닝을 자동으로 관리
  • 수동 언두 관리 : 언두 세그먼트의 생성, 할당 및 튜닝을 사용자가 수동으로 관리

 

 

 

 

 

 

 

 

 

언두 세그먼트 : 목적

  • 트랜잭션 롤백 : 트랜잭션이 테이블에서 행을 수정할 때 수정된 열의 이전 이미지(언두 데이터)는 언두 세그먼트에 저장됨 
    트랜잭션이 롤백된는 경우 Oracle 서버는 언두 세그먼트 값을 그 행에 기록하여 원래 값을 복원함

 

  • 트랜잭션 복구 : 트랜잭션이 진행된는 동안 인스턴스가 실패한 경우 Oracle 서버는 데이터베이스가 다시 열릴 때 커밋되지 않은 변경 사항을 언두해야 함
    이러한 롤백은 트랜잭션 복구의 일부임
    언두 세그먼트의 변경 사항은 리두 로그 파일로도 보호되므로 복구가 가능함

 

  • 읽기 일관성 : 트랜잭션이 진행되는 동안 데이터베이스의 다른 사용자는 이 트랜잭션에 의해 커밋되지 않은 변경 사항을 볼 수 없음
    또한 명령문에서는 해당 명령문이 실행을 시작한 후 커밋된 변경 사항을 볼 수 없음
    언두 세그먼트에 있는 이전 값(언두 데이터)은 주어진 명령문에 대한 일관된 이미지를 제공하는 데에도 사용됨

 

 

 

 

 

 

 

 

 

언두 세그먼트 유형

  • SYSTEM : SYSTEM 테이블 스페이스의 객체 사용
  • 비 SYSTEM : 기타 테이블 스페이스의 객체에 사용
    • 자동 모드
    • 수동 모드 
  • 지연 : 테이블 스페이스가 OFFLINE IMMEDIATE, TEMPORARY 또는 FOR RECOVER 로 설정된 경우 사용됨

 

 

 

 

 

 

 

 

 

 

 

자동 언두 관리 : 개념

  • 언두 데이터는 UNDO 테이블 스페이스를 사용하여 관리됨
  • 인스턴스의 작업 로드를 위해 ㅊ충분한 공간을 유지한 상태로 각 인스턴스마다 UNDO 테이블 스페이스를 하나씩 할당
  • Oracle 서버는 자동으로 UNDO 테이블 스페이스 내에서 언두 데이터를 유지 관리함
  • 언두 세그먼트는 다음 이름 지정 규칙으로 생성됨

 

 

 

 

 

 

 

자동 언두 관리 : Undo Quota

  • 긴 트랜잭션 및 잘못 기록된 트랜잭션이 귀중한 자원을 소모할 수 있음
  • Undo quota 를 사용하여 사용자를 그룹화하고 최대 언두 공간 제한을 그룹에 할당할 수 있음
  • Resource Manager 지시어인 UNDO_POOL 은 자원 그룹에 허용된 공간의 크기를 정의함
  • 그룹이 지정된 제한을 초과하면 현재 트랜잭션이 완료되거나 중단되어 언두 공간이 해제될 때까지 새 트랜잭션을 그룹에 사용할 수 없음

'Oracle' 카테고리의 다른 글

인덱스 관리  (0) 2024.02.27
테이블 관리  (0) 2024.02.27
저장 영역 구조 및 관계  (0) 2024.02.27
테이블스페이스 및 데이터 파일 관리  (0) 2024.02.23
제어 파일 유지 관리  (0) 2024.02.23