RDS for Db2의 테이블스페이스에 대해 저장된 프로시저
다음 저장 프로시저는 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 페이지를 사용하는 경우 시점 복구와 자동 백업을 활성화하는 것이 좋습니다. 그렇지 않으면 찢긴 페이지를 복구하지 못할 위험이 있습니다. 자세한 내용은 백업 소개 및 Amazon RDS에서 DB 인스턴스를 지정된 시간으로 복원 단원을 참조하세요.
tablespace_initial_size
-
테이블스페이스의 초기 크기로, 킬로바이트 단위(KB)입니다. 데이터 형식은
integer
입니다. 유효한 값:48
이상. 기본값은 null입니다.값을 설정하지 않으면 Db2가 적절한 값을 설정합니다.
참고
임시 테이블스페이스는 시스템에서 관리되므로, 이 파라미터는 임시 테이블스페이스에 적용할 수 없습니다.
tablespace_increase_size
-
테이블스페이스가 가득 찼을 때 테이블스페이스를 늘릴 비율입니다. 데이터 형식은
integer
입니다. 유효한 값은1
~100
입니다. 기본값은 null입니다.값을 설정하지 않으면 Db2가 적절한 값을 설정합니다.
참고
임시 테이블스페이스는 시스템에서 관리되므로, 이 파라미터는 임시 테이블스페이스에 적용할 수 없습니다.
tablespace_type
-
테이블스페이스의 유형입니다. 데이터 형식은
char
입니다. 유효한 값:U
(사용자 데이터용),T
(사용자 임시 데이터용) 또는S
(시스템 임시 데이터용) 기본값은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')"