- HOME
- [종료]구루비 DB 스터디
- 2014년 하반기 - 오라클 데이터베이스 스터디
- 14S_데이터 파일
Data file
Datafile 이란
- DB 의 데이터를 담는 파일
- 모든 DB 는 하나 이상의 Datafile 을 가진다
기본 Datafile 은
- SYSTEM Tablespace file : DB 딕셔너리 데이터를 담는 파일
- SYSAUX Tablespace file : DB Non-Dictionary 데이터를 담는 파일
- USERS Tablespace file : 기본 제공되는, 유저 데이터를 담는 파일
파일시스템 방식
Cooked OS Filesystem
Raw Partition
- OS 에서 포맷되지 않은 디스크
- 디스크가 하나의 데이터파일로 인식
- OS 레벨의 데이터 캐싱 없이 DB 로 직접 엑세스 가능하여 성능 향상 가능
ASM
위 세 가지 방식을 하나의 DB 에서 혼용하여 쓸 수 있다
- OCFS (Oracle clustered Filesystem)
- filesystem 을 다수의 노드 간 공유할 수 있도록 해 주는 솔루션
- Oracle Linux 에서 사용 가능(HP/AIX 등의 서버는 벤더사에서 제공하는 공유 솔루션이 별도로 존재 함)
스토리지 계층
Segment
- Tablespace 에 저장되는 핵심 조직구조
- 스토리지 공간을 실제 점유하는 Object 단위
Extent
- 세그먼트의 조합 단위, 하나 이상의 익스텐트로 세그먼트
- Datafile 내부에서 공간 할당 단위 -> 익스텐트 안의 공간은 논리적으로 파일 하나에서 연속적이다
- oracle 11g r2 에서는 deferred segment 개념 도입, 세그먼트 오브젝트 생성 후에도 데이터 들어가기 전까지 익스텐트 할당 안함
- 1 Block ~ 2GB 까지 다양한 크기 가능
블록
- 익스텐트의 구성 단위
- 데이터 I/O 를 위한 최소단위
- 일반적으로 2, 4, 8, 16, 32kb 단위로 구성
- 기본 블록 크기는 DB 생성시에 결정되며 System Tablespace 의 블록 단위가 됨
- 다른 테이블 스페이스 추가 시에는 다른 블록 사이즈 지정 가능
- 하나의 세그먼트 블럭 단위는 동일
블록 구조
- 헤더
- 블록 유형 정보(테이블 블럭/인덱스 블럭)
- 블록에 활성화 되었거나 과거 트렌젝션과 관련된 블록 관련 정보
- 디스크에서의 블록 주소
- 테이블 디렉터리
- 로우 딕셔너리
- 블록 내부에서 특정 Row 를 찾을 수 있도록 하는 포인터의 배열
- 프리스페이스
- 데이터
- Tail
테이블스페이스
- 세그먼트를 담는 공간
- 각 세그먼트는 하나의 테이블스페이스에만 담을 수 있음
- 하나 이상의 데이터 파일로 구성
테이블스페이스 옵션 Dictionary Managed - Locally Managed
- 8.1.5 이전까지는 딕셔너리 관리 방식의 테이블스페이스 사용
- 익스텐트 할당을 위해 빈 공간을 딕셔너리에서 찾아야 함
- 과도한 대기 이벤트 발생시켜 성능 저하 가능
- TTS(Transportable TableSpace) 를 사용하여 Dictionary TBS 를 가져올 때를 대비하여 남겨 놓은 기능
- 8.1.5 이후 Locally 방식 도입
- 각 데이터 파일에 저장 된 비트맵을 이용해 빈 공간 확인 가능
- DB, Tablespace 생성 시 기본적으로 지정되는 방식
- HOME
- [종료]구루비 DB 스터디
- 2014년 하반기 - 오라클 데이터베이스 스터디
- 14S_데이터 파일