Oracle/Admin2009. 12. 3. 16:54
● 개요

- DML과 undo data를 설명할 수 있다.
- undo 데이터를 모니터하고 관리한다.
- undo data와 redo data의 차이를 알 수 있다.
- undo retention을 구성할 수 있다.
- undo retention을 보장할 수 있다.
- undo advisor을 사용할 수 있다.


● Undo Data
    ◎ 정의
      - 변경전의 원래 데이터이다.

    ◎ 특징
       - 데이터를 변경하는 모든 트랜잭션을 위해서 모아둔다.
       - 트랜잭션이 끝나기전까지 보호됨

    ◎ 존재 목적
        - 읽기 일관성 (가장 중요한 존재 목적)
            : 문장이 시작된 시점의 데이터를 문장이 끝날 때까지 보는 것.
        - Rollback
        - Flashback시 이용(undo를 이용해 데이터를 살림)
        - 트랜잭션이 실패시 복구

    ◎ 관련 파라미터 
        ① undo_management = auto
        ② undo_tablespace = undotbs1
        ③ undo_retention = 600(sec)

    ◎ select시에 에러 발생
        : ORA-1555 : snapshot too old 발생
    
       ○ 발생이유
           : 비록 rollback 목적은 상실했지만, 아직 읽기 일관성 목적의 undo data가 사라졌기 때문에 발생한다.

       ○ 해결방법
           ① SQL튜닝
           ② undo 공간을 확대
           ③ undo retention 파라미터 수정

SQL> alter tablespace undotbs1 retention guarantee;  (retention 보장 10g부터)

    ◎ DML에서 에러 발생
       ○ 해결방법
           ① commit를 촉진
           ② 공간확대

기타참고사항

- AUM (Automatic Undo segment Management) <-> MUM(Manual Undo segment Management)
    : 9i 이후 다른 segment의 extents를 가져다 씀

- undo segment관련 쿼리

select * from v$rollstat;   의 RSSIZE 컬럼(롤백 세그먼트의 크기)
select * from dba_rollback_sergs;
select * from v$rollname;

             

'Oracle > Admin' 카테고리의 다른 글

Configuring the Oracle Network Environment  (0) 2009.12.04
Implementing Oracle Database Security  (0) 2009.12.04
Lock의 종류  (0) 2009.12.03
Managing Schema Objects-2  (0) 2009.12.02
Managing Data and Concurrency (주요내용 : Lock)  (0) 2009.12.01
Posted by 자수성가한 부자