Tablespace란? DBMS에 저장되는 자료가 있는 물리적인 파일이다.
각 개체마다 테이블스페이스를 지정해줄 수 있고, 사용자에게 기본으로 사용할 테이블스페이스를 지정할 수도 있다. 또한 오라클에서는 작업을 위한 Temp 테이블스페이스도 존재하는데, 이 역시 별도로 사용자가 생성하고 지정할 수 있다. 테이블스페이스는 각각이 하나의 파일이기 때문에 생성시 물리적으로 저장될 공간을 지정할 수 있다. 이러한 특징 때문에 디스크 부하를 고려하여 여러 위치에 테이블스페이스를 생성하여 사용할 수 있다.
보통 오라클에서는 /usr/local/oracle/oradata/[SID]/ 디렉토리에 기본 테이블스페이스를 생성하며, Oracle Express Edition에서는 /usr/lib/oracle/xe/oradata/XE/ 디렉토리에 기본 테이블스페이스를 저장한다.
1. 테이블스페이스 생성
---> 테이블스페이를 생성할 경우 여러 옵션이 사용될 수 있으나 테이블스페이스의 기본 용량을 자동으로 늘려주는 옵션(autoextend) 등은 기본으로 사용하는 것이 편하나, 대부분의 회사에서는 사용하지 않는다.
create tablespace [테이블스페이스명]
datafile '[테이블스페이스경로(예. /usr/lib/oracle/xe/oradata/XE/)]/[테이블스페이스명].dbf'
size [용량(예. 1M)]
autoextend on
extent management local autoallocate;
2. Temp 테이블스페이스 생성
---> Temp 테이블스페이스의 최소 용량은 1 M 이상이다. 그러므로 처음 생성시 2M로 생성한 뒤 자동증가 옵션을 사용해야 한다.
create temporary tablespace [테이블스페이스명]
tempfile '[Temp 테이블스페이스경로(예. /usr/lib/oracle/xe/oradata/XE/)]/[테이블스페이스명].dbf'
size [용량(예. 2M)]
autoextend on
extent management local;
3. 테이블스페이스 삭제
---> 특별한 경우가 아니면 테이블스페이스의 모든 내용을 자동으로 지우고 파일까지 깔끔하게 삭제할 수 있다. 이 옵션이 바로 "INCLUDING CONTENTS AND DATAFILES" 이다.
drop tablespace [테이블스페이스명]
including contents and datafiles
cascade constraints;
4. 테이블스페이스 데이터파일 추가 및 RESIZE
SELECT FILE_NAME, BYTES/1024/1024/1024||' GB' FROM DBA_DATA_FILES X WHERE TABLESPACE_NAME='USERS' ORDER BY FILE_NAME;
ALTER TABLESPACE USERS ADD DATAFILES '/oradata/users02.df' SIZE 10G;
ALTER DATAFILE '/oradata/users02.df' RESIZE 30G;
'개발 및 관리 > Oracle 9i, 10g, 11g, 12c, 19c' 카테고리의 다른 글
해당 유저가 가진 테이블의 개수 및 CHARACTERSET 확인하기 (0) | 2011.02.22 |
---|---|
Tablespace 크기 조절 및 Table/Index의 Tablespace 변경 (0) | 2011.02.22 |
Tablespace 관련 정보 얻기 (0) | 2011.02.22 |
Tablespace 생성하기 (0) | 2011.02.22 |
오라클에서 제공하는 예제 테이블, Demobld.sql (0) | 2011.01.18 |