본문 바로가기

broko Blog!

UNDO tablespace 관리

반응형

1. 새로운 undo tablespace를 다음과 같이 생성한다.

CREATE UNDO TABLESPACE UNDOTBS2 
DATAFILE '/home/oradata/undotbs.dbf' SIZE 100M;

2. undo tablespace의 이름을 변경하려면 다음과 같이 실행한다.

ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBS2;

3. 기존에 사용하던 undo tablespace를 drop 한다.

DROP TABLESPACE UNDOTBS1;

4. spfile이 아니고 initSID.ora file을 사용하는 경우에는 initSID.ora
file에 undo_tablespace parameter의 값을 새로운 undotbs2로 변경시킨다.

Example


예를 들어 기존에 사용하던 UNDO tablespace가 가진 datafile의 size가 
너무 크게 늘어나서 새로운 undo tablespace로 변경하는 방법을 알아보자.

1. 우선 현재의 undo tablespace name을 확인한다.

SQL> show parameter undo_tablespace

NAME TYPE VALUE

-----------
undo_tablespace string UNDOTBS

2. UNDOTBS와 대체할 새로운 undo tablespace를 생성한다.
그때 아래와 같이 자동으로 늘어나되, maximum size를 지정할 수 있다.

SQL> create undo tablespace undotbs2
2 datafile '/home/oradata/undotbs2.dbf' size 10m
3 autoextend on maxsize 100m;

3. 생성된 undo tablespace를 확인한다.

SQL> select tablespace_name, contents, extent_management
2 from dba_tablespaces 
3 where contents = 'UNDO';

TABLESPACE_NAME CONTENTS EXTENT_MAN


---------


UNDOTBS UNDO LOCAL

UNDOTBS2 UNDO LOCAL

4. undo tablespace에 설정된 rollback segment를 확인한다.

SQL> select segment_name, tablespace_name, status
2 from dba_rollback_segs
3 order by 2;

SEGMENT_NAME TABLESPACE_NAME STATUS


------------------------------


SYSTEM SYSTEM ONLINE

_SYSSMU1$ UNDOTBS ONLINE
_SYSSMU2$ UNDOTBS ONLINE
_SYSSMU3$ UNDOTBS ONLINE
_SYSSMU4$ UNDOTBS ONLINE
_SYSSMU5$ UNDOTBS ONLINE
_SYSSMU6$ UNDOTBS ONLINE
_SYSSMU7$ UNDOTBS ONLINE
_SYSSMU8$ UNDOTBS ONLINE
_SYSSMU9$ UNDOTBS ONLINE
_SYSSMU10$ UNDOTBS ONLINE
_SYSSMU11$ UNDOTBS2 OFFLINE
_SYSSMU12$ UNDOTBS2 OFFLINE
_SYSSMU13$ UNDOTBS2 OFFLINE
_SYSSMU14$ UNDOTBS2 OFFLINE
_SYSSMU15$ UNDOTBS2 OFFLINE
_SYSSMU16$ UNDOTBS2 OFFLINE
_SYSSMU17$ UNDOTBS2 OFFLINE
_SYSSMU18$ UNDOTBS2 OFFLINE
_SYSSMU19$ UNDOTBS2 OFFLINE
_SYSSMU20$ UNDOTBS2 OFFLINE

위와 같이 한번에 하나의 UNDO tablespace만 설정할 수 있다.

5. 새로운 undo tablespace를 지정한다.

SQL> alter system set undo_tablespace = undotbs2;

위와 같이 실행한 후에 4번의 sql을 다시 실행해 보면 이번에는 
undotbs 의 rollback segment들이 모두 offline되고 undotbs2 의 
rollback segment 들은 online된 것을 볼 수 있다.

6. 기존의 undo tablespace를 drop한다.

SQL> drop tablespace undotbs;

7. spfile이 아닌 initSID.ora를 사용하는 경우는 initSID.ora file에
undo_tablespace parameter의 값을 해당 tablespace, 여기서는 

undotbs2로 변경시켜 둔다.

'broko Blog!' 카테고리의 다른 글

datafile & tablespace 정보 확인  (0) 2016.02.18
테이블 스페이스 삭제  (0) 2016.02.18
사용자 비밀번호 초기화  (0) 2016.02.18
USER 락(LOCK) 해제 쿼리  (0) 2016.02.18
crontab 사용 권한이 없습니다.  (0) 2016.02.18