by 구루비 UNDO SEGMENT ROLLBACK SEGEMENT TRANSACTION ROLLBACK SET TRANSACTION READ ONLY [2005.04.14]
- Rollback과 Undo는 기본적으로는 동의어 입니다.
- Oracle 9i 이전엔 Rollback Segement라는 용어를 사용했는데, Oracle 9i 이후버전 부터는 Undo Segment라는 용어를 사용합니다.
- Rollback(Oracle 9i 이전 버전) = Undo(Oracle 9i 이후 버전)
- Undo 세그먼트는 관리 방식에 있어서 9i 이후 버전에서 자동 관리 모드와 수동 관리 모드를 선택 할 수 있는 기능이 추가 되었고, 트랜잭션 처리를 위한 알고리즘이 개선되었습니다.
- Undo 세그먼트는 생성, 할당 및 튜닝을 오라클 서버가 관리하므로 DBA는 더 이상 몇개의 Rollback 세그먼트를 생성 할 것인지, 크기는 어떻게 할 것인지, 트랜잭션에 따라 어떻게 할당할 것인지를 결정하지 않아도 됩니다.
- Undo Segments는 Transaction Rollback, 일기 일관성 유지(Read Consistency), Transaction Recovery를 위해 존재 합니다.
- Transaction Rollback이란 Oracle 서버에서 Undo Segment에 저장된 값을 이용해서 원래의 값으로 복원하는 기능을 말합니다. Transaction Rollback이 실행되는 경우는 사용자가 Rollback command를 실행하거나, Transaction이 비정상 종료되어 PMON이 자동 Rollback 처리하는 경우 입니다.
- 읽기 일관성이란 Transaction이 진행되는 동안 Database의 다른 사용자는 이 Consistent Read에 의해 Commit되지 않은 변경 사항을 볼 수 없는 기능 입니다.
- Transaction Recovery는 Transaction이 진행되는 동안 Instance가 실패한 경우 Database가 다시 열릴 때 Commit 되지 않은 사항은 Rollback 되어야 하는데 이때 Undo Segment 정보가 사용 됩니다. Undo Segment의 변경사항은 리두로그 파일로 보호되므로 복구가 가능 합니다.
시스템 테이블스페이스에 존재하는 객체에서 사용
시스템 테이블스페이가 아닌 다른 테이블스페이스에 존재하는 객체에서 사용
Auto Mode : 지정된 Undo 테이블스페이스에서 자동 생성 관리됨
Manual Mode
가) Private : 하나의 인스턴스에만 독점적으로 사용 가능
나) Public : 다중 인스턴스환경에서 어떤 인스턴스라도 사용 가능(OPS 또는 RAC 환경)
테이블스페이스를 offline immediate 명령으로 offline 시켰거나, recovery가 진행 중일 때 사용
- 강좌 URL : http://www.gurubee.net/lecture/1868
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.