데이터베이스/ORACLE

오라클 데이터베이스 [ORA-01536, ORA-00020, ORA-01427] 오류

멈머이 2025. 6. 17. 21:01
728x90


1. ORA-01536: space quota exceeded for tablespace

  • 의미 : 테이블스페이스 사용 할당량(quota)을 초과함
  • 원인 : 사용자가 쓸 수 있는 테이블스페이스 공간을 모두 사용했을 때
INSERT INTO big_table (...) VALUES (...);
-- → 사용자에게 주어진 quota가 모두 소진된 상태

	-- 해결 방법
-- 1. DBA가 사용자 quota 확장
ALTER USER your_user QUOTA UNLIMITED ON users;
-- 2. 또는 특정 용량만 할당
ALTER USER your_user QUOTA 500M ON users;
-- 3. 테이블스페이스 용량도 부족할 경우
ALTER TABLESPACE users ADD DATAFILE 'users02.dbf' SIZE 500M;

 
 
 
2. ORA-00020: maximum number of processes exceeded

  • 의미 : DB에서 설정된 최대 프로세스 수를 초과함
  • 원인 : 너무 많은 사용자 연결, 연결 종료 없이 커넥션 누적
sqlplus user/pass@db
-- 접속 시 ORA-00020 발생

	-- 해결 방법
-- 1. 현재 프로세스 수 확인
SELECT COUNT(*) FROM v$process;
SELECT value FROM v$parameter WHERE name = 'processes';
-- 2. 프로세스 수 조정 (init.ora 또는 spfile)
ALTER SYSTEM SET processes = 300 SCOPE=SPFILE;
	-- 이후 DB 재시작 필요
-- 3. 커넥션 풀 적용 또는 유휴 세션 자동 종료 설정

 
 
 
3. ORA-01653: unable to extend table ... by ... in tablespace ...

  • 의미 :  테이블스페이스에 여유 공간이 없어 더 이상 데이터 확장 불가
  • 원인 : AUTOEXTEND가 꺼져 있거나, 데이터파일 크기가 한계에 도달
INSERT INTO large_table VALUES (...);
-- 테이블스페이스가 가득 찬 상태

	-- 해결 방법
-- 1. 테이블스페이스 사용량 확인
SELECT tablespace_name, bytes/1024/1024 AS mb
FROM dba_data_files;
-- 2. 데이터파일 추가 또는 AUTOEXTEND 설정
ALTER DATABASE DATAFILE '/path/to/file.dbf' AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
-- 또는 
ALTER TABLESPACE users ADD DATAFILE 'users03.dbf' SIZE 500M AUTOEXTEND ON;

 
 
 

  • 개발 DB도 processes, sessions, tablespace 상태는 주기적으로 점검
  • 모니터링 도구 없이도 SQL로 상태 확인 가능 (v$views 사용)
728x90