Oracle에서는 Data file 이라는 물리적 파일 형태 저장하고 이러한 Data file이 하나 이상 모여서 Tablespace라는 논리적 저장공간을 형성합니다.
Tablespace는 하나의 데이터베이스 안에 가장 큰 논리적 저장공간으로 업무의 단위나 사용용도에 따라 여러개의 Tablespace로 분리하여 관리되고 Segment(오브젝트)라는 논리적 저장공간의 집합이기도 합니다.
테이블 스페이스의 데이터가 계속 추가되면 필요에 따라 추가적인 익스텐트가 동적으로 할당될 수 있습니다. 여기에 관리 옵션이 두 가지가 있습니다.
CREATE TABLESPACE [테이블명]
DATAFILE '/opt/oracle/oradata/db.dbf'
SIZE 10M -- 초기용량
AUTOEXTEND ON NEXT 10M -- 자동증가 용량
MAXSIZE 100M -- 최대로 확장 할 수 있는 용량
EXTENT MANAGEMENT LOCAL
UNIFORM SIZE 1000m -- 익스텐트를 할당할 때 사용되는 고정된 크기
;
SELECT
tablespace_name,
SUM(bytes) / (1024 * 1024) as "Total MB",
SUM(max_bytes) / (1024 * 1024) as "Max MB"
FROM
dba_data_files
WHERE
tablespace_name = [테이블명]
GROUP BY
tablespace_name;
TABLEPACE에 수동으로 DATAFILE 추가
ALTER TABLESPACE [테이블명] ADD DATAFILE '/opt/oracle/oradata/db.dbf' SIZE 30G;
기존 DATAFILE 속성 변경 - 수동으로 SIZE증가
ALTER DATABASE DATAFILE
'/opt/oracle/oradata/db.dbf' resize 2G;
기존 DATAFILE 속성 변경 - 자동으로 SIZE증가
ALTER DATABASE DATAFILE
'/opt/oracle/oradata/db.dbf'
AUTOEXTEND ON NEXT 5M
MAXSIZE 30G;