언두 데이터 관리
- 자동 언두 관리 : 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 |