RDS for Db2 資料表空間的預存程序 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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。有效值:409681921638432768。預設值是當您呼叫 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。有效值:1100。預設值為空。

如果您未設定值,則 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。有效值:1100。預設值為 0

max_size

資料表空間的大小上限。資料類型為 varchar。有效值:整數 K | M | GNONE。預設值為 NONE

reduce_max

指定是否將高浮水印減少至其上限。資料類型為 char。預設值為 N

reduce_stop

指定是否要中斷先前的 reduce_maxreduce_value 命令。資料類型為 char。預設值為 N

reduce_value

要減少資料表空間高水位的數量或百分比。資料類型為 varchar。有效值:整數 K| M | G1100。預設值為 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_nametable_increase_sizemax_sizeswitch_online。它不適用於 reduce_maxreduce_stopreduce_valuelower_high_waterlower_high_water_stop

使用須知

呼叫預存程序之前,請檢閱下列考量事項:

  • rdsadmin.alter_tablespace 預存程序無法在資料表空間上運作,並將使用者暫存資料的 tablespace_type 設定為 T

  • 選用參數 reduce_maxreduce_stopreduce_valuelower_high_waterlower_high_water_stopswitch_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')"