'테이블스페이스 생성'에 해당되는 글 2건

  1. 2011.02.22 Tablespace의 생성과 삭제
  2. 2011.02.22 Tablespace 생성하기
반응형

 
 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;

반응형
반응형

아래의 구문들은 본인이 참고하기 위한 것입니다. 만약 Test를 위한 것이라면 아래의 구문으로 Test하시기 바랍니다.
1. Test 테이블 스페이스 생성하기
CREATE TABLESPACE "DATA_TEST"
LOGGING
DATAFILE
'D:\DATABASE\SLXO2P\DATAFILES\DATA_TEST01.DBF' SIZE 4M,
'D:\DATABASE\SLXO2P\DATAFILES\DATA_TEST01.DBF' SIZE 4M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO;

 ---> AUTO 옵션을 주면 할당된 용량이 다 차면, 자동으로 용량을 늘려준다.

2. 본인이 참고하기 위해 만든 것들
1) 데이타가 들어갈 테이블 스페이스 생성하기
CREATE TABLESPACE "DATA_XOSL2_D_P"
LOGGING
DATAFILE
'D:\DATABASE\SLXO2P\DATAFILES\DATA_XOSL2_D_P01.ORA' SIZE 4000M REUSE,
'D:\DATABASE\SLXO2P\DATAFILES\DATA_XOSL2_D_P02.ORA' SIZE 4000M REUSE,
'D:\DATABASE\SLXO2P\DATAFILES\DATA_XOSL2_D_P03.ORA' SIZE 4000M REUSE,
'D:\DATABASE\SLXO2P\DATAFILES\DATA_XOSL2_D_P04.ORA' SIZE 4000M REUSE,
'D:\DATABASE\SLXO2P\DATAFILES\DATA_XOSL2_D_P05.ORA' SIZE 4000M REUSE,
'D:\DATABASE\SLXO2P\DATAFILES\DATA_XOSL2_D_P06.ORA' SIZE 4000M REUSE,
'D:\DATABASE\SLXO2P\DATAFILES\DATA_XOSL2_D_P07.ORA' SIZE 4000M REUSE,
'D:\DATABASE\SLXO2P\DATAFILES\DATA_XOSL2_D_P08.ORA' SIZE 4000M REUSE
DEFAULT STORAGE ( INITIAL 2048K NEXT 2048K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 10);

2) 위의 데이타 테이블 스페이스에 대한 인덱스 테이블 스페이스 생성하기
CREATE TABLESPACE "INDX_XOSL2_D_P"
LOGGING
DATAFILE
'E:\DATABASE\SLXO2P\DATAFILES\INDX_XOSL2_D_P01.ORA' SIZE 4000M REUSE,
'E:\DATABASE\SLXO2P\DATAFILES\INDX_XOSL2_D_P02.ORA' SIZE 4000M REUSE,
'E:\DATABASE\SLXO2P\DATAFILES\INDX_XOSL2_D_P03.ORA' SIZE 4000M REUSE,
'E:\DATABASE\SLXO2P\DATAFILES\INDX_XOSL2_D_P04.ORA' SIZE 4000M REUSE,
'E:\DATABASE\SLXO2P\DATAFILES\INDX_XOSL2_D_P05.ORA' SIZE 4000M REUSE,
'E:\DATABASE\SLXO2P\DATAFILES\INDX_XOSL2_D_P06.ORA' SIZE 4000M REUSE,
'E:\DATABASE\SLXO2P\DATAFILES\INDX_XOSL2_D_P07.ORA' SIZE 4000M REUSE,
'E:\DATABASE\SLXO2P\DATAFILES\INDX_XOSL2_D_P08.ORA' SIZE 4000M REUSE,
'E:\DATABASE\SLXO2P\DATAFILES\INDX_XOSL2_D_P09.ORA' SIZE 4000M REUSE,
'E:\DATABASE\SLXO2P\DATAFILES\INDX_XOSL2_D_P10.ORA' SIZE 4000M REUSE
DEFAULT STORAGE ( INITIAL 2048K NEXT 2048K MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 10);

3) 위의 임시 테이블 스페이스 생성하기
CREATE TEMPORARY
TABLESPACE "DATA_TEMP" TEMPFILE
'D:\DATABASE\SLXO2P\DATAFILES\DATA_TEMP01.ORA' SIZE 4096M REUSE
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1024K;

반응형