Database/ORACLE

[스크랩] 오라클 Data Fragmentation - Database, Tablespace, Segment, Extent, Block

99iberty 2014. 4. 9. 13:20

http://radiocom.kunsan.ac.kr/lecture/oracle/what_is/fragmentation.html

 

Database, Tablespace, Segment, Extent, Block과 같은 논리적 저장구조를 의미한다.

database 구조는 논리적구조, 물리적구조로 나뉜다.
Tablespace, segment, extent, block의 논리적구조를 통하여 database와 하드디스크를 관리제어한다.
database의 구조
1)물리적 구조
  OS Block
  Data File
2)논리적 구조
  Oracle Block
  Extent
  Segment
  Tablespace
  Database
1)Oracle Block

data가 저장되는 최소 단위임
database를 만들때 parameter file에서 DB_BLOCK_SIZE로 크기를 지정하며, databse 생성 후 크기를 변경할 수 없다.

Data BLOCK들은 계속해서 저장과 삭제를 반복하다 보면 연속적인 Data BLOCK이 조각조각 분리되는데 이를 단편화(fragmentation)이라 한다. 이렇게 단편화된 BLOCK들은 BLOCK 내에 저장 가능한 여유가 있다고 하더라도 실제 data가 저장되지 않는다. 왜냐하면, 오라클의 data BLOCK들은 연속적인 형태를 가져야 data가 저장될 수 있기 때문이다. 따라서 fragmentation 현상으로 data가 저장되지 못한다면, 오라클 DATABASE의 성능이 저하된다.
이러한 단편화를 최소화 하기 위하여 SEGMENT들을 다음과 같은 그룹별로 분리하여 다른 TABLESPACE에서 관리하기를 권한다.

SEGMENT의 종류 단편화 수
DATA DICTIONARY SEGMENT 단편화 - 없음(서버가 자동 관리)
UNDO SEGMENT 단편화 - 중간 수준
DATA SEGMENT 단편화 - 낮음
TEMPORARY SEGMENT 단편화 - 높음
(정렬작업에서 allocate와 deallocate가 반복되기 때문임)
 
2) Extent
  연속적인 block의 집합임
  기본적으로 Block 5개가 하나의 Extent를 이룸
  tablespace를 생성할 때 extent의 크기를 지정하고 필요할 때마다 다시 할당할 수 있음
  extent는 여러 개의 data file에 걸칠 수 없고 반드시 하나의 data file에 존재해야 함
3) Segment
  Segment유형은 다음과 같다.
    Table segment
    Index segment
    Temporary segment
    Undo segment

각 segment는 하나 이상의 extent를 가질 수 있으며, 하나의 tablespace에 속한 여러 data file에 걸칠 수 있음

4) Tablespace
  하나의 tablespace는 
    물리적으로 실제의 data를 저장하는 하나 이상의 data file로 구성되며,
    논리적으로 여러 개의 segment가 모여 tablespace를 구성함

논리적인 segment 단위로 생성 및 관리되는 각각의 object는 두 개 이상의 tablespace에 저장될 수 있음
tablespace의 크기는 system tablespace와 user의 data를 저장하는 non system tablespace의 두 종류로 구분되며, system tablespace를 제외한 나머지 tablespace의 이름은 user(DBA)가 결정할 수 있음

  포함한 data에 따라 read-only나 read-write로 지정할 수 있음
  하나의 tablespace는 하나의 database에 포함되어야 함
  database가 open된 상태에서 tablespace는 onlie이나 offline 상태로 변경할 수 있음
    다만, system tablespace는 활성화된 undo segment를 포함한 tablespace는 offline 시킬 수 없음
5) Database

여러 개의 논리적인 저장 단위인 tablespace들과 물리적인 구조들인 data file, control file, redo log file 들이 모여서 database를 이룬다.