[Oracle] 테이블 스페이스 설정

2021. 11. 27. 01:03Study/Database

1. 테이블스페이스 생성

사용자 계정만 만들었다고 바로 테이블 생성하고 쓸 수 있는게 아니다.

테이블을 생성하고 데이터를 적재할 공간을 만들어줘야 하는데, 그 공간이 TABLESPACE 이다.

물리적인 저장 공간이라고 생각하면 될 것 같다.

 

우선, 기본 옵션들로만 TABLESPACE 를 생성해 보았다.

CREATE TABLESPACE TABLESPACE_NAME -- TABLESPACE 이름 지정
DATAFILE 'ORACLE설치경로\oradata\TABLESPACE_NAME.dbf' -- TABLESPACE 데이터 저장 경로
SIZE 512M              -- 초기 사이즈
AUTOEXTEND ON NEXT 10M -- 초기 사이즈가 다 찼을 경우, 10M씩 용량을 늘려감
MAXSIZE 4096M          -- 최대 용량(4GB)까지만 AUTOEXTEND 할 수 있음
UNIFORM SIZE 1M;       -- EXTENT 한개 크기

이 외에도 다른 옵션들이 많지만,

기본으로 이정도만 세팅해줘도 별다른 이상 없이 DB기능을 사용할 수 있다.

용량은 개인 PC 환경에 따라(서버환경에 맞춰서) 정해주면 된다.

 

테이블 스페이스 생성이 완료되면 DATAFILE 에 지정해준 경로에 DBF 파일이 생성된다.

 

DATAFILE 경로의 경우, 굳이 oradata 하위 경로가 아니어도 되나

   관리의 편이성을 위해서 [ oracle 설치경로 > oradata 하위 ] 로 지정하는게 좋다.

 

SELECT * FROM DBA_TABLESPACES;

전체 테이블스페이스 정보도 조회 가능함

 

2. 생성된 테이블스페이스에 사용자 설정

테이블 스페이스만 만들어 놓는다고 또 바로 테이블 만들고 데이터처리를 할 수 있는게 아니다.

이 테이블 스페이스를 어떤 사용자에게 할당할 것인지 아직 지정해주지 않았음!

테이블 스페이스에 사용자를 설정해준다.

ALTER USER USERNAME
DEFAULT TABLESPACE TABLESPACE_NAME;

 

3. 임시 테이블스페이스 설정

테이블 정렬과 같은 임시 작업을 수행할 때 사용하는 작업공간으로,

초기 생성 시, 기본 TEMPORARY TABLESPACE가 할당되어 있다.

로컬환경과 같이 작업량이 적은 DB에서는 기본으로 세팅된 DEFAULT TEMP SPACE를 사용해도 되겠지만,

SYSTEM 에 할당된 DEFAULT TEMPORARY TABLESPACE를 사용하는 것이기 때문에

작업량이 많아지는 경우 SYSTEM TABLESPACE 에 단편화가 발생할 수 있다.

SYSTEM TABLESPACE는 ORACLE SYSTEM 실행에 있어서 필요한 기본 공간이기 때문에

가능한 최상의 성능을 갖춰줘야 할 필요가 있다!

 

때문에 이런 임시 작업을 할 때 사용할 공간을 각 TABLESPACE 별로 따로 만들어주는 것이 좋다.

참고로, 임시작업용 공간이기 때문에, 초기 사이즈를 쓸데없이 크게 만들면 공간낭비가 될 수 있다.

 

CREATE TEMPORARY TABLESPACE TABLESPACE_TMP_NAME -- TABLESPACE_TMP 이름 지정
TEMPFILE 'ORACLE설치경로\oradata\TABLESPACE_TMP_NAME.dbf' -- TABLESPACE_TMP 데이터 저장 경로
SIZE 100M               -- 초기 사이즈
AUTOEXTEND ON NEXT 100M -- 초기 사이즈가 다 찼을 경우, 100M씩 용량을 늘려감
MAXSIZE 1024M;          -- 최대 용량(1GB)까지만 AUTOEXTEND 할 수 있음

 

TEMPORARY TABLESPACE 생성이 성공하면, TABLESPACE와 마찬가지로 dbf 파일이 생성된다.

 

임시 테이블 스페이스에도 사용자를 설정해주면 끝!

ALTER USER USERNAME
TEMPORARY TABLESPACE TABLESPACE_TMP_NAME;