데이터 파일은 데이터를 저장하는 공간이다.
오라클에서 데이터를 저장할 때 사용 가능한 파일 시스템 메커니즘은 4가지가 있다.
테이블스페이스 는 물리적으로 데이터파일로 구성되어있다.
테이블스페이스에 저장된 핵심 조직 구조이다.
다음과 같은 종류가 있다.
파일 안에 논리적으로 할당된 공간으로 모든 세그먼트는 하나 이상의 익스텐트로 구성된다.
[ 참고 ]
11g release 2부터 deferred 개념이 추가되었다. 이것은 세그먼트 생성 시 처음부터 익스텐트를 할당하는 것이 아니라 데이터가 추가될 때 할당하는 것을 말한다.
익스텐트들은 하나의 세그먼트를 구성한다고 해도 다른 데이터 파일이나 다른 디스크에 있을 수 있다. 즉, 동일한 파일 위치에 있지 않아도 된다는 뜻이다. 하지만 항상 논리적으로 파일 안에서 연속적이다.
오라클에서 공간을 할당하는 최소 단위로서 하나의 익스텐트는 여러 개의 블록들로 구성된다. 실제 데이터를 저장하는 가장 작은 최소 돤위로 I/O를 일으키는 최소단위이다. 크기는 2K, 4K, 8K, 16K중 하나를 선택할 수 있다. 가끔씩 32K가 되는 경우도 있다.
[참고]
다중 블록 크기 기능은 대부분의 경우, transportable 테이블스페이스를 만들 목적으로 소개되었다.
데이터베이스 기본 블록 크기는 CREATE DATABASE 명령어를 통해 파일을 초기화할 때 결정하는데, 이때 결정되는 값으로 SYSTEM tablespace의 블록 크기가 결정된다.
하나의 테이블스페이스에서 모든 블록 크기는 동일하다. LOB 테이블을 갖는 테이블과 같은 다중 세그먼트 오브젝트는 동일한 테이블스페이스에서 각 세그먼트들에 대해 서로 다른 블록 크기를 가질 수 있지만, 하나의 테이블 스페이스에 속한 하나의 세그먼트는 반드시 동일한 크기의 블록으로 구성되어야 한다.
– p134 그림
테이블 스페이스는 세그먼트를 담고 있는 일종의 그릇으로, 오라클의 논리적인 스토리지 저장소 이다.
테이블스페이스의 익스텐트 할당 방법에 대해 알아보자.
[Dictionary Managed TBS]
테이블 스페이스 내 공간을 관리하기 위해 데이터 딕셔너리 테이블을 사용하는 방식의 테이블 스페이스
[Locally Managed TBS]
Dictionary Managed 방식의 문제점을 해결하기 위해 오라클 8.1.5에 새롭게 나온 개념으로 각 데이터 파일에 저장된 비트맵 정보를 이용하여 익스텐트 관리를 하는 것을 말한다.
[참고]
transportable tablespace 기능을 지원하기 위해 Dictionary Managed TBS는 생성할 수 없지만, 지원은 된다.