Oracle 저장공간은 물리적, 논리적 개념으로 나누어서 볼 수 있습니다. 서버에서 파일 형태로 확인이 가능한 측면을 '물리적' 이라고 표현하고, DB상에서 저장/관리 목적으로 나눈 것으로 서버에서 확인이 불가능한 측면을 '논리적'이라고 표현합니다.
Datafile은 데이터를 담고있는 물리적 파일로, 우리가 서버에서 엑셀파일, 워드파일을 보듯이 .dbf 파일을 확인할 수 있습니다.
Tablespace는 DB 상에서 한 개 이상의 Datafile을 묶어 이름 붙인 논리적 공간입니다. Tablespace를 구분하면 DB 관리가 용이합니다. 서비스 별, 오브젝트 별(Table/index)로 Tablespace를 구분해서 관리하는 것을 권고합니다.
Data File
- 데이터 파일 : 데이터베이스의 데이터(테이블, 인덱스 등의 오브젝트, 오라클 내부 관리 데이터)를 보관하는 파일.
- 블록 : 오라클이 데이터를 읽고 쓰는 단위.
- 데이터베이스 버퍼 캐시 : 데이터 파일에서 블록을 읽어 올 때 캐시 역할을 하고, 기록할 때는 버퍼 역할을 하는 SGA의 메모리 영역.
select * from dba_data_files; -- Datafile 정보. 해당 Datafile이 어떤 tablespace에 속해있는지 확인 가능
select * from v$datafile; -- control file 에 저장된 Datafile 정보. checkpoint 정보, 생성 날짜 등 확인 가능
Tablespace
Tablespace : 한 개 이상의 데이터 파일을 그룹으로 묶은 후 이름을 붙인 논리적 공간.
Tablespace의 종류 :
종류 | 설명 |
영구 테이블스페이스 | 테이블이나 인덱스 등을 저장하기 위한 데이터 보존용 테이블스페이스 |
UNDO 테이블스페이스 | UNDO 정보만을 저장하기 위한 특별한 테이블스페이스 |
TEMP 테이블스페이스 | SQL 처리 시 사용하는 임시 작업용 테이블스페이스 |
영구 테이블스페이스
오라클이 동작하는 데 필요한 영구 테이블스페이스
- SYSTEM : 오라클이 동작하는 데 필요한 관리 정보를 가진 딕셔너리 저장
- SYSAUX : 데이터베이스 컴포넌트가 동작하는 데 필요한 관리정보 저장
데이터 저장용 영구 테이블스페이스
- USERS : 데이터를 저장하기 위한 테이블 스페이스. 사용자가 생성한 오브젝트 저장.
UNDO 테이블스페이스
UNDO 세그먼트를 저장하기 위한 전용 테이블스페이스. (이하 7. UNDO Segment 참고)
테이블, 인덱스 등의 오브젝트 저장 불가.
TEMP 테이블스페이스
처리에 필요한 일시적인 작업 영역을 메모리상에서 확보할 수 없을 때 할당되는 디스크 공간.
Ex) 정렬 작업에 필요한 공간 크기가 PGA의 SQL Work Areas보다 클 경우.
(이러한 경우 디스크 I/O로 큰 부하가 발생하므로 SORT_AREA_SIZE 나 PGA_AGGREGATE_TARGET 값 증가를 고려해야 함)
select * from dba_tablespaces;
select * from v$tablespace;
테이블스페이스 용량 관리
데이터가 많아져 테이블스페이스가 꽉 차면 DB가 down된다.
점검 요소
- 서버의 데이터 파일 저장 위치의 여유 공간 확인
- 테이블 스페이스 여유 공간 확인. UNDO는 재사용하므로 제외, 나머지는 사용률 80-90% 이하로 관리 권고.
조치 사항
- 데이터 파일 추가 / Resizing
- Auto Extend 기능 ON
이미지 출저 : 전문가를 위한 오라클 아키텍처 입문
'ORACLE > 아키텍처 기초' 카테고리의 다른 글
[ORACLE] 클러스터링 팩터(Clustering Factor) (0) | 2024.04.25 |
---|---|
오라클 아키텍쳐 (5) Checkpoint (0) | 2023.09.14 |
오라클 아키텍쳐 (4) Redo Log File (0) | 2023.09.12 |
오라클 아키텍쳐 (3) Control File (0) | 2023.09.11 |
오라클 아키텍쳐 (1) 개요 (0) | 2023.09.06 |