#############################################################################################
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 |