테이블 데이터가 저장되는 방식

Image

  • 세그먼트: 테이블이 생성될 때 해당 테이블의 데이터를 보관
  • 테이블스페이스: 세그먼트 모음을 포함
  • 테이블은 각 열의 값이 들어있는 으로 구성, 각 행 조각으로 구성.
    • 경우에 따라 전체 행이 한 장소에 들어갈 수 없을 수 있기 때문에, 행 조각으로 불림.
      • 삽입된 행이 너무 커서 단일 블록에 들어갈 수 없거나
      • 기존 행이 갱신되어 현재 블록의 사용 가능 영역보다 커지는 경우

데이터베이스 블록

Image

  • 블록 헤더: 위에서 아래로 확장
    • 세그먼트 유형(테이블, 인덱스)
    • 데이터 블록 주소
    • 테이블 디렉토리
    • 행 디렉토리
    • 트랜잭션 슬롯
  • 행 데이터: 블록애 있는 행의 실제 데이터. 아래에서 위로 확장.
  • 사용 가능 영역: 필요한 경우 헤더 및 데이터 공간이 늘어날 수 있도록 함. 처음에는 연속된 공간이지만, 삭제와 갱신을 거듭하면 단편화 된다. 이 때 Oracle 서버에 의해 병합.

테이블스페이스에 대한 저장 영역

Extent Allocation

테이블스페이스 내의 Extent 는 두 가지 방법 중 하나로 할당할 수 있다.

  • Automatic: _autoallocate_라고도 하는 이 방법을 사용하면 테이블스페이스 내의 Extent 크기가 시스템에 의해 관리. 임시 테이블스페이스에 대해서는 Automatic을 지정할 수 없다.
  • Uniform: 유저가 지정한 동일 Extent 크기로 테이블스페이스 관리. 기본은 1MB. 임시 테이블스페이스 내의 모든 Extent는 동일. undo 테이블스페이스에 대해서는 uniform을 지정할 수 없다.

Segment Space Management

로컬관리방식 테이블스페이스 내의 세그먼트 는 다음과 같이 지정.

  • Automatic: 오라클 DB는 비트맵을 사용하여 세그먼트 내의 영역 관리. 데이터 블록에서 사용 가능한 공간의 크기가 바뀌면 비트맵에 새로운 상태가 반영되어, 자동으로 관리. → ASSM(Automatic Segment Space Management)
  • Manual: Free List 는 행을 삽입할 공간이 있는 데이터 블록 리스트. 이를 이용하여 사용 가능 영역을 수동 으로 관리.

Compression Options

  • 세그먼트 압축의 장점 (일반적으로 비활성화)
    • 디스크 공간 사용 저장
    • 버퍼 캐시 메모리 사용 줄임
    • 읽기 작업 중 query 실행 속도 높힘
  • 단점
    • 데이터 로딩, DML에 대한 CPU 오버헤드 qkftod
  • OLAP(OnLine Analytical Processing) 시스템에 유용

Logging

테이블 스페이스의 객체에 대한 변경 내용이 모두 redo 로그에 기록.

  • 활성화 되지 않는다면 데이터 손실이 발생할 경우 객체를 Recovery 할 수 없다.

Block Information

생성 중인 테이블스페이스에 사용되는 블록 크기를 보여줌.

미리 구성된 테이블스페이스

SYSTEM

  • 데이터베이스 관리를 위해 사용.
  • 데이터베이스에 대한 관리 정보를 테이블 및 데이터 딕셔너리를 포함.
  • SYS 권한만 접근 가능.

SYSAUX

  • SYSTEM 테이블스페이스의 보조 테이블스페이스.
  • EM(Enterprise Manager)에서는 이 내용을 파이 차트로 볼 수 있음.

TEMP

  • 대규모 정렬, 인덱스 생성 등 임시 세그먼트 생성이 필요한 SQL문을 실행할 때 사용.
  • 각 유저에게 임시 테이블스페이스 할당.
  • 유저 생성 시 임시 테이블스페이스를 지정하지 않으면 TEMP 테이블스페이스를 유저에게 할당.

UNDOTBS1

  • undo 정보를 저장하는데 사용.
  • Automatic Undo Management를 사용하는 경우 지정된 시간에 하나의 undo tablespace만 사용 가능

USERS

  • 유저 객체 및 데이터를 저장하는 데 사용
  • 유저가 생성되었을 때 기본 테이블스페이스가 지정되지 않을 경우, 그 유저에 의해 생성된 모든 객체에 대한 기본 테이블스페이스.
  • SYS나 SYSTEM유저에게 기본 영구 테이블스페이스는 SYSTEM이다.

EXAMPLE

  • 데이터베이스 생성 시 설치할 수 있는 예제 스키마.

OMF(Oracle Management File)

  • OMF를 사용하면 오라클 DB를 구성하는 운영체제 파일을 직접 관리하지 않아도 됨.
  • 파일 이름이 아닌 DB 객체 관점에서 작업 지정. 내부적으로 다음 데이터베이스 구조에 대한 파일을 생성, 삭제
    • 테이블스페이스
    • control 파일
    • redo 로그 파일
    • 아카이브된 로그
    • 블록 변경 사항 추적 파일
    • flashback 로그
    • RMAN 백업