ALTER TABLESPACE
ALTER TABLESPACE#
구문#
alter_tablespace ::=#
datafile_tempfile_clause ::=, modify_checkpoint_path_clause ::=, status_clause ::=, backup_clause ::=
datafile_tempfile_clause ::=#
modify_datafile_clause ::=, modify_autoextend_clause ::=
datafile_spec ::=#
autoextend_clause ::=#
maxsize_clause ::=#
modify_datafile_clause ::=#
modify_autoextend_clause ::=#
modify_checkpoint_path_clause ::=#
status_clause ::=#
backup_clause ::=#
전제 조건#
SYS 사용자 또는 ALTER TABLESPACE 시스템 권한을 가진 사용자가 ALTER TABLESPACE 문의 모든 기능을 수행할 수 있다.
설명#
ALTER TABLESPACE 문으로 디스크, 임시, 메모리 또는 휘발성 테이블스페이스의 정의를 변경한다. 또한 데이터 파일, 임시 파일, 체크포인트 경로, 자동 확장 관련 설정, 테이블스페이스 상태 등에 대해서도 변경할 수 있다.
tablespace_name#
변경될 테이블스페이스 이름이다.
datafile_tempfile_clause#
데이터 파일 또는 임시 파일을 추가, 삭제, 또는 변경하는 절이다.
datafile_spec#
datafile_spec에 대한 상세한 설명은 CREATE DISK TABLESPACE문을 참고한다.
maxsize_clause#
maxsize_clause에 대한 상세한 설명은 CREATE DISK TABLESPACE문을 참고한다.
autoextend_clause#
autoextend_clause에 대한 상세한 설명은 CREATE DISK TABLESPACE문을 참고한다.
ADD DATAFILE | TEMPFILE#
데이터 파일이나 임시 파일들을 테이블스페이스에 추가하는 절이다.
RENAME DATAFILE | TEMPFILE#
테이블스페이스에 속한 데이터 파일이나 임시 파일들을 새로운 이름으로 변경한다. 한번에 여러 개의 파일 이름을 변경할 수 있다. TO 뒤에 오는 새로운 이름을 가지는 파일은 미리 생성되어 있어야 한다.
modify_datafile_clause#
디스크 테이블스페이스의 데이터 파일이나 임시 파일의 autoextend 속성과 파일 크기를 변경하는 절이다.
modify_autoextend_clause#
메모리 또는 휘발성 테이블스페이스의 자동 확장 관련 속성(여부, 확장단위, 최대 크기)을 변경한다.
DROP DATAFILE | TEMPFILE#
데이터 파일이나 임시 파일들을 테이블스페이스에서 제거하는 절이다. 한번에 하나 이상의 파일을 테이블스페이스에서 제거할 수 있다. 이 절을 수행하더라도 운영체제상의 파일이 삭제되는 것은 아니므로 이는 사용자가 수동으로 관리를 해야 한다.
modify_checkpoint_path_clause#
체크포인트 이미지 경로를 추가, 변경, 또는 삭제하는 절이다. 체크포인트 이미지 경로 관련 연산들은 CONTROL 구동 단계에서만 가능하다.
ADD CHECKPOINT PATH 절#
메모리 테이블스페이스에 새로운 체크포인트 경로를 추가한다. DBA는 다른 체크포인트 경로 안에 존재하는 기존의 체크포인트 이미지들을 새로운 체크포인트 경로로 이동해도 된다. 메모리 테이블스페이스를 로드할 때, Altibase는 모든 체크포인트 경로에 대해서 체크포인트 이미지 파일을 검색하기 때문에, 체크포인트 이미지는 테이블스페이스의 체크포인트 경로 중 하나에 저장되어 있으면 된다.
새로운 체크포인트 경로를 추가한 후에 체크포인트가 발생하면, 체크포인트 이미지 파일이 새로운 체크포인트 경로까지 포함한 모든 체크포인트 경로에 골고루 분배된다.
명시한 체크포인트 경로가 존재하지 않거나, Altibase 서버를 구동한 사용자 계정이 체크포인트 경로에 적절한 권한 (permission) 을 갖고 있지 않으면 에러가 발생한다. 그러므로, DBA는 추가될 체크포인트 경로를 파일 시스템 상에 직접 생성하고, 그 경로에 대한 적절한 권한을 사용자 계정에 줘야 한다.
RENAME CHECKPOINT PATH 절#
메모리 테이블스페이스의 기존 체크포인트 경로를 TO 이하 절로 지정한 경로로 변경한다. DBA는 파일 시스템 상에서 실제 체크포인트 경로의 이름을 변경하는 작업을 직접 수행해야 한다. 해당 체크포인트 경로가 존재하지 않거나, Altibase 서버를 구동한 사용자 계정이 체크포인트 경로에 대한 적절한 권한(permission)을 갖고 있지 않으면 에러가 발생한다.
DROP CHECKPOINT PATH 절#
메모리 테이블스페이스의 기존 체크포인트 경로를 삭제한다. DBA는 삭제된 체크포인트 경로의 디렉토리 안에 존재하는 기존의 체크포인트 이미지들을 테이블스페이스에 남아있는 다른 체크포인트 경로로 이동해야 한다. 메모리 테이블스페이스를 로드할 때, Altibase는 모든 체크포인트 경로에 대해서 체크포인트 이미지 파일을 검색하기 때문에, 체크포인트 이미지는 테이블스페이스의 체크포인트 경로 중 하나에 저장되어 있으면 된다.
파일 시스템 상에서 실제 체크포인트 경로를 삭제하는 작업은 DBA가 직접 수행하여야 한다. 메모리 테이블스페이스에는 최소한 하나의 체크포인트 경로가 존재해야 한다. 만약 메모리 테이스블스페이스에 남아있는 하나뿐인 유일한 체크포인트 경로를 제거하려고 하는 경우 에러가 발생한다.
status_clause#
디스크 테이블스페이스와 메모리 테이블스페이스의 상태를 ONLINE, OFFLINE 또는 DISCARD로 전이한다.
OFFLINE#
디스크 테이블스페이스의 상태가 OFFLINE인 경우 테이블스페이스의 버퍼의 모든 데이터 페이지 내용이 데이터 파일에 기록되며, 버퍼 풀에서 무효화된다.
메모리 테이블스페이스의 경우에는 데이터의 페이지 내용이 체크포인트 이미지 파일에 기록되고, 페이지 메모리가 해제된다.
테이블스페이스의 모든 인덱스 메모리가 해제되며, 테이블에 생성된 인덱스도 사용할 수 없다. 또한 해당 테이블스페이스에 속한 테이블은 테이블스페이스가 ONLINE상태로 전이할 때까지 일시적으로 사용이 불가능한 상태가 된다.
ONLINE#
디스크 테이블스페이스가 온라인이 되면, 그 테이블스페이스의 모든 데이터 파일에 접근 가능하며, 그 테이블스페이스 안에 속한 테이블은 다시 사용할 수 있는 상태로 된다.
메모리 테이블스페이스가 온라인이 되면, 그 테이블스페이스의 모든 데이터 페이지를 위한 메모리가 다시 할당되며, 체크포인트 이미지 파일로부터 그 메모리로 데이터가 로드된다.
만약 참조되는 테이블스페이스가 OFFLINE이면, 테이블스페이스를 ONLINE으로 전이시키는 연산은 성공하지만 그 테이블스페이스에 저장되어 있는 테이블에 접근하는 것은 불가능할 것이다.
참조되는 테이블스페이스란 디스크 테이블스페이스의 경우 테이블이 소속된 테이블스페이스와 그 테이블과 연관된 인덱스, BLOB/CLOB 칼럼, 테이블 파티션 등이 다른 테이블스페이스에 존재할 수 있는데, 이 테이블스페이스를 일컫는다.
DISCARD#
CONTROL 구동 단계에서 디스크 테이블스페이스 또는 메모리 테이블스페이스의 상태를 디스카드(DISCARD)로 전이한다.
디스카드 된 테이블스페이스에 속한 테이블, 인덱스, BLOB/CLOB 칼럼은 사용이 불가능해진다. 또한 데이터베이스 구동 과정인 RESTART RECOVERY와 REFINE DB 단계에서 DISCARD된 테이블스페이스는 모두 무시된다.
테이블스페이스가 한번 DISCARD 되면 그 테이블스페이스는 DROP TABLESPACE로 삭제만 가능하며 ONLINE으로 돌아갈 수 없다.
backup clause#
디스크 또는 메모리 테이블스페이스의 데이터 파일을 복사하는 온라인 백업(핫 백업)의 시작과 완료를 명시하는 구문이다.
BEGIN BACKUP#
테이블스페이스를 구성하는 모든 데이터 파일들에 온라인 백업 모드를 설정하는 절이다. 이 구문과 END BACKUP사이에 놓인 백업 중인 테이블스페이스에도 트랜잭션의 접근이 가능하다.
사용자는 데이터 파일을 "온라인 백업"(직접 복사)하기 전에 BEGIN BACKUP을 먼저 실행해야 한다. 또한 사용자는 한 개 이상의 테이블스페이스를 동시에 온라인 백업 모드로 설정하는 것도 가능하다. 그러나 디스크 임시 테이블스페이스는 온라인 백업이 불가능하다.
END BACKUP#
디스크 또는 메모리 테이블스페이스의 온라인 백업이 완료되었음을 명시한다. 사용자는 온라인 백업을 완료한 직후에 바로 END BACKUP 구문을 수행해야 한다.
주의 사항#
- ALTER TABLESPACE 구문을 사용한 데이터 파일 추가 작업과 속성 변경 작업은 온라인 모드에서 가능하고, 데이터 파일의 이름 변경은 다단계 구동 단계 중 CONTROL 단계에서만 가능하다.
- status_clause는 임시 테이블스페이스 또는 휘발성 테이블스페이스에는 사용할 수 없다.
예제#
<질의 1> 64 MB의 데이터 파일 tbs2.user를 user_disk_tbs 테이블스페이스에 추가하고 더 큰 공간이 필요할 때 파일이 512 kB 크기씩 자동으로 증가하게 하라.
iSQL> ALTER TABLESPACE user_disk_tbs
ADD DATAFILE '/tmp/tbs2.user' SIZE 64M
AUTOEXTEND ON NEXT 512K;
Alter success.
<질의 2> 체크포인트시의 디스크 입출력 분산을 위해 '/home/path' 체크포인트 경로를 user_memory_tbs 테이블스페이스에 추가하라. 또한, 확장 단위를 256 MB, 최대 크기를 1GB로 변경하라. (경로 추가 작업은 CONTROL 단계에서만 가능하고, 속성 변경은 SERVICE 단계에서 할 수 있다.)
iSQL(sysdba) startup control;
iSQL(sysdba) ALTER TABLESPACE user_memory_tbs ADD CHECKPOINT PATH '/home/path';
Alter success.
iSQL> ALTER TABLESPACE user_memory_tbs ALTER AUTOEXTEND ON NEXT 256M MAXSIZE 1G;
Alter success.
<질의 3> user_volatile_tbs 테이블스페이스의 확장 단위를 256 MB, 최대 크기를 1 GB로 변경하라.
iSQL> ALTER TABLESPACE user_volatile_tbs ALTER AUTOEXTEND ON NEXT 256M MAXSIZE
1G;
Alter success.