本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
本主題中所述的內建預存程序會管理 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
', 'tablespace_prefetch_size
')"
參數
下列是必要參數:
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 支援 4 KiB、8 KiB 和 16 KiB 頁面的寫入原子。相反地,32 KiB 頁面會面臨撕裂寫入或部分資料寫入至桌面的風險。如果您使用 32 KiB 頁面,我們建議您啟用point-in-time復原和自動備份。否則,您會面臨無法從撕裂頁面復原的風險。如需詳細資訊,請參閱 備份簡介 和 將資料庫執行個體還原至 Amazon 的指定時間 RDS。
tablespace_initial_size
-
資料表空間的初始大小,以 KB (KB) 為單位。資料類型為
integer
。有效值:48
或更高。預設值為空。如果您未設定值,Db2 會為您設定適當的值。
注意
此參數不適用於暫存資料表空間,因為系統會管理暫存資料表空間。
tablespace_increase_size
-
資料表空間滿時要增加的百分比。資料類型為
integer
。有效值:1
–100
。預設值為空。如果您未設定值,Db2 會為您設定適當的值。
注意
此參數不適用於暫存資料表空間,因為系統會管理暫存資料表空間。
tablespace_type
-
資料表空間的類型。資料類型為
char
。有效值:U
(適用於使用者資料)、T
(適用於使用者臨時資料) 或S
(適用於系統臨時資料)。預設值為U
。 tablespace_prefetch_size
-
資料表空間的預先擷取頁面大小。資料類型為
char
。有效值:AUTOMATIC
(不區分大小寫) 或非零正整數小於或等於 32767。
使用須知
RDS for Db2 一律會為資料建立大型資料庫。
如需檢查建立資料表空間狀態的資訊,請參閱 rdsadmin.get_task_status。
範例
範例 1:建立資料表空間並指派緩衝集區
下列範例會建立名為 的資料表空間,SP8
並指派名為 BP8
的緩衝集區,以用於名為 的資料庫TESTDB
。資料表空間的初始資料表空間頁面大小為 4,096 位元組,初始資料表空間為 1,000 KB,資料表大小增加設定為 50%。
db2 "call rdsadmin.create_tablespace( 'TESTDB', 'SP8', 'BP8', 4096, 1000, 50)"
範例 2:建立暫存資料表空間並指派緩衝集區
下列範例會建立名為 的暫時資料表空間SP8
。它會為名為 BP8
的資料庫指派大小為 8 KiB 的緩衝集區TESTDB
。
db2 "call rdsadmin.create_tablespace( 'TESTDB', 'SP8', 'BP8', 8192, NULL, NULL, 'T')"
範例 3:建立資料表空間並指派預先擷取頁面大小
下列範例會為名為 SP8
的資料庫建立名為 的資料表空間TESTDB
。資料表空間具有初始資料表空間,可增加 的大小,50
預先擷取頁面大小則為 800
。
db2 "call rdsadmin.create_tablespace( 'TESTDB', 'SP8', NULL, NULL, NULL, 50, NULL, '800')"
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
', 'tablespace_prefetch_size
')"
參數
下列是必要參數:
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
。 tablespace_prefetch_size
-
資料表空間的預先擷取頁面大小。資料類型為
char
。有效值:AUTOMATIC
(不區分大小寫) 或非零正整數小於或等於 32767。注意
此參數僅適用於
buffer_pool_name
、max_size
、table_increase_size
和switch_online
。它不適用於reduce_max
、reduce_stop
、lower_high_water
、reduce_value
和lower_high_water_stop
。
使用須知
呼叫預存程序之前,請檢閱下列考量事項:
-
rdsadmin.alter_tablespace
預存程序無法在資料表空間上運作,並將tablespace_type
設為 以T
用於使用者臨時資料。 -
選用參數
reduce_max
、reduce_stop
、lower_high_water
、lower_high_water_stop
、 和reduce_value
switch_online
是互斥的。您無法在rdsadmin.alter_tablespace
命令中將它們與任何其他選用參數結合buffer_pool_name
,例如 。如需詳細資訊,請參閱Statement not valid。
如需檢查變更資料表空間狀態的資訊,請參閱 rdsadmin.get_task_status。
如需呼叫預存程序時傳回的錯誤訊息,請參閱 對預存程序的錯誤進行故障診斷。
範例
範例 1:降低高浮水印
下列範例會變更名為 的資料表空間,SP8
並指派名為 BP8
的緩衝集區,供名為 的資料庫使用,TESTDB
以降低高浮水印。
db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'SP8', 'BP8', NULL, NULL, 'Y')"
範例 2:減少高浮水印
下列範例會在資料庫中名為 TBSP_TEST
的資料表空間上執行 REDUCE MAX
命令TESTDB
。
db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'TBSP_TEST', NULL, NULL, NULL, 'Y')"
範例 3:中斷命令以減少高浮水印
下列範例會在資料庫中名為 TBSP_TEST
的資料表空間上執行 REDUCE STOP
命令TESTDB
。
db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'TBSP_TEST', NULL, NULL, NULL, NULL, 'Y')"
範例 4:變更現有的預先擷取頁面大小
下列範例會在名為 的資料表空間上執行 ALTER TABLESPACE SWITCH ONLINE
命令,TSBP_TEST
並將現有的預先擷取頁面大小變更為 64
。
db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'TBSP_TEST', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ‘Y’, ‘64’)"
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
資料庫的資料表空間。
範例
下列範例會在名為 SP8
SP9
的資料庫中重新命名名為 的資料表空間TESTDB
。
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。
範例
下列範例SP8
會從名為 的資料庫捨棄名為 的資料表空間TESTDB
。
db2 "call rdsadmin.drop_tablespace( 'TESTDB', 'SP8')"