本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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', '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 頁面,則建議您啟用時間點復原和自動備份。否則,您會面臨無法從未完成頁面復原的風險。如需詳細資訊,請參閱備份簡介及將 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 的資料表空間,並為名為 TESTDB 的資料庫指派名為 BP8 的緩衝集區。資料表空間的初始資料表空間頁面大小為 4,096 個位元組,初始資料表空間為 1,000 KB,資料表大小增加設定為 50%。
db2 "call rdsadmin.create_tablespace( 'TESTDB', 'SP8', 'BP8', 4096, 1000, 50)"
範例 2:建立暫存資料表空間並指派緩衝集區
下列範例會建立名為 SP8 的暫存資料表空間。它會為名為 TESTDB 的資料庫指派名為 BP8 的緩衝集區 (大小為 8 KiB)。
db2 "call rdsadmin.create_tablespace( 'TESTDB', 'SP8', 'BP8', 8192, NULL, NULL, 'T')"
範例 3:建立資料表空間並指派預先擷取頁面大小
下列範例會為名為 TESTDB 的資料庫建立名為 SP8 的資料表空間。資料表空間的初始資料表空間會增加 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、table_increase_size、max_size和switch_online。它不適用於reduce_max、reduce_stop、reduce_value、lower_high_water和lower_high_water_stop。
使用須知
呼叫預存程序之前,請檢閱下列考量事項:
-
rdsadmin.alter_tablespace預存程序無法在資料表空間上運作,並將使用者暫存資料的tablespace_type設定為T。 -
選用參數
reduce_max、reduce_stop、reduce_value、lower_high_water、lower_high_water_stop和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:減少高浮水印
下列範例會在資料庫 TESTDB 中名為 TBSP_TEST 的資料表空間上執行 REDUCE MAX 命令。
db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'TBSP_TEST', NULL, NULL, NULL, 'Y')"
範例 3:中斷命令以減少高浮水印
下列範例會在資料庫 TESTDB 中名為 TBSP_TEST 的資料表空間上執行 REDUCE STOP 命令。
db2 "call rdsadmin.alter_tablespace( 'TESTDB', 'TBSP_TEST', NULL, NULL, NULL, NULL, 'Y')"
範例 4:變更現有的預先擷取頁面大小
下列範例會在名為 TSBP_TEST 的資料表空間上執行 ALTER TABLESPACE SWITCH ONLINE 命令,並將現有的預先擷取頁面大小變更為 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 資料庫的資料表空間。
範例
下列範例會在名為 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')"