undo 테이블은 롤백하거나 실행취소에 사용되는 테이블 스페이스 입니다.
커밋전 기록했다가 롤백시 복구 용으로 사용됩니다.
dba_tablespaces 에서 CONTENTS 컬럼이 UNDO로 설정되있으면 UNDO 테이블 스페이스입니다.
UNDO EXTENT는 4가지 상태로 변경되는데 아래 쿼리로 상태가 확인 가능하다.
select e.tablespace_name,e.status,e.u_size,f.f_size from
(select e.tablespace_name,e.status,(sum(e.bytes)/1024/1024) as u_size from dba_undo_extents e
group by e.tablespace_name,e.status) e
inner join
(select f.tablespace_name,sum(f.bytes)/1024/1024 as f_size from dba_data_files f
group by f.tablespace_name) f on f.tablespace_name = e.tablespace_name
order by e.tablespace_name,e.status;
1. EXPIRED : 저장 보증기간이 지남 FREE로 반환은 안되있고 rewrite 가능
2. UNEXPIRED : 쿼리는 끝났지만 저장 보증기간이 지나지 않아 아직 저장하고있음
3. ACTIVE : DML을 실행중
4. FREE : free_extent 상태 위 쿼리에서는 안나오고 dba_free_extents로 조회해야 확인 할 수 있다.
commit후 특정 상황에서 EXPIRED에서 반환된다.
* 언두 테이블 스페이스 RETENTION 속성
1.GUARANTEE : 언두 유지시간을 엄격히 적용
2.NOGUARANTEE : 공간이 모자랄 경우 기존 유지기간을 지키지 않고 오래된 것부터 해지하면서 관리
* AUTO 자동확장/수동확장 같은경우는 dba_data_files에 autoextensible 속성으로 확인
1.YES : 파일할당 용량 자동 확장
2.NO: 파일할당 용량 수동확장
* show parameter undo [ undo_retention 속성 ] : 오라클 UNDO 유지시간 (단위 초)
- 초기화 파일에서 설정하거나, ALTER SYSTEM 명령을 사용하여 동적으로 수정 가능
=============== UNDO 테이블 스페이스 관리에는 ===============
테이블 스페이스의 RETENTION 속성과 dba_data_files의 autoextensible 속성을 조합하여 나오는
4가지 방법이 있습니다.
1. NO + NOGURENTEE :
보증시간이 345,600초(4일)와 UNDO_RETENTION 중 큰 값으로 설정되고 EXPIRED 가용확인 => FREE_EXTENT가용확인 =>autoextensible이 NO이기 때문에 파일확장이 안되서 패스 => UNEXPIRED 가용확인 =>오류
2. YES + NOGURENTEE :
v$undostat의 maxquerylen의 길이 +300초 또는 undo_retention속성중 큰 초로 보증시간이 설정되고 EXPIRED 가용확인 => FREE_EXTENT가용확인 =>autoextensible이 YES이기 때문에 파일확장 가용확인=> UNEXPIRED 가용확인 =>오류
3.NO + GURENTEE :
보증시간이 345,600초(4일)와 UNDO_RETENTION 중 큰 값으로 설정되고 EXPIRED 가용확인 => FREE_EXTENT가용확인=>autoextensible이 NO이기 때문에 파일확장이 안되서 패스 => UNEXPIRED 가용확인 =>오류
4.YES + GURENTEE :
v$undostat의 maxquerylen의 길이 +300초 또는 undo_retention 속성중 큰 초로 설정되고 EXPIRED 가용확인 => FREE_EXTENT가용확인 => autoextensible이 YES이기 때문에 파일확장 가용 확인 => UNEXPIRED 가용확인 =>오류
==========오우 쒯 어려워==========
'ORACLE' 카테고리의 다른 글
오라클 테이블 정의서 쿼리 (0) | 2023.11.07 |
---|---|
( ORA-65096 ) 오라클 사용자 생성시 prefix c##붙여야 되는거 없애기 (0) | 2023.11.03 |
오라클 권한 ROLE(역할) 과 PRIVILEGE(권한) (0) | 2023.11.01 |
오라클 오래걸리는 쿼리 확인 (0) | 2023.10.18 |
오라클 12C 삭제 방법 (0) | 2023.08.24 |