[ORACLE] 테이블 스페이스 생성,삭제, 계정생성 및 권한설정
▣ 테이블스페이스의 생성
- 옵션절을 생략할 경우 밑줄친 옵션이 디폴트 값입니다.
- tablespace_name : 생성할 테이블 스페이스 명
- DATAFILE : 새로 생성하는 테이블스페이스가 사용할 데이터 파일
- filespec : 디렉토리 경로명을 포함한 파일명
- size : 새로 생성되는 데이터 파일의 크기
- ONLINE/OFFLINE
ONLINE : 새로 생성되는 테이블 스페이스를 활성화 시키며, 생성 후 바로 사용할 수 있게 함
OFFLINE : 테이블 스페이스를 비활성화 시키며, 생성 후 바로 사용할 수 없음
- PERMANT/TEMPORARY : TEMPORARY 옵션을 사용하면 생성하는 테이블스페이스는
임시 테이블스페이스가 됩니다.
- DEFAULT STORAGE
* INITIAL : 테이블 스페이스의 맨 첫번째 Extents의 크기
* NEXT : 다음 Extents의 크기
* MINEXTENTS : 생성할 Extents의 최소 값
* MAXEXTENTS : 생성할 Extents의 최대 값
* PCTINCREASE : Extents의 증가율, Default값은 50 입니다
테이블 스페이스 생성 예제
-- sysdba권한으로 접속을 합니다.
SQL> conn sys/manager as sysdba
-- 테이블스페이스 생성
SQL>CREATE TABLESPACE storm
DATAFILE 'C:\ORACLE\ORADATA\app_data.dbf' SIZE 100M
DEFAULT STORAGE
(INITIAL 10K
NEXT 10K
MINEXTENTS 2
MAXEXTENTS 50
PCTINCREASE 50)
▣ 테이블스페이스의 자동 확장
▣ 생성한 데이터파일이 다 채워졌을 경우 자동으로 데이터 파일을 확장하는 방법 입니다.
▣ AUTOEXTEND 옵션을 사용 하시면 됩니다.
▣ AUTOEXTEND 옵션 사용법
- ON 아니면 OFF
- CREATE DATABASE, CREATE TABLESPACE, ALTER TABLESPACE에서
사용 할 수 있습니다.
▣ AUTOEXTEND 사용 예제
SQL> ALTER TABLESPACE storm
ADD DATAFILE 'C:\ORACLE\ORADATA\app_data02.dbf' SIZE 200M
AUTOEXTEND ON NEXT 10M
MAXSIZE 500M;
storm 테이블스페이스에 200M 데이터 파일을 추가 했는데요,
이 데이터 파일의 크기인 200M를 전부 사용하게 되면 500M이 될 때까지 자동으로 10M 증가합니다.
▣ AUTOEXTEND 의 OFF
SQL> ALTER DATABASE DATAFILE ‘C:\ORACLE\ORADATA\app_data02.dbf'
AUTOEXTEND OFF;
App_data02.dbf파일의 자동확장을 중지 시킵니다.
▣ 개발계정을 생성 및 권한 부여
sqlplus system/oracle
CREATE USER dosudev // dosudev 계정생성/
IDENTIFIED BY oracle // Password를 oracle로 설정
DEFAULT TABLESPACE prjdosu // prjdosu 의 테이블 스페이스를 사용한다.
QUOTA unlimited ON prjdosu // prjdosu 테이블스페이스의 내용을 모두 쓸수 있다.
TEMPORARY TABLESPACE temp ; // 임시영역
▣ 계정에 대한 권한 설정.
GRANT CREATE SESSION ,CREATE TABLE // 로그인, 테이블 생성 권한
,CREATE SEQUENCE ,CREATE VIEW // 등등.. '_';
TO dosudev ;
▣ Tablespace 생성.
CREATE TABLESPACE TS_NAME
DATAFILE '/dev/vx/rdsk/dg_01/TS_NAME_FILE01.dbf' SIZE modifyM
DEFAULT STORAGE (INITIAL 512K NEXT 1M MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0) ;
▣ 데이터 파일 추가
ALTER TABLESPACE TS_NAME ADD DATAFILE 'C:\OHome\Data11.dbf' SIZE 1M;
▣ 데이터 파일 크기변경.
ALTER DATABASE DATAFILE/TMMPFILE 'C:\OHome\Data11.dbf' RESIZE 3M;
▣ 데이터 파일 속성변경 : 자동 확장
ALTER DATABASE DATAFILE 'C:\OHome\Data11.dbf' AUTOEXTEND ON/OFF;
Alter Tablespace TS_NAME offline/online;
▣ Tablespace 삭제
Alter tablespace TS_NAME offline;
Drop tablespace TS_NAME including contents and datafiles;
-----------------------------------------------------------------------------------------
▣ Tablespace 삭제
- Tablespace가 더이상 필요없는 경우 Tablespace와 내용을 삭제
- Drop Tablespace 권한 필요
- Tablespace 삭제시 주의 사항
1. Tablespace를 삭제하면 데이터 복구가 불가능하므로 삭제할 Tablespace에 있는 데이터가 나중에 필요없는지 여부를 판단한 후 삭제
2. Tablespace삭제 전과 후 데이터베이스 Full backup필요 => 나중에 문제 발생시 복구가 가능하도록 하기 위해
- Tablespace를 Oracle에서 삭제한 후 OS명령어(Del,rm)로 삭제된 Tablespace의 데이터파일을 삭제해야 함
- 사용중인 세그먼트가 들어 있는 Tablespace삭제불가(Tablespace의 테이블 현재 사용중인 경우, Tablespace에 사용중인 Rollback Segment가 포함된 경우)
=> Tablespace를 Offline상태로 변경한 후에만 삭제 가능
- Tablespace삭제한 후 Tablespace에 대한 정보는 데이터딕셔너리에 남아 있으나 Tablespace상태가 INVALID
- ex) DROP TABLESPACE sp_test INCLUDING CONTENTS
=> INCLUDING CONTENTS : Tablespace내에 데이터가 존재하는 경우
=> CASCADE CONSTRAINTS : Primary key, Foreign Key 등의 Constraint조건을 연속으로 삭제하는 경우
[참고자료 사용 예제]
CREATE TABLESPACE DB_DATA
DATAFILE '/oradata/test/db_data.dbf' SIZE 500M
AUTOEXTEND ON NEXT 50M
DEFAULT STORAGE( INITIAL 500K
NEXT 500K
MINEXTENTS 10
MAXEXTENTS 121
PCTINCREASE 50);
CREATE USER dbuser
IDENTIFIED BY dbpassword
DEFAULT TABLESPACE DB_DATA
TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON DB_DATA;
GRANT CREATE SESSION, DBA TO dbuser;
출처 : http://blog.naver.com/hi30000/120026607959
http://demo.initech.com/?document_srl=539
http://javaiyagi.tistory.com/entry/oracle-TABLESPACE-생성
http://blog.naver.com/cosmosb612/80038885233