학습자료(~2017)/오라클

7. 오라클 - 테이블 스페이스

단세포소년 2011. 3. 11. 18:38
반응형

Oracle Database 는 두가지 유형의 테이블 스페이스로 구성되어있다.

● SYSTEM 테이블 스페이스
 - Data Dictionary 정보, Stored Procedure의 정의 Package, Trigger 포함
 - SYSTEM ROLLBACK SEGMENT 포함
 - 사용자 데이터 포함 가능

●NON-SYSTEM 테이블 스페이스
 - 보다 융통성 있게 데이터베이스를 관리
 - Temporary segment , Application Data Segment, Index Segment, User Data Segment
 - Rollback : 특별한 성격의 NON-SYSTEM 테이블스페이스이며 사용중인 Rollback Segment 가 있으면 off-line, 읽기전용으로 전환 할수 없으며, SYSTEM 테이블 스페이스 처럼 복구 되어야 한다. 다시 말하면 복구를 하기위해 전체 데이터 베이스를 off-line하여 복구해야한다.


Storage 구조

Storage 구조를 보면 테이블 스페이스가 직접적으로 말해 data file들의 묶음이다. 테이블 스페이스는 Segment 로 나누어지고 Segment 는 Extent 로 나누고 Extent 는 Oracle block 으로 나뉜다. Oracle block은 o/s Block으로 나뉜다. 
특히 Extent 는 Data file과 매칭 된다. 즉 Extent는 data file 그 자체이다. 또한 순차적 Block이다.
테이블 스페이스는 하나 이상의 파일로 구성 가능 하며 테이블 스페이스의 용량이 부족하면 늘리는 방법이 있다.




TABLE SPACE 생성
CREATE TABLESPACE tablespacename DATAFILE filespec
DEFAULT STORAGE storage_clause

예) CREATE TABLESPACE test_data
     DATAFILE 'f:/oradata/orcl/test_data01.dbf' SIZE 10M
     DEFAULT STORAGE ( INITIAL 2M
                                     NEXT 1M
                                     MINEXTENT 1
                                     MAXEXTENTS 121
                                     PCTINCREASE 0 ) ;

 .  INITIAL 2M : 초기 2M 할당
 .  MAXEXTENTS 121 : 121회 NEXT 가능
 .  NEXT 1M : 용량 부족으로 다음 추가 할당은 1M 이다.
 .  MINEXTENT 1 : 최소 EXTENT 1부터 시작
 .  PCTINCREASE 0 : 추가 할당(NEXT)에 따른 EXTENT 값을 %만큼줄임



TABLESPACE 변경
ALTER TABLESPACE tablespace
           ADD DATAFILE filespec
           RENAME DATAFILE 'filename' to 'filename'
           DEFAULT STORAGE storage_clause ;



TABLESPACE 제거
DROP TABLESPACE tablespace
INCLUDING CONTENTS   //포함된 object, segment를 지움
CASECADE CONSTRAINTS  // 참조 무결성 깨지더라도 다지우겠다.
ADD DATAFILE ;   // 실 파일 삭제

** 기본적으로 object 나 segment 가 존재시 TABLESPACE는 삭제 되지 않는다.
** 기본적으로 파일로 삭제되지 않는다. (ADD DATAFILE 을 추가하면 실 파일 삭제)



TABLESPACE 이해 - 요약
. 테이블 스페이스는 논리적인 storage 개념이다.
. 테이블 스페이스는 물리적으로 하나 이상의 데이터 파일로 구성된다.
. 테이블 스페이스는 크게 SYSTEM 테이블 스페이스와 NON-SYSTEM(USER) 테이블 스페이스로 구분된다.
. segment data , index, rollback, temporary segment등으로 구분된다.
. segment는 하나 이상의 extent들로 구성된다.
. extent 란 연속적으로 할당된 free block 의 모음이다.
. extent 는 기본 storage 할당 단위이다.
. DB Block(Oracle Block) 은 기본 IO단위이다.
반응형

'학습자료(~2017) > 오라클' 카테고리의 다른 글

9. 오라클 - 테이블 관리 및 활용  (0) 2011.03.15
8. 오라클 - 테이블 스페이스 관리  (0) 2011.03.14
6. 오라클 - Sub Query  (0) 2011.03.11
5. 오라클 - 조인  (0) 2011.03.11
4.오라클 - 그룹, 함수  (0) 2011.03.11