1. 언두 세그먼트 관리 방식
- 수동 언두 관리 방식 ( Manual Undo Management - MUM)
- 자동 언두 관리 방식 ( Automatic Undo Management - AUM)
2. 수동 언두 관리 방식
수동 언두 관리 방식은 오라클 초기 버전 부터 사용하는 언두 관리 방식으로 DBA가 직접 관리하는 방식을 말한다.
2.1 수동 언두 관리 방식시 DBA가 할수 있는 일
- 언두 세그먼트 생성/삭제
- 언두 세그먼트 온라인/오프라인
- 언두 세그먼트 축소(shrink)
- 트랜잭션에 특정 언두 세그먼트 지정
2.2 장점
- DBA가 언두 세그먼트를 직접 관리
- DB 업무 특성에 맞게 최적화 가능
- 필요 시 자유롭게 추가 및 변경
2.3 단점
- 트랜잭션 양 조사 등 DBA업무량 증가
- 언두 최적화를 하지 않을 시 언두 관련 장애 발생 가능성 높다.
3. 자동 언두 관리 방식
- 오라클이 자동으로 관리하는 관리 방식
- 언두 세그먼트 관련 초기화 파라미터 설정으로 사용이 가능
- 트랜잭션 양에 따라 SMON에 의해 자동으로 언두 세그먼트를 생성및 삭제한다.
- 주기적으로 정보를 수집하여 사용하지 않는 언두 세그먼트를 정리한다. ( shrink -> 오프라인 -> 삭제)
- 인스턴스 종료 후 재 시작할 때에는 종류 직전 언두 세그먼트의 갯수를 유지한다.
3.1 언두 세그먼트 관련 파라미터
- ROLLBACK_SEGMENTS
수동 언두 관리 방식에서 인스턴스 시작 시 자동으로 활성화할 언두 세그먼트를 지정한다. - UNDO_MANAGEMENT
언두 세그먼트 관리 방식을 설정한다. - AUTO : 자동 언두 관리 방식
- MANUAL : 수동 언두 관리 방식
- UNDO_RETENTION
언두 데이터가 유지되는 시간을 설정(초). 기본값은 900. 자동 언두 유지 기능을 사용할 경우, 언두 데이터가 유지되는 최소시간이 된다. - UNDO_TABLESPACE
자동 언두 관리 방식에서 비시스템 언두 세그먼트가 저장될 언두 테이블스페이스를 설정 - _ROLLBACK_SEGMENTS_COUNT
인스턴스가 유지하는 최소 언두 세그먼트의 수를 지정 - _SMU_DEBUG_MODE
숫자로 설정되며 자동 언두 관리 방식을 사용할 때 언두 세그먼트 수동관리 및 에러 추적 파일 생성을 가능하게 한다. 기본 값은 0으로 언두 세그먼트 수동 관리를 방지한다.
--> _SMU_DEBUG_MODE 값을 4로 설정하면 자동 언두 관리 방식에서도 수동처리가 가능하지만 세션 단위의 변경은 불가능 하다.
3.2 몇가지 작업
-- 수동 언두 세그먼트 관리가 가능하게 변경
alter system set "_SMU_DEBUG_MODE"=4;
-- 언두 세그먼트 생성/삭제
create rollback segment test_undo tablespace undotbs1;
drop rollback segment test_undo;
-- 언두 세그먼트 온라인/오프라인
alter rollback segment "_SYSSUMB$" ONLINE;
alter rollback segment "_SYSSUMB$" offline;
--언두 세그먼트 축소
alter rollback segment "_SYSSUM8$" shrink;
--트랜잭션에 특정 언두 세그먼트 지정
set transaction use rollback segment "_SYSSUM8$";
--수동 언두 세그먼트 관리가 불가능하게 변경
alter system set "_SMU_DEBUG_MODE"=0;