해당 오류는 Tablespace가 부족해서 발생하는 오류이다. Tablespace를 늘려주거나 확장해주면 된다.
1. 현상
ORA-01691: OOO.SYS_LOB0000096269C00233$$ LOB 세그먼트를 1024(TABLESPACE_A테이블스페이스에 있음)에 의해 확장할 수 없음
또는
ORA-01691: unable to extend LOB segment by 1024 in tablespace TABLESPACE_A
2. 조치방법
2.1 sqlplus 접속 or 권한있는 계정으로 db 접속
sqlplus sysdba로 접속 방법:
>sqlplus
> sys as sysdba
> 비밀번호: 엔터
2.2 Tablespace 용량 확인
아래 쿼리를 통해 용량이 부족한 tablespace 정보를 확인한다.
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;
2.3 용량 확보하려는 datafile 경로 확인
위 2.1에서 확인한 tablespace 이름을 아래 SQL의 where조건에 넣어서 datafile의 경로 정보를 확인한다.
select file_name, tablespace_name, bytes, autoextensible from dba_data_files where tablespace_name = 'TABLESPACE_A';
2.4 Tablespace 확장 (datafile 추가)
아래 SQL을 통해 Tablespace를 추가한다.
아래 SQL의 경우, TABLESPACE_A 테이블스페이스에 새로운 2GB 크기의 데이터 파일이 추가되며, 필요한 경우 100MB씩 자동으로 확장된다. 최대 크기 제한이 없으므로 데이터 파일은 필요한 크기로 계속 확장될 수 있다.
alter tablespace [TABLESPACE_A] add datafile 'D:\APP\ORACLE\ORADATA\PROD\TABLESPACE2.DBF' size 2G autoextend on next 100M maxsize unlimited;
마지막으로 2.2의 방법으로 추가된 Tablespace와 용량을 확인한다.
[함께 보면 도움이 되는 글]