#############################################################################################
undo 크기가 늘어나는 이유
#############################################################################################
1. undo segment를 할당하는 방식

 

1-1. autoextend off인 경우
빈 공간이 없다면 undo_retention 값에 해당하는 segment도 재사용하게 되고 이는 snapshot too old가 발생할 수 있다.

 

1-2. autoextend on인 경우
빈 공간이 없다면 undo_retention 값에 해당하는 공간은 재사용하지 않고 데이터 파일 크기를 늘릴 수 있을 때까지 늘린다.
늘릴수 없을 정도까지 늘어났다면 이때부터 undo_retiontion 값에 해당하는 segment도 재사용하게 된다.

이 것이 undo tablespace가 커지는 주이유이다.
AUTOEXTEND ON + MAXSIZE를 적용해 크기를 제한하고 사용하는 방법이 권장된다.

 

#############################################################################################
undo tablespace shrink
#############################################################################################
1. undo tablespace를 원하는 크기로 하나 더 생성한다.
create undo tablespace undotbs2 datafile 'undotbs2.dbf' size <new size>;

 

2. undo_tablespace 파라미터를 바꾼다.
alter system set undo_tablespace=undotbs2;

 

3. 이전의 undo tablespace를 drop한다.
alter tablespace undotbs1 including contents;

 

※만약 drop시 ora-30013이 발생한다면 undo 를 사용하는 트랜잭션이 존재한다는 것이고 이를 drop하기 위해선
해당 트랜잭션이 끝나기를(commit or rollback) 기다릴 수 밖에 없다.

 

※OS에 따라서 drop했는데도 disk상의 공간이 확보가 되지 않을 수 있다(du or df).

   이때는 disk 확보가 필요하다면 db 재시작이 필요하다.

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

EZCONNECT 사용방법  (0) 2014.05.30
DB Upgrade 상식  (0) 2014.05.27
datapump expdp remote  (0) 2014.04.03
Datapump export in ASM  (0) 2014.03.20
About View  (0) 2014.03.07
Posted by neo-orcl
,