Oracle Alertlog에 보면 가끔 ORA-1653 에러가 발생하는 경우가 있습니다.
Wed Oct 29 21:22:05 2017
ORA-1653: unable to extend table SCOTT.EMP by 4096 in tablespace USERS
SCOTT 유저의 EMP 테이블이 공간이 부족해서 확장하려하는데, USERS 테이블스페이스(Tablespace)에 공간이 부족해서 확장할 수 없다는 의미입니다.
이렇게 Alertlog에 ORA-1653 에러가 발생하는 경우 어떤 Tablespace 에 어떤 Table 을 확장하려다가 에러가 난 건지 친절하게 알려줍니다. DBA는 해당 테이블스페이를 늘려주기만 하면 되죠.
비교적 간단한 에러이긴 하지만, 제때 늘려주지 않으면 난리가 나는 상황을 경험할 수도 있죠~
조회 SQL은 이상없이 처리되겠지만, Insert, Update 가 안되는 상황이라 .. 빠른 조치가 필요합니다.
테이블스페이스를 확장하는 방법은 아래와같이 기존 데이터파일을 resize 하던가, 신규 데이터파일을 Tablespace에 추가하는 방법이 있습니다.
-- 테이블스페이스에 기존 데이터파일 확장(resize)
SQL> alter database datafile '/u01/app/oracle/oradata/ORCL/USERS_01.dbf' resize 2000M;
-- 테이블스페이스에 신규 데이터파일 추가(add)
SQL> alter tablespace IMPDATA
add datafile '/u01/app/oracle/oradata/ORCL/USERS_02.dbf' size 1000M;
위의 샘플은 일반 OS 파일시스템의 경우이고, ASM 을 사용하는 경우는 아래와 같이 조금 다릅니다.
-- 테이블스페이스에 기존 데이터파일 확장(resize)
SQL> alter database datafile '+DATA_DG/ORCL/USERS_01' resize 2000M;
-- 테이블스페이스에 신규 데이터파일 추가(add)
SQL> alter tablespace IMPDATA
add datafile '+DATA_DG/ORCL/USERS_02.dbf' size 1000M;
ASM 은 Data Grid 라는 영역에 파일이 위치하고, 데이터그리드는 + 기호를 붙여줘야 하죠.
이런 resize 나 add 같은 작업이 귀찮은 경우... 특히, 개발시스템과 같은 경우는 자동으로 증가하도록 설정할 수 있습니다.
아래와 같이 autoextend 기능은 on 해주면 됩니다.
SQL> alter database datafile '/u01/app/oracle/oradata/ORCL/USERS_01.dbf' autoextend on;
물론 애초에 테이블스페이스 만들때부터 autoextend 기능을 on 시켜둘 수도 있겠죠.
SQL> create tablespace USERS
datafile '/u01/app/oracle/oradata/ORCL/USERS_01.dbf' size 2000M autoextend on;
참고) 오라클 Alertlog 파일 분석 프로그램 다운로드
'IT관련' 카테고리의 다른 글
오라클 에러 정보 (ORA-04031) - Shared Pool 공간이 부족한 (0) | 2019.06.21 |
---|---|
워드(MS-Word)에서 따옴표 입력시 자동변환 방지 세팅 방법 (1) | 2019.06.19 |
오라클 Hash Partition (해쉬함수에 의한 파티션 테이블) (0) | 2019.06.18 |
오라클 List Partition (특정한 값으로 구분되는 파티션 테이블) (1) | 2019.06.18 |
오라클 Range Partition (범위로 구분되는 파티션 테이블) (3) | 2019.06.18 |