Oracle DATA, INDEX TABLESPACE 데이터, 인덱스 테이블스페이스 분리 구성
요즘 TABLESPACE 를 DATA 영역과 INDEX 를 분리하는 곳이 많다.
아래 가이드를 참고하여, 많은 분들의 도움이 되시면 좋을 것 같습니다.
두 가지 방안으로 Tablespace 를 구성할수 있으며, 방식은 동일하다.
1) sys 권한을 가진 계정을 이용한 Tablespace 생성 후 user 계정을 생성하여 설정
2) Tablespace 를 생성하여, 기존에 생성된 user 계정에게 설정
1. Tablespace (테이블스페이스) 생성
oracle@MIN ~]# sqalplus / as sysdba
or
oracle@MIN ~]# sqlplus "/as sysdba"
○ UMF 방식 (User Managed File) 으로 진행하였으며, OMF 방식으로도 구성 가능
- DATA TABLESPACE 생성
SQL> CREATE TABLESPACE 테이블스페이스명 --> 테이블 스페이스 생성
DATAFILE '/경로/데이터파일명.dbf' SIZE 1G --> 데이터파일 경로 및 사이즈 설정
AUTOEXTEND ON NEXT 100M; --> Autoextend 설정 ( 회사 별로 설정 상이)
ex) create tablespace TS_min_DATA datafile '/oradata/MINDB/TS_min_DATA_datafile_01.dbf' size 10G autoextend on next 100M;
-> Tablespace TS_min_DATA 생성
-> Tablespace datafile 경로 : /oradata/MINDB/TS_min_DATA_datafile_01.dbf
-> datafile size : 10 GB (10GB 로 초기 생성 / 100M , 1G 등 사용자에 맞게 생성한다.)
-> autoextend : 초기값 10GB 사용 이후 100M 씩 자동으로 tablespace용량 증가
- INDEX TABLESPACE 생성
SQL> CREATE TABLESPACE 테이블스페이스명 --> 테이블 스페이스 생성
DATAFILE '/경로/데이터파일명.dbf' SIZE 1G --> 데이터파일 경로 및 사이즈 설정
AUTOEXTEND ON NEXT 100M; --> Autoextend 설정 ( 회사 별로 설정 상이)
ex) create tablespace TS_min_INDEX datafile '/oradata/MINDB/TS_min_INDEX_datafile_01.dbf' size 10G autoextend on next 100M;
-> Tablespace TS_min_INDEX 생성
-> Tablespace datafile 경로 : /oradata/MINDB/TS_min_INDEX_datafile_01.dbf
-> datafile size : 10 GB (10GB 로 초기 생성 / 100M , 1G 등 사용자에 맞게 생성한다.)
-> autoextend : 초기값 10GB 사용 이후 100M 씩 자동으로 tablespace용량 증가
2. 계정에 생성 및 TABLESPACE 할당
SQL> CREATE USER 유저명 IDENTIFIED BY 패스워드
DEFAULT TABLESPACE 테이블 스페이스명
QUOTA UNLIMITED ON 데이터 테이블 스페이스명 --> 테이블스페이스 사용 용량 설정
QUOTA UNLIMITED ON 인덱스 테이블 스페이스명; --> 테이블스페이스 사용 용량 설정
ex) create user min identified by 1 default
tablespace TS_min_DATA
quota unlimited on TS_min_DATA
quota unlimited on TS_min_INDEX
;
-> min 유저 패스워드 1로 생성하며, default tablespace 를 TS_min_DATA 로 설정
-> min 계정은 TS_min_DATA / TS_min_INDEX TABLESPACE 에 대해 용량 제한없이 사용가능하도록 설정
해당 설정이 완료 된 후 min 계정은 연결된 테이블스페이스 2개를 사용할수 있으며,
DATA / INDEX 구성시 두개의 TABLESPACE 를 사용하도록 구성하면 된다.
이후 추가적인 권한이 필요할 수 있으므로, 각 업무에 정책에 따라 부여하면 됩니다.
ex) GRANT RESOURCE, CONNECT, DBA TO USER명
3, 기존 생성된 계정에 TABLESPACE 할당
SQL> ALTER USER 유저명 DEFAULT TABLESPACE 테이블 스페이스명; --> 테이블 스페이스 할당
QUOTA UNLIMITED ON 데이터 테이블 스페이스명 --> 테이블스페이스 사용 용량 설정
QUOTA UNLIMITED ON 인덱스 테이블 스페이스명; --> 테이블스페이스 사용 용량 설정
ex) alter user min default tablespace TS_min_DATA
quota unlimited on TS_min_DATA
quota unlimited on TS_min_INDEX
;
-> user min 계정에게 default tablespace TS_min_DATA 설정
-> in 계정은 TS_min_DATA / TS_min_INDEX TABLESPACE 에 대해 용량 제한없이 사용가능하도록 설정
별첨) USER의 TABLESPACE 구성 확인 쿼리
4. Default Tablespace 확인
- user 계정으로 조회
SQL> sqlpus / as sysdba
SQL> conn min
password : 1
SQL> select * from user_users;
별첨1) Default Tablespace 설정 전

기본 계정 생성시 Default Tablespace 는 USERS 로 설정된다
별첨2) Default Tablespace 설정 후

Default Tablespace 설정 후
출처: https://holics1226.tistory.com/14
[참고] 테이블스페이스 지정 방법
-- 테이블 생성 시 데이터 테이블스페이스 지정
CREATE TABLE my_table (
id NUMBER,
name VARCHAR2(50)
) TABLESPACE data_ts;
-- 인덱스 생성 시 인덱스 테이블스페이스 지정
CREATE INDEX idx_my_table_id ON my_table(id) TABLESPACE index_ts;
'정보관리(데이터베이스, DB) > DB' 카테고리의 다른 글
| DBMS별 테이블 컬럼 정의서 추출 - 오라클, MYSQL, MSSQL, CUBRID, SYBASE, TIBERO (0) | 2025.08.30 |
|---|---|
| DATA / INDEX TABLESPACE 분리 구성 (0) | 2025.08.30 |
| [tibero6] 티베로6 세션 제한 수 설정 및 tbboot 에러 해결 (0) | 2025.08.29 |
| DBeaver 테이블 명세 추출 쿼리 (0) | 2025.08.28 |
| 오라클에서 계정을 왜 스키마로 표시하는가? (0) | 2025.08.28 |