-
[펌] UNDOTBS 재생성DBMS/Oracle 2009. 1. 14. 12:51반응형
long transaction등으로 인하여 undo tablespace가 일단 커지면 줄어들지 않음
이 경우에는 수동으로 삭제 후 재생성해주어야 함
다음은 해당 절차임* undo tablespace 재생성 방법
. undo tablespace는 이미 늘어난 파일사이즈를 줄일 수가 없으므로 create -> switch -> drop -> switch의 과정을
거쳐야 한다.
. 처리 과정
1) 현재 undo tablespace 확인
. show parameter undo_tablespace2) 대체할 undo tablespace 생성 (작게 만들면 extend하느라 성능 저하되므로 적당한 크기로 생성할 것)
. CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE
'/SMS_DB09/oradata/SMS/undotbs02.dbf' SIZE 2000M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED;
3) 생성된 undo tablespace 확인
. select tablespace_name, contents, extent_management from dba_tablespaces where contents = 'UNDO';4) undo tablespace 설정된 rollback segment 확인
. select segment_name, tablespace_name, status from dba_rollback_segs where status = 'ONLINE' order by 2;
5) 새로운 undo tablespace 지정
. ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBS2;
. 1), 4)번 실행 후 다시 확인
--> undotbs1이 ONLINE인데도 drop이 됨. 문제 없는지 확인 필요
6) 기존 사용하던 undo tablespace drop
. DROP TABLESPACE UNDOTBS1;
. (참고) dba_free_space에서 확인된 값 이외에 expire된 undo tablespace는 재사용 가능
--> select status , sum(bytes) from dba_undo_extents group by status;7) 기존 UNDOTBS 파일 삭제
8) init.Ora 사용시에는 undo_tablespace parameter 수정해주어야 함
. 오라클 shutdown immediate
. $ORACLE_HOME/dbs/init.Ora 수정 완료
. 오라클 startup
[출처] UNDOTBS 재생성|작성자 히트
반응형'DBMS > Oracle' 카테고리의 다른 글
Oracle Pipelined Table Functions (0) 2008.10.30 [펌] Oracle에서의 Lock (0) 2008.10.30 [펌] SQL*Net message from client 이벤트는 항상 Idle Event 인가? (Pipelined Table Function 의 용도) (0) 2008.10.30