티스토리 뷰
Oracle 데이터베이스에서 테이블스페이스(Tablespace)를 증설하는 작업은
데이터 증가에 따른 저장 공간 확보를 위해 필수.
---
1. 현재 테이블스페이스 사용 현황 확인
1.1 테이블스페이스 사용량 조회
SELECT
tablespace_name,
file_name,
bytes/1024/1024 AS "Current Size (MB)",
maxbytes/1024/1024 AS "Max Size (MB)",
autoextensible
FROM dba_data_files
WHERE tablespace_name = 'YOUR_TABLESPACE_NAME';
1.2 남은 공간 확인
SELECT
tablespace_name,
SUM(bytes)/1024/1024 AS "Free Space (MB)"
FROM dba_free_space
WHERE tablespace_name = 'YOUR_TABLESPACE_NAME'
GROUP BY tablespace_name;
---
2. 증설 방법
2.1 기존 데이터 파일 크기 확장 (Resize)
- AUTOEXTEND 옵션 활성화:
ALTER DATABASE DATAFILE '/path/to/datafile.dbf'
AUTOEXTEND ON
NEXT 100M -- 자동 확장 시 증가 크기
MAXSIZE UNLIMITED; -- 또는 MAXSIZE 2048M (최대 크기 지정)
- 수동으로 크기 변경:
ALTER DATABASE DATAFILE '/path/to/datafile.dbf'
RESIZE 2048M; -- 새로운 크기 지정
2.2 새로운 데이터 파일 추가
ALTER TABLESPACE YOUR_TABLESPACE_NAME
ADD DATAFILE '/path/to/new_datafile.dbf'
SIZE 1024M
AUTOEXTEND ON
NEXT 100M
MAXSIZE UNLIMITED;
2.3 TEMP 테이블스페이스 증설
- TEMP 테이블스페이스는 정렬 작업이나 임시 데이터 처리를 위해 사용된다.
- TEMP 테이블스페이스 정보 확인
SELECT
TABLESPACE_NAME,
FILE_NAME,
BYTES/1024/1024 AS SIZE_MB
FROM DBA_TEMP_FILES;
- TEMP 테이블스페이스 증설
ALTER DATABASE
TEMPFILE '/path_to_tempfile/tempfile01.dbf'
RESIZE 1G;
- TEMP 파일 추가
ALTER TABLESPACE TEMP
ADD TEMPFILE '/path_to_tempfile/tempfile02.dbf'
SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE 5G;
---
3. 작업 후 검증
3.1 변경 사항 확인
-- 테이블스페이스 크기 및 자동 확장 여부 확인
SELECT
tablespace_name,
file_name,
bytes/1024/1024 AS "Size (MB)",
autoextensible
FROM dba_data_files
WHERE tablespace_name = 'YOUR_TABLESPACE_NAME';
-- Tablespace 사용량 확인
SELECT
tablespace_name,
used_space,
free_space,
total_space
FROM DBA_TABLESPACE_USAGE_METRICS;
3.2 OS 레벨에서 데이터 파일 확인
$ ls -lh /path/to/datafile.dbf -- 파일 크기 확인
---
4. 주의사항
1. 용량 계획:
- 디스크 여유 공간을 사전에 확인.
- `MAXSIZE`를 무제한(`UNLIMITED`)으로 설정하면 디스크 공간 고갈 위험이 있으므로 주의.
2. 성능 영향:
- 대용량 데이터 파일 추가/확장 시 I/O 부하가 발생할 수 있다.
- Bigfile Tablespace 사용 시 단일 대용량 파일 관리가 가능.
3. 백업:
- 테이블스페이스 구조 변경 전 반드시 백업을 수행.
4. ASM 사용 시:
- ASM(Automatic Storage Management)을 사용하는 경우, 데이터 파일 경로는 `+DISKGROUP` 형식으로 지정.
---
5. 자동화 스크립트 예시
-- 1. 테이블스페이스 증설 (새 데이터 파일 추가)
ALTER TABLESPACE users
ADD DATAFILE '+DATA'
SIZE 2G
AUTOEXTEND ON
NEXT 500M
MAXSIZE 10G;
-- 2. 기존 데이터 파일 확장
ALTER DATABASE DATAFILE '+DATA/orcl/users02.dbf'
RESIZE 5G;
---
6. 문제 해결
- ORA-03297: 파일 크기 초과:
`RESIZE` 시 지정한 크기가 파일 시스템의 여유 공간을 초과하면 발생합니다.
→ 디스크 공간을 확보한 후 재시도합니다.
- ORA-01144: 파일 크기 초과 (블록 크기 한계):
데이터 파일 크기가 Oracle 블록 크기 한도를 초과할 때 발생합니다.
→ `MAXSIZE` 값을 조정하거나 추가 데이터 파일을 생성합니다.
---
이 절차를 따라 테이블스페이스를 안전하게 증설할 수 있다.
운영 환경에서는 반드시 테스트 후 실행하고, 필요 시 DBA와 협업.
'Oracle' 카테고리의 다른 글
Oracle 동적 성능 뷰(Dynamic Performance Views) (1) | 2025.02.01 |
---|---|
Oracle Temp Tablespace 증설 작업 (1) | 2025.02.01 |
Oracle 아카이브 로그 삭제 (0) | 2025.01.16 |
V$PROCESS (1) | 2025.01.16 |
V$INSTANCE (0) | 2025.01.16 |