ORA-01653: THE_TABLE_NAME 테이블을 1024<으>로 TS_USER1 테이블스페이스에서 확장할 수 없습니다.
테이블 스페이스(즉 공간부족) 가 부족해서 데이터가 더이상 들어갈 수 없을때 발생하는 에러.
해결방법은 3가지로 추려진다.
1. TableSpace를 resize를 통해서 늘여주거나 Datafile을 추가한다.
2. TableSpace의 AutoExtend를 off일 경우 on을 변경한다.
3. Table별 데이타 용량을 체크하여 불필요한 데이타를 삭제한다.
해결방법 1
1.1 기존의 데이터파일의 사이즈를 늘려준다.
alter database datafile '/data/kkk/kkk01.dbf/ resize 5M;
1.2 데이터 파일을 추가한다.
alter tablespace app_data ADD DATAFILE '/data/kkk/kkk02.dbf' size 10M AUTOEXTEND ON NEXT 10M MAXSIZE 100M;
해결방법 2
1. TableSpace가 autoextend가 off되어 있는지 확인한다.
select file_name, tablespace_name, bytes, autoextensible
from dba_data_files
where tablespace_name='KKK';
2. 테이블 스페이스를 자동으로 사이즈가 늘어날 수 있도록 autoextend를 on으로 설정한다.
alter database datafile '/data/kkk/kkk01.dbf' autoextend on next 1M
다만 여기서 주의 사항이 있다.
tablespace 생성할 때 autoextend는 기본이 off 이기 때문에 tablespace의 size를 alter로 수정한다고 해도 실제로 데이터는 기존값 이상 들어가지 않는것 같다.
create tablespace kck datafile 'kkk' size 10M;
위와 같이 생성하고 데이터파일이 full 이 된 이후
alter tablespace kkk alter datafile 'kkk' size 20M;
한다면 실제로 v$tablespace나 datafile의 크기는 20M로 늘어나지만 insert는 용량부족으로 실패하게 된다.
초기의 autoextend가 off 기 때문에 tablespace의 사이즈가 늘어나지 않는것으로 판단 하고 다음과 같이 해결 하였다.
alter tablespace kkk alter datafile 'kkk' autoextend on maxsize 20M;
해결 방법 3
1. Table별 사용량을 조회한다.
2. 데이타 삭제후 purge 작업을 수행한다.