개요
디스크 테이블스페이스 데이터 파일 크기 변경 작업 시 아래와 같은 에러 메시지를 만날 수 있습니다.
버전
ALTIBASE HDB 4
원인
위 에러 메시지는 AUTOEXTEND OFF 속성을 가진 데이터 파일의 크기를 maxsize 보다 크게 변경할 때 발생합니다.
데이터 파일의 autoextend 속성 및 설정된 크기는 다음 구문으로 확인할 수 있습니다.(autoextend 가 1 이면 on, 0 이면 off)
autoextend on 인 데이터 파일은 maxsize 까지 크기가 자동 증가하기 때문에 초기 설정 크기(INITSIZE) 와 최대 크기(MAXSIZE)에 차이를 보입니다.
하지만, autoextend off 인 데이터 파일의 최대 크기(MAXSIZE) 은 초기 설정 크기(INITSIZE)와 동일하게 설정됩니다.
이 때문에 최대 크기(MAXSIZE) 보다 크게 변경하려는 경우에 위와 같은 에러가 발생할 수 있습니다.
조치
해당 데이터 파일의 AUTOEXTEND 속성을 ON 으로 변경 후 데이터 파일 크기 변경 작업을 진행해야 합니다.
아래 순서대로 진행하면 됩니다.
참고
사실상 autoextend off 속성을 가진 데이터 파일은 초기 설정 크기(initsize) 만 의미가 있습니다.
CREATE TABLESPACE 구문 또는 ALTER TABLESPACE 구문에서 autoextend off 절을 포함할 경우, size 절 외에 nextsize 및 maxsize 절은 같이 사용하지 못합니다.
같이 사용하면 아래와 같이 SQL 구문 오류가 납니다.
ALTIBASE HDB 4.3.9 에서는 이에 대한 처리가 부족했습니다.
ALTIBASE HDB 5 부터는 이러한 제약이 반영되어 autoextend off 속성을 가진 데이터 파일의 maxsize 를 OS file limit 값으로 설정하게 됩니다.
이 변경으로 4.3.9 와는 다르게 v$datafile 을 조회했을 때 maxsize 를 0 으로 출력하며,
OS file limit 은 ulimit –a 으로 확인할 수 있습니다.