블로그 이름

[ORACLE] ORA-01653 : unable to extend table TABLESPACE 본문

개발/Database

[ORACLE] ORA-01653 : unable to extend table TABLESPACE

Hide 2025. 2. 14. 18:31

오라클 DB 생성 시 TABLE DDL SCRIPT에 TABLESPACE를 명시하지 않고 DB TABLESPACE를 DEFAULT로 잡아서 SYSTEM.DBF에 저장되면 TABLESPACE 부족 오류가 발생한다.

 

테이블을 용량이 많은 곳으로 변경하거나 TABLESPACE 용량을 늘려줘야 한다.

 

TABLESPACE는 1개 이상의 DATAFILE을 갖고 있으며 TABLESPACE는 영역이고, 실제 영역 안의 사이즈는 DATAFILE(*.DBF)이 사용한다.

 

TABLESPACE 용량 확인

SELECT A.TABLESPACE_NAME, A.BYTES/1024/1024, (A.BYTES - NVL(B.FREEBYTES, 0))/1024/1024 AS "USE_MB", NVL(B.FREEBYTES, 0)/1024/1024 AS "FREEMB", CONCAT(ROUND(NVL(B.FREEBYTES, 0) * 100 / A.BYTES, 2), '%') AS "USAGE%"

FROM (SELECT TABLESPACE_NAME, SUM(BYTES) BYTES FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) A,

(SELECT TABLESPACE_NAME, SUM(NVL(BYTES,0)) FREEBYTES

FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) B

WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME 

ORDER BY "USAGE%" DESC

 

TABLESPACE 용량 늘리는 방법

1. TABLESPACE DATAFILE 경로 조회

SELECT TABLESPACE_NAME, BYTES/1024/1024 AS MB, FILE_NAME FROM DBA_DATA_FILES

2. DATAFILE 수정 (수동 용량 확장)

ALTER DATABASE DATAFILE 'D:\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSTEM.DBF' RESIZE 2000M

2000MB로 고정

3. DATAFILE 자동 용량 증가

* 자동 증가

ALTER DATABASE DATAFILE  'D:\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSTEM.DBF' AUTOEXTEND ON

* 자동 30MB 증가 및 2000MB 최대 제한
ALTER DATABASE DATAFILE  'D:\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSTEM.DBF' AUTOEXTEND ON NEXT 30M MAXSIZE 2000M

* 제한없이 허용수치까지 자동 30MB 증가
ALTER DATABASE DATAFILE  'D:\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSTEM.DBF' AUTOEXTEND ON NEXT 30M MAXSIZE UNLIMITED

 

마지막으로 DATAFILE의 AUTO EXTEND 여부를 확인하면 된다.

SELECT TABLESPACE_NAME, BYTES/1024/1024 AS MB, FILE_NAME, AUTOEXTENSIBLE FROM DBA_DATA_FILES

 

오늘은 테이블스페이스 확장 방법을 알아보았다.