트랜잭션 롤백
: 트랜잭션이 완료되기 전에 오류가 발생하거나 사용자가 트랜잭션을 취소했을 때, 변경 사항을 되돌릴 수 있는 기능을 제공합니다.
읽기 일관성(Read Consistency)
유형 | 정의 | 특징 | 용도 |
---|---|---|---|
System Undo Segment | 시스템 트랜잭션을 처리하는 특별한 Undo Segment | 시스템에서 발생하는 필수 트랜잭션을 별도로 관리 | 데이터베이스 운영 및 복구에 사용 |
Non-System Undo Segment | 사용자 트랜잭션을 처리하는 Undo Segment | 일반 트랜잭션에서 발생한 데이터 변경 사항을 저장 | 대부분의 사용자 트랜잭션 처리 |
Manual Mode | DBA가 수동으로 Undo Segment를 관리 | DBA가 직접 Undo Segment를 생성하고 관리 | 성능 관리가 필요한 환경에서 사용 (최근에는 잘 사용되지 않음) |
Automatic Mode | 데이터베이스가 자동으로 Undo Segment를 관리 | 시스템이 자동으로 Undo 크기 및 수명을 조절, DBA의 개입이 적음 | 현대 오라클 시스템에서 주로 사용 |
Private Undo Segment | 특정 트랜잭션 또는 인스턴스에만 할당된 Undo Segment | RAC 환경에서 각 인스턴스에 고유하게 할당, 성능 최적화 | RAC 환경에서 노드 간 성능 분리 및 최적화 |
Public Undo Segment | 여러 트랜잭션에서 공유하는 Undo Segment | 여러 트랜잭션이 동일한 Undo Segment를 공유 | 일반적인 싱글 인스턴스 환경에서 사용 |
Deferred Undo Segment | Undo 처리를 지연시켜 성능을 최적화하는 방법 | 트랜잭션 완료 시까지 Undo 처리를 지연, 대규모 트랜잭션 성능 최적화 | 대규모 트랜잭션 처리 시 성능 저하 방지 |
Undo Segment는 Undo Tablespace라는 특별한 저장 공간에 위치합니다. 모든 트랜잭션이 이 공간을 사용하여 Undo 정보를 저장합니다.
DBA는 UNDO_TABLESPACE 파라미터를 설정하여 특정 Undo Tablespace를 지정할 수 있습니다.
자동 관리(Automatic Undo Management) 모드에서는, 데이터베이스가 스스로 적절한 Undo Segment와 Tablespace를 관리합니다.
Undo Segment는 오라클 데이터베이스의 트랜잭션 관리와 읽기 일관성을 보장하는 중요한 요소입니다.
- Undo 정보를 관리하여 데이터베이스의 안정성과 성능을 높일 수 있으며, 이를 통해 DBA는 데이터 복구 및 동시성 문제를 효과적으로 처리할 수 있습니다.
- Undo Segment 관리의 핵심은 Undo Tablespace와 Undo Retention 설정을 적절히 유지하고, 시스템이 트랜잭션 작업을 원활하게 처리할 수 있도록 하는 것입니다.