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 |