테이블스페이스 관리 - Amazon Relational Database Service

테이블스페이스 관리

다음 저장 프로시저는 Amazon RDS for Db2의 데이터베이스의 테이블스페이스를 관리합니다. 이 프로시저를 실행하려면 마스터 사용자가 먼저 rdsadmin 데이터베이스에 연결되어야 합니다.

rdsadmin.create_tablespace

테이블스페이스를 생성합니다.

구문

db2 "call rdsadmin.create_tablespace( 'database_name', 'tablespace_name', 'buffer_pool_name', tablespace_page_size, tablespace_initial_size, tablespace_increase_size, 'tablespace_type')"

파라미터

다음 파라미터는 필수 파라미터입니다.

database_name

테이블스페이스를 만들 데이터베이스의 이름입니다. 데이터 형식은 varchar입니다.

tablespace_name

생성할 테이블 이름입니다. 데이터 형식은 varchar입니다.

테이블스페이스 이름에는 다음과 같은 제한 사항이 있습니다.

  • 이 데이터베이스에 있는 기존 테이블스페이스의 이름과 같으면 안 됩니다.

  • _$#@a-zA-Z0-9만 포함할 수 있습니다.

  • _ 또는 $ 기호로 시작할 수 없습니다.

  • SYS로 시작할 수 없습니다.

다음 파라미터는 선택적입니다.

buffer_pool_name

테이블스페이스를 할당할 버퍼 풀의 이름입니다. 데이터 형식은 varchar입니다. 기본값은 빈 문자열입니다.

중요

테이블스페이스와 연결하려면 페이지 크기가 같은 버퍼 풀이 이미 있어야 합니다.

tablespace_page_size

테이블스페이스의 페이지 크기(바이트)입니다. 데이터 형식은 integer입니다. 유효한 값: 4096, 8192, 16384, 32768. 기본값은 rdsadmin.create_database를 직접 호출하여 데이터베이스를 만들 때 사용된 페이지 크기입니다.

중요

Amazon RDS는 4KiB, 8KiB 및 16KiB 페이지에 대한 쓰기 원자성을 지원합니다. 반면 32KiB 페이지는 쓰기가 찢기거나 데스크에 데이터가 일부만 기록될 위험이 있습니다. 32KiB 페이지를 사용하는 경우 시점 복구와 자동 백업을 활성화하는 것이 좋습니다. 그렇지 않으면 찢긴 페이지를 복구하지 못할 위험이 있습니다. 자세한 내용은 백업 소개DB 인스턴스를 지정된 시간으로 복원 단원을 참조하세요.

tablespace_initial_size

테이블스페이스의 초기 크기로, 킬로바이트 단위(KB)입니다. 데이터 형식은 integer입니다. 유효한 값: 48 이상. 기본값은 null입니다.

값을 설정하지 않으면 Db2가 적절한 값을 설정합니다.

참고

임시 테이블스페이스는 시스템에서 관리되므로, 이 파라미터는 임시 테이블스페이스에 적용할 수 없습니다.

tablespace_increase_size

테이블스페이스가 가득 찼을 때 테이블스페이스를 늘릴 비율입니다. 데이터 형식은 integer입니다. 유효한 값은 1~100입니다. 기본값은 null입니다.

값을 설정하지 않으면 Db2가 적절한 값을 설정합니다.

참고

임시 테이블스페이스는 시스템에서 관리되므로, 이 파라미터는 임시 테이블스페이스에 적용할 수 없습니다.

tablespace_type

테이블스페이스의 유형입니다. 데이터 형식은 char입니다. 유효한 값: U(사용자 데이터) 또는 T(임시). 기본값은 U입니다.

사용 노트

RDS for Db2는 항상 데이터를 위한 대규모 데이터베이스를 만듭니다.

테이블스페이스 생성 상태 점검에 대한 자세한 내용은 rdsadmin.get_task_status 섹션을 참조하세요.

다음 예제에서는 SP8이라는 테이블스페이스를 생성하고 TESTDB라는 데이터베이스에 BP8이라는 버퍼 풀을 할당합니다. 테이블스페이스의 초기 테이블스페이스 페이지 크기는 4,096바이트이고 초기 테이블스페이스가 1,000KB이며 테이블 크기 증가가 50%로 설정되어 있습니다.

db2 "call rdsadmin.create_tablespace( 'TESTDB', 'SP8', 'BP8', 4096, 1000, 50)"

다음은 SP8이라는 이름의 임시 테이블스페이스를 생성하는 예시입니다. TESTDB라는 데이터베이스에 크기가 8KiB인 BP8 버퍼 풀을 할당합니다.

db2 "call rdsadmin.create_tablespace( 'TESTDB', 'SP8', 'BP8', 8192, NULL, NULL, 'T')"

rdsadmin.alter_tablespace

테이블스페이스를 변경합니다.

구문

db2 "call rdsadmin.alter_tablespace( 'database_name', 'tablespace_name', 'buffer_pool_name', tablespace_increase_size, 'max_size', 'reduce_max', 'reduce_stop', 'reduce_value', 'lower_high_water', 'lower_high_water_stop', 'switch_online')"

파라미터

다음 파라미터는 필수 파라미터입니다.

database_name

테이블스페이스를 사용하는 데이터베이스의 이름입니다. 데이터 형식은 varchar입니다.

tablespace_name

수정할 테이블스페이스의 이름입니다. 데이터 형식은 varchar입니다.

다음 파라미터는 선택적입니다.

buffer_pool_name

테이블스페이스를 할당할 버퍼 풀의 이름입니다. 데이터 형식은 varchar입니다. 기본값은 빈 문자열입니다.

중요

테이블스페이스와 연결하려면 페이지 크기가 같은 버퍼 풀이 이미 있어야 합니다.

tablespace_increase_size

테이블스페이스가 가득 찼을 때 테이블스페이스를 늘릴 비율입니다. 데이터 형식은 integer입니다. 유효한 값은 1~100입니다. 기본값은 0입니다.

max_size

테이블스페이스의 최대 크기입니다. 데이터 형식은 varchar입니다. 유효한 값은 정수 K | M | G 또는 NONE입니다. 기본값은 NONE입니다.

reduce_max

하이 워터 마크를 최대 한도까지 줄일지 여부를 지정합니다. 데이터 형식은 char입니다. 기본값은 N입니다.

reduce_stop

이전 reduce_max 또는 reduce_value 명령을 중단할지 여부를 지정합니다. 데이터 형식은 char입니다. 기본값은 N입니다.

reduce_value

테이블스페이스 하이 워터 마크를 줄이는 데 사용할 백분율 값입니다. 데이터 형식은 varchar입니다. 유효한 값은 정수 K | M | G 또는 1~100입니다. 기본값은 N입니다.

lower_high_water

ALTER TABLESPACE LOWER HIGH WATER MARK 명령을 실행할지 여부를 지정합니다. 데이터 형식은 char입니다. 기본값은 N입니다.

lower_high_water_stop

ALTER TABLESPACE LOWER HIGH WATER MARK STOP 명령을 실행할지 여부를 지정합니다. 데이터 형식은 char입니다. 기본값은 N입니다.

switch_online

ALTER TABLESPACE SWITCH ONLINE 명령을 실행할지 여부를 지정합니다. 데이터 형식은 char입니다. 기본값은 N입니다.

사용 노트

선택적 파라미터인 reduce_max, reduce_stop, reduce_value, lower_high_water, lower_high_water_stop, switch_online 파라미터는 함께 사용할 수 없습니다. rdsadmin.alter_tablespace 명령에서 다른 선택적 파라미터(예: buffer_pool_name)와 조합할 수 없습니다. 이러한 파라미터를 rdsadmin.alter_tablespace 명령의 다른 선택적 파라미터와 조합하면 rdsadmin.get_task_status 실행 시 Db2가 다음과 같은 오류를 반환합니다.

DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL1763N Invalid ALTER TABLESPACE statement for table space "TBSP_TEST" due to reason "12"

테이블스페이스 변경 상태 점검에 대한 자세한 내용은 rdsadmin.get_task_status 섹션을 참조하세요.

다음 예제에서는 SP8이라는 테이블스페이스를 변경하고 TESTDB라는 데이터베이스에 BP8이라는 버퍼 풀을 할당하여 하이 워터 마크를 낮춥니다.

db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'SP8', 'BP8', NULL, NULL, 'Y')"

다음 예시는 TESTDB 데이터베이스의 TBSP_TEST라는 테이블스페이스에서 REDUCE MAX 명령을 실행합니다.

db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'TBSP_TEST', NULL, NULL, NULL, 'Y')"

다음 예시는 TESTDB 데이터베이스의 TBSP_TEST라는 테이블스페이스에서 REDUCE STOP 명령을 실행합니다.

db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'TBSP_TEST', NULL, NULL, NULL, NULL, 'Y')"

rdsadmin.rename_tablespace

테이블스페이스 이름을 변경합니다.

구문

db2 "call rdsadmin.rename_tablespace( ?, 'database_name', 'source_tablespace_name', 'target_tablespace_name')"

파라미터

다음 파라미터는 필수 파라미터입니다.

?

오류 메시지를 출력하는 파라미터 표시자입니다. 이 파라미터는 ?만 허용합니다.

database_name

테이블스페이스가 속한 데이터베이스의 이름입니다. 데이터 형식은 varchar입니다.

source_tablespace_name

이름을 변경할 테이블스페이스의 이름입니다. 데이터 형식은 varchar입니다.

target_tablespace_name

테이블스페이스의 새로운 이름입니다. 데이터 형식은 varchar입니다.

새로운 이름에는 다음과 같은 제한 사항이 있습니다.

  • 기존 테이블스페이스의 이름과 같으면 안 됩니다.

  • _$#@a-zA-Z0-9만 포함할 수 있습니다.

  • _ 또는 $ 기호로 시작할 수 없습니다.

  • SYS로 시작할 수 없습니다.

사용 노트

테이블스페이스 이름 변경 상태 확인에 대한 자세한 내용은 rdsadmin.get_task_status 섹션을 참조하세요.

rdsadmin 데이터베이스에 속하는 테이블스페이스의 이름은 변경할 수 없습니다.

다음 예시에서는 TESTDB라는 데이터베이스에서 SP8이라는 테이블스페이스를 SP9로 변경합니다.

db2 "call rdsadmin.rename_tablespace( ?, 'TESTDB', 'SP8'. 'SP9')"

rdsadmin.drop_tablespace

테이블스페이스를 삭제합니다.

구문

db2 "call rdsadmin.drop_tablespace( 'database_name', 'tablespace_name')"

파라미터

다음 파라미터는 필수 파라미터입니다.

database_name

테이블스페이스가 속한 데이터베이스의 이름입니다. 데이터 형식은 varchar입니다.

tablespace_name

삭제할 테이블스페이스의 이름입니다. 데이터 형식은 varchar입니다.

사용 노트

테이블스페이스 삭제 상태 점검에 대한 자세한 내용은 rdsadmin.get_task_status 섹션을 참조하세요.

다음 예시에서는 TESTDB라는 데이터베이스에서 SP8이라는 테이블스페이스를 삭제합니다.

db2 "call rdsadmin.drop_tablespace( 'TESTDB', 'SP8')"