본문 바로가기
ORACLE/관리

데이터베이스 저장 영역 구조 관리

by 딘스톤 2023. 9. 19.

I. 테이블 데이터가 저장되는 방법

II. 데이터베이스 블록

  1. 블록 헤더
  2. 행 데이터

  3. 사용 가능 영역

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

  1. extent management 

     ① Automatic

     ② Uniform

  2. Segment Space Management

     ① Auto

     ② Manual

IV. 미리 구성된 데이터베이스의 테이블스페이스

     ① SYSTEM

     ② SYSAUX

     ③ TEMP

     ④ UNDOTBS1

     ⑤ USERS

V. 테이블스페이스 상태 변경

  1. Read Write

  2. Read Only

  3. Offline

     ① Normal

     ② Temporary

     ③ Immediate


I. 테이블 데이터가 저장되는 방법

  • 테이블이 생성될 때 해당 테이블의 데이터를 보관하는 세그컨트가 생성되고, 테이블 스페이스는 세그먼트 모음을

     포함합니다.

  • 논리적으로 테이블은 각 열의 값이들어 있는 행들로 구성되고, 행은 행 조각의 폼으로 결국 데이터베이스 블록에

     저장됩니다.

  • 행 조각이라고 하는 이유는 경우에 따라 전체 행이 한 장소에 저장되지 않을수도 있기 때문입니다

  • 삽입된 행이 너무 커서 단일블록에 들어갈 수 없거나 기존 행이 갱신되어 현재 블록의 사용가능 영역보다 커지는

     경우 이러한 상황이 발생합니다 

II. 데이터베이스 블록

1. 블록 헤더

  • 블록 헤더에는 세그먼트 유형, 데이터 블록 주소, 테이블 디렉토리, 행 디렉토리, 블록의 행을 수정할 때 사용되는

    트랜잭션 슬롯이 포함됩니다

  • 블록 헤더는 맨 위부터 아래쪽으로 확장됩니다

 

2. 행 데이터

  • 블록에 있는 행의 실제 데이터입니다.

  • 행 데이터 공간은 맨 아래부터 위쪽으로 확장됩니다.

 

3. 사용 가능 영역 ( pct free ) 

  • 사용 가능 영역은 블록의 중간에 위치하며, 필요한 경우 헤더 및 데이터 공간이 늘어날 수 있도록 합니다

  • 새 행이 삽입되거나 기존 열이 더 큰 값으로 갱신되면 행 데이터는 사용 가능 영역으로 확장됩니다

  • 처음에는 블록의 사용 가능 영역은 연속된 공간입니다

  • 삭제와 갱신을 거듭하면 블록의 사용 가능 영역이 단편화 될 수 있습니다

  • 필요한 경우 블록의 사용가능 영역은 Oracle 서버에 의해 병합됩니다.

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

1. extent management 

  ① Automatic

      • autoallocate라고도 하는 이 방법을 사용하면 테이블스페이스 내의 Extent 크기가 시스템에 의해 관리됩니다.

      • 임시 테이블스페이스에 대해서는 Automatic을 지정할 수 없습니다. 

  ② Uniform

      • 유저가 지정한 동일 Extent 크기로 테이블스페이스가 관리됩니다.

      • 기본 크기는 1MB입니다.

      • 임시 테이블스페이스의 모든 Extent는 동일합니다.

      • 언두 테이블스페이스에 대해서는 Uniform을 지정할 수 없습니다.

2. Segment Space Management

  ① Auto

      • 오라클 데이터베이스는 비트맵을 사용하여 세그먼트 내의 사용 가능 영역을 관리합니다

      • 비트맵은 행 삽입에 사용할 수 있는 블록 내부 공간의 크기에 따라 세그먼트 내에 있는 각 데이터 블록의

         상태를 설명합니다

      • 데이터 블록에서 사용 가능한 공간의 크기가 바뀌면 비트맵에 새로은 상태가 반영됩니다

      • 비트맵을 통해 사용 가능 영역을 자동화된 방식으로 관리하고 이러한 공간 관리 유형을 Automatic

         Segment Space Management(ASSM)라고 합니다.

  ② Manual

      • Free List를 사용하여 세그먼트 내의 사용 가능 영역을 관리할 수 있습니다

      • Free List는 행을 삽입할 공간이 있는 데이터 블록 리스트입니다.

      • 세그먼트 공간 관리는 테이블 스페이스에 생성된 스키마 객체에 대한 PCTUSED, FREELISTS 및 FREELIST

        GROUPS 저장 영역 파라미터를 지정 및 튜닝해야 하므로 수동 세그먼트 공간 관리라고 합니다

      • 이 기능은 역호환성을 위해 지원되는 기능이므로 대신 ASSM을 사용할 것을 권장합니다.

IV. 미리 구성된 데이터베이스의 테이블스페이스

 SYSTEM

    • Oracle 서버에서 데이터베잇 관리를 위해 사용합니다.

    • 데이터베이스에 대한 관리 정보를  포함하는 테이블 및 데이터 딕셔너리가 들어있습니다

    • 모두 SYS 스키마에 포함되어 있으며 SYS 유저나 필요한 권한을 가진 관리 유저만 액세스 할 수 있습니다.

 SYSAUX

    • SYSTEP 테이블 스페이스의 보조 테이블스페이스입니다

    • 모든 Oracle Database 10g Release 이상의 데이터베이스에는 SYSAUX 테이블스페이스가 있어야 합니다.

 TEMP

     대규모 정렬이나 인덱스 생성 등과 같이 임시 세그먼트 생성이 필요한 SQL 문을 실행할 떄 사용됩니다.

     각 유저에게 임시 테이블 스페이스가 할당됩니다

     미리 구성된 데이터베이스에서는 TEMP 테이블 스페이스가 기본 임시 테이블 스페이스로 지정됩니다

     유저 계정 생성시 임시 테이블스페이스를 지정하지 않으면 TEMP 테이블 스페이스를 유저에게 할당합니다.

 UNDOTBS1

     데이터베이스 서버가 언두 정보를 저장하는 데 사용하는 언두 테이블스페이스입니다

     데이터베이스가 Automatic Undo Management를 사용하는 경우 지정된 시간에 단지 하나의 언두

      테이블스페이스만 사용할 수 있습니다.

     이 테이블스페이스는 데이터베이스가 생성될 때 생성됩니다

 USERS

     유저 객체 및 데이터를 저장하는데 사용합니다

     유저가 생성되었을 떄 기본 테이블스페이스가 지정되지 않은 경우 USERS 테이블스페이스는 그 유저에

       의해 모든 객체에 대한 기본 테이블 스페이스입니다

     SYS 및 SYSTEM 유저에게 기본 영구 테이블스페이스는 SYSTEM입니다.

V. 테이블스페이스 상태 변경

1. Read Write

     테이블 스페이스가 온라인이면 읽기 및 쓰기 작업을 수행할 수 있습니다

2. Read Only

     Read Only를 지정하면 테이블스페이스가 변환 Read Only 모드로 설정됩니다

     Read Only 상태에서 기존 트랜잭션을 완료할 수는 있지만 테이블 스페이스의 객체에 대해 더 이상 DML 작업을

      수행할 수 없습니다.

     테이블스페이스는 Read Only 상태에서 온라인 입니다.

     SYSTEM 또는 SYSAUX 테이블 스페이스를 읽기 전용으로 지정할 수 없습니다.

3. Offline

  ① Normal

       테이블 스페이스의 모든 데이터 파일에 오류 조건이 없는 경우 정상적으로 테이블스페이스를 오프라인으로

        설정할 수 있습니다.

       테이블 스페이스의 모든 데이터 파일을 오프라인으로 설정할 경우 해당 파일에 대한 체크포인트를 수행하는

        방식으로 모든 데이터가 디스크에 기록되도록 합니다.

  ② Temporary

       테이블 스페이스의 하나 이상의 파일에 오류 조건이 있어도 임시로 테이블스페이스를 오프라인으로 설정할 수

        있습니다.

       아직 오프라인이 아닌 데이터파일을 오프라인으로 설정하고 체크포인트를 수행합니다.

       오프라인 파일은 없지만 임시 절을 사용하는 경우 테이블스페이스를 다시 온라인으로 되돌리는데 Media

         Recovery가 필요하지 않습니다.

       테이블 스페이스에서 하나 이상의 파일이 쓰기 오류로 인해 오프라인이며 유저가 테이블스페이스를 오프라인으로

        임시 설정하는 경우 해당테이블스페이스를 다시 온라인으로 되돌리려면 recovery가 필요합니다.

  ③ Immediate

       데이터 파일의 체크포인트를 수행하지 않고 테이블스페이스를 즉시 오프라인으로 설정할 수 있습니다

       Immediate를 지정한 경우 테이블스페이스를 온라인으로 되돌리려면 Media Recovery가 필요합니다.

       데이터베이스가 NOARCHIVELOG 모드로 실행되고 있는 경우에는 테이블스페이스를 즉시 오프라인으로 설정할

       수 없습니다.

'ORACLE > 관리' 카테고리의 다른 글

데이터베이스 유지 관리  (0) 2023.10.04
오라클 데이터베이스 감사(audit)  (0) 2023.10.02
언두 데이터 관리  (1) 2023.10.02
데이터 동시성 관리  (0) 2023.09.22
유저 보안 관리  (0) 2023.09.21