-
oracle 테이블스페이스DataBase/oracle 2020. 4. 26. 17:31
테이블 스페이스 :
데이터를 저장할 때 사용하는 논리적 저장공간
(하드디스크에서는 실제 여러 개의 물리적인 데이터 파일로 구성될 수 있음)
1) 시스템 테이블스페이스 (기본적으로 오라클에서 제공해주는 테이블스페이스)
Data Dictionary 정보, 프로시저, 트리거, 패키지, 시스템 rollback segment, 사용자데이터 포함
ex) 데이터 변경 후 commit 을 하지 않았을 경우 오라클은 rollback을 위한 데이터도 가지고 있어야 하는데 이러한 공간이 시스템 rollback segment
2) Non-System 테이블스페이스
Temporary segment, applicationData segment degment, index, 사용자 데이터 segment
ex) index를 사용하기위해서는 먼저 index대로 정렬을 시킬 공간이 필요하다 ? 이러한 공간이 temporary segment
테이블스페이스 구성
세그먼트(segment)
-익스텐트(extent) : 데이터를 할당하기위한 단위, 연속적인 데이터블록으로 구성
-데이터블록 : 오라클 입출력 최소단위(저장 최소단위)
테이블스페이스 생성 구문 형식
create tablespace 이름
datafile '저장될 경로 및 사용할 파일 명'
size 저장공간
default storage storage_clause;
** 테이블 스페이스를 만들면 하나의 파일로 저장이 된다. 기본 파일명 : DBF.ora
** size : 테이블 스페이스의 크기
** 논리적인 저장 공간!! 만약 테이블 스페이스를 만들고 여러개의 segment를 사용하여 저장공간이 오바되면 또다른 테이블 스페이스를 만들어 사용할 수 있다. 이러한 테이블스페이스들을 모아 하나의 테이블스페이스로 만드는 것도 가능
테이블스페이스 삭제 구문 형식
DROP TABLESPACE 이름
[INCLUDING CONTENT[AND DATAFILES]
[CASCADECONSTRAINTS];
**INCLUDING CONTENT[AND DATAFILES : 지울 때 테이블 스페이스 안의 데이터들도 같이 지울것인지 선택옵션
** CASCADECONSTRAINTS : 참조되어있는 테이블을 삭제할 때 옵션...?!
** 테이블스페이스는 SYS권한에서만 생성가능
1) 테이블 스페이스 생성
1234567891011CREATE TABLESPACE test_1datafile 'C:\Users\sulki\Desktop\OracleSql\test_3.dbf' size 10Mdefault STORAGE ( initial 60M -- 최초크기의 extent 는 60Mnext 10M -- 그 다음은 10MMINEXTENTS 1 -- 최소 extent갯수 : 1MAXEXTENTS 10 -- 최대 extent갯수 : 10PCTINCREASE 0 -- 퍼센테이지increase : 60M를 다 소진 후-- 다음 extent가 생성될 때 pctincrease의 퍼센테이지를 반영하여-- 생성됨 만약 pctincrease가 50이라면 10M가 생성되는게 아닌-- 10의 50%인 5M가 생성됨);http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter2) 테이블 스페이스의 용량이 부족하여 추가하고싶다면
12alter TABLESPACE test_1add datafile 'C:\Users\sulki\Desktop\OracleSql\test_2.dbf' size 10M;3) 테이블 스페이스에 테이블을 생성하고싶다면 뒤에 붙여주면 된다
123456create table aaa(name varchar2(10))TABLESPACE test_1;4) 테이블스페이스삭제
1234drop TABLESPACE test_1INCLUDING CONTENTS -- 안에있는 컨텐츠도 지울지 선택하는 옵션and DATAFILES; -- 경로에 생성된 data파일도 같이 지울지 선택하는 옵션http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter** 만약 including contents 옵션을 걸지않으면 에러난다
drop TABLESPACE test_1
오류 보고 -
ORA-01549: tablespace not empty, use INCLUDING CONTENTS option
01549. 00000 - "tablespace not empty, use INCLUDING CONTENTS option"
*Cause: Tried to drop a non-empty tablespace
*Action: To drop all the objects in the tablespace, use the INCLUDING
CONTENTS option5) 테이블 스페이스의 size를 자동으로 조정한는 옵션
123456alter tablespace test_1autoExtend on -- 10M가 모자라다면 증가시킬 수 있다next 2M -- 2M씩maxsize 200M; -- 최대 200M까지-- 따라서 test_1에서 사용할 수 있는 최대 size는 210Mhttp://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter6) DBA가 수동으로 size 조정
**alter tablespace가 아닌 alter database 이다!
1alter database datafile 'C:\Users\sulki\Desktop\OracleSql\test_3.dbf' resize 30M;**dictionary : 데이터 사전, 데이터 베이스를 운영하기 위한 모든 정보를 갖고있음
< 테이블 스페이스 관련 dictionary >
1) DBA_TABLESPACES : 모든 테이블스페이스의 저장정보 및 상태정보
2) DBA_DATA_FILES : 테이블스페이스의 데이터파일 정보
3) DBA_FREE_SPACE : 테이블스페이스의 사용공간에 관한 정보를 갖고있음
4) DBA_FREE_SPACE_COALESCE : 테이블스페이스가 수집할 수 있는 EXTENT에 대한 정보
'DataBase > oracle' 카테고리의 다른 글
oracle 인덱스 (0) 2021.01.17 oracle PL/SQL_트리거 (0) 2020.04.26 oracle PL/SQL_패키지 (0) 2020.04.20 oracle PL/SQL_서브프로그램_함수 (0) 2020.04.20 oracle PL/SQL_서브프로그램_프로시저(procedure) (0) 2020.04.19