본문으로 바로가기
반응형
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 설정 전

별첨2) Default Tablespace 설정 후