[ORACLE] 데이터베이스 저장 영역 구조
by garimoo
테이블 데이터가 저장되는 방식
- 세그먼트: 테이블이 생성될 때 해당 테이블의 데이터를 보관
- 테이블스페이스: 세그먼트 모음을 포함
- 테이블은 각 열의 값이 들어있는
행
으로 구성, 각행
은행 조각
으로 구성.- 경우에 따라 전체 행이 한 장소에 들어갈 수 없을 수 있기 때문에,
행 조각
으로 불림.- 삽입된 행이 너무 커서 단일 블록에 들어갈 수 없거나
- 기존 행이 갱신되어 현재 블록의 사용 가능 영역보다 커지는 경우
- 경우에 따라 전체 행이 한 장소에 들어갈 수 없을 수 있기 때문에,
데이터베이스 블록
- 블록 헤더: 위에서 아래로 확장
- 세그먼트 유형(테이블, 인덱스)
- 데이터 블록 주소
- 테이블 디렉토리
- 행 디렉토리
- 트랜잭션 슬롯
- 행 데이터: 블록애 있는 행의 실제 데이터. 아래에서 위로 확장.
- 사용 가능 영역: 필요한 경우 헤더 및 데이터 공간이 늘어날 수 있도록 함. 처음에는 연속된 공간이지만, 삭제와 갱신을 거듭하면 단편화 된다. 이 때 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 백업
Subscribe via RSS