TECH
QUESTION
자주하는 질문답변 입니다.
Oracle
작성자 | 유건데이타 | 등록일 | 2015-05-13 |
제목 | [ORACLE9I] UNDO TABLESPACE를 변경하는 방법 | ||
---|---|---|---|
[ORACLE9I] UNDO TABLESPACE를 변경하는 방법 =================================== PURPOSE ------- Oracle9i에서 Undo tablespace를 auto mode로 사용할 때, UNDO Tablespace를 변경하는 방법을 알아보자. Explanation ----------- 종종 UNDO Tablespace를 변경해야 하는 경우가 있다. 예를 들어 Undo tablespace의 datafile size가 너무 커진 경우는 datafile의 size를 줄일 수 없다. 그래서 새로운 undo tablespace를 만들어서 database에 지정된 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로 변경시켜 둔다. Reference Documents ------------------- Oracle9i Server Reference |
Comment | |||
---|---|---|---|
등록된 코멘트가 없습니다. |