SQL

오라클 ORA-12954 요청이 허용되는 최대 데이터베이스 크기인 12GB를초과합니다

daeyun대윤 2024. 7. 31. 07:09

ORA-12954 요청이 허용되는 최대 데이터베이스 크기인 12GB를초과합니다. 라는 에러를 만났다. 테이블스페이스를 만들고자...했을 뿐인데... 하나 해결하면 그 다음에러.. 또 해결하면 그 다음에러....계속 에러를 만난다. ㅠㅠ

 

ORA-12954 요청이 허용되는 최대 데이터베이스 크기인 12GB를초과합니다

 

이런 에러가 나는 이유는, Oracle 무료 버전 XE는 데이터베이스 크기에 제한이 있다. Oracle XE 18c와 21c 버전의 경우 데이터베이스 크기는 12GB 제한된다. 그래서...... 이 제한을 초과하려고 하면 ORA-12954 오류가 발생!!!

 

오라클 공식사이트 참고 : https://www.oracle.com/kr/database/free/#resources


그래서 저장공간 용량을 우선 확인해봤다.

select   substr(a.tablespace_name,1,30) tablespace,
         round(sum(a.total1)/1024/1024,1) "TotalMB",
         round(sum(a.total1)/1024/1024,1)-round(sum(a.sum1)/1024/1024,1) "UsedMB",
         round(sum(a.sum1)/1024/1024,1) "FreeMB",
         round((round(sum(a.total1)/1024/1024,1)-round(sum(a.sum1)/1024/1024,1))/round(sum(a.total1)/1024/1024,1)*100,2) "Used%"
from
         (select   tablespace_name,0 total1,sum(bytes) sum1,max(bytes) MAXB,count(bytes) cnt
          from     dba_free_space
          group by tablespace_name
          union
          select   tablespace_name,sum(bytes) total1,0,0,0
          from     dba_data_files
          group by tablespace_name) a
group by a.tablespace_name
order by TABLESPACE;

TotalMB로 뜨는 부분들을 합하면... 12GB가 된다. 그래서... 내 계획은 UsedMB를 보면 적게 사용한 테이블스페이스의 TotalMB를 줄여주었다!.

-- [1] 테이블스페이스 데이터파일 경로 확인
SELECT file_name, tablespace_name, bytes FROM dba_data_files WHERE tablespace_name = '테이블스페이스_네임';

-- [2] 경로 반영해서 사이즈 줄이기
ALTER DATABASE DATAFILE '데이터파일경로' RESIZE 500M;

TotalMB가 1024였지만 사용량이 적은 테이블스페이스의 용량을 500MB로 줄였다. 그리고 나서 다시 CREATE TABLESPACE 명령어를 날렸더니!

짜란~ 성공.. ㅠㅠ 드디어....

 

위 쿼리 도움받은 블로그 : https://devuna.tistory.com/122

728x90
300x250