本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
管理資料庫
下列預存程序會管理適用於 Db2 的 Amazon RDS 資料庫。若要執行這些程序,master 使用者必須先連線到資rdsadmin
料庫。
主題
- rdsadmin.create_database
- rdsadmin.drop_database
- rdsadmin.update_db_param
- rdsadmin.set_configuration
- rdsadmin.show_configuration
- rdsadmin.restore_database
- rdsadmin.rollforward_database
- rdsadmin.complete_rollforward
- rdsadmin.db2pd_command
- rdsadmin.force_application
- rdsadmin.set_archive_log_retention
- rdsadmin.show_archive_log_retention
rdsadmin.create_database
建立資料庫。
語法
db2 "call rdsadmin.create_database('
database_name
')"
參數
注意
此預存程序不會驗證所需參數的組合。當您調用時rdsadmin.get_task_status,用戶定義函數可能會返回錯誤,因為 database_codeset
database_territory
,的組合database_collation
是無效的。如需詳細資訊,請參閱IBM Db2文件中的選擇資料庫的字碼頁、區域和定序
以下是必要參數:
database_name
-
要建立的資料庫名稱。資料類型為
varchar
。
下列是選用參數:
資料庫頁面大小
-
資料庫的預設頁面大小。有效值:
4096
、8192
、16384
、32768
。資料類型為integer
。預設值為8192
。重要
Amazon RDS 支援 4 KiB、8 KiB 和 16 KiB 頁面的寫入原子性。相比之下,32 KiB 頁面會造成寫入撕裂或部分資料寫入桌面的風險。如果您使用 32 KiB 頁面,建議您啟用 point-in-time復原和自動備份。否則,您會有無法從撕裂頁面復原的風險。如需詳細資訊,請參閱 備份簡介 及 將資料庫執行個體還原至指定的時間。
數據庫代碼集
-
為資料庫設定的程式碼。資料類型為
varchar
。預設值為UTF-8
。 資料庫領土
-
資料庫的兩個字母的國家代碼。資料類型為
varchar
。預設值為US
。 資料庫定序
-
決定儲存在資料庫中字元字串的排序與比較方式的定序順序。資料類型為
varchar
。有效值:
-
COMPATIBILITY
— 一個 IBM Db2 第 2 版的排序規則順序。 -
EBCDIC_819_037
— ISO 拉丁文字碼頁,整理規則;國際化驗證碼 037 (美國英文版)。 -
EBCDIC_819_500
— ISO 拉丁文字碼頁,整理規則;國際化驗證碼 500 (國際版)。 -
EBCDIC_850_037
— ASCII 拉丁文字碼頁,定序;CCSID 037 (美國英文版)。 -
EBCDIC_850_500
— ASCII 拉丁文字碼頁,定序;國際化驗證碼 500 -
EBCDIC_932_5026
— ASCII 日文字碼頁,整理;CCSID 037 (美國英文版)。 -
EBCDIC_932_5035
— ASCII 日文字碼頁,整理;國際字碼編碼 500 -
EBCDIC_1252_037
— 視窗拉丁字碼頁, 整理; CCSID 037 (美國英語). -
EBCDIC_1252_500
— 視窗拉丁文字碼頁, 定序; 國際化驗證碼 500 (國際版). -
IDENTITY
— 預設定序。字符串進行比較字節的字節。 -
IDENTITY_16BIT
— UTF-16 的相容性編碼配置:8 位元 (CESU-8) 定序順序。如需詳細資訊,請參閱統一協會網站上的 [Unicode 技術報告 #26]。 -
NLSCHAR
— 僅適用於泰文字碼頁 (CP874)。 -
SYSTEM
— 如果您使用SYSTEM
,資料庫會自動針對database_codeset
和database_territory
使用定序順序。
預設值為
IDENTITY
。此外,RDS for Db2 支援下列定序群組:
language-aware-collation
和。locale-sensitive-collation
如需詳細資訊,請參閱IBM Db2文件中的為 Unicode 資料庫選擇定序。 -
資料庫自動設定
-
命
AUTOCONFIGURE
令語法,例如,'AUTOCONFIGURE APPLY DB'
. 資料類型為varchar
。預設值為空字串或 null。如需詳細資訊,請參閱IBM Db2文件中的AUTOCONFIGURE指令
。
使用須知
rdsadmin.create_database
如果您在建立 RDS for Db2 資料庫執行個體時未使用 Amazon RDS 主控台或指定資料庫名稱,則可以透過呼叫來建立資料庫。 AWS CLI如需詳細資訊,請參閱 建立資料庫執行個體。
特殊考量:
-
傳送至 Db2 執行個體的
CREATE DATABASE
指令會使用RESTRICTIVE
此選項。 -
適用於 Db2 的 RDS 僅
AUTOMATIC STORAGE
使用。 -
適用於 Db2 的 RDS 會使用
NUMSEGS
和DFT_EXTENT_SZ
的預設值。 -
RDS for Db2 使用儲存區加密,不支援資料庫加密。
如需有關這些考量的詳細資訊,請參閱IBM Db2文件中的CREATE DATABASE指令
在調用之前rdsadmin.create_database
,您必須連接到rdsadmin
數據庫。在下列範例中,將使用您的 RDS for Db2 資料庫執行個體資訊取代主體使用者名稱
和主密碼
:
db2 connect to rdsadmin user
master_username
usingmaster_password
如需檢查建立資料庫狀態的資訊,請參閱rdsadmin.get_task_status。
範例
下列範例會建立一個資料庫,並
TESTJP
使用正確的日本資料庫代碼集、資料庫區域和資料
組合:庫
定序參數
db2 "call rdsadmin.create_database('TESTJP', 4096, 'IBM-437', 'JP', 'SYSTEM')"
rdsadmin.drop_database
捨棄資料庫。
語法
db2 "call rdsadmin.drop_database('
database_name
')"
參數
以下是必要參數:
database_name
-
要刪除的資料庫名稱。資料類型為
varchar
。
使用須知
只有在符合下列條件時,rdsadmin.drop_database
才能呼叫來刪除資料庫:
-
當您使用 Amazon RDS 主控台或建立 RDS for Db2 資料庫執行個體時,並未指定資料庫的 AWS CLI名稱。如需詳細資訊,請參閱 建立資料庫執行個體。
-
您可以呼叫rdsadmin.create_database預存程序來建立資料庫。
-
您可以呼叫rdsadmin.restore_database預存程序,從離線或備份的映像還原資料庫。
在調用之前rdsadmin.drop_database
,您必須連接到rdsadmin
數據庫。在下列範例中,將使用您的 RDS for Db2 資料庫執行個體資訊取代主體使用者名稱
和主密碼
:
db2 connect to rdsadmin user
master_username
usingmaster_password
如需有關檢查卸除資料庫狀態的資訊,請參閱rdsadmin.get_task_status。
範例
下面的例子刪除一個名為的數據庫TESTDB
:
db2 "call rdsadmin.drop_database('TESTDB')"
回應範例
如果您傳遞不正確的資料庫名稱,則預存程序會傳回下列回應範例:
SQL0438N Application raised error or warning with diagnostic text: "Cannot drop database. Database with provided name does not exist". SQLSTATE=99993
如果您使用 Amazon RDS 主控台或建立資料庫 AWS CLI,則預存程序會傳回下列回應範例:
Return Status = 0
接收後Return Status = 0
,調用存rdsadmin.get_task_status儲過程。類似下列範例的回應會說明狀態:
1 ERROR DROP_DATABASE RDSDB 2023-10-10-16.33.03.744122 2023-10-10-16.33.30.143797 - 2023-10-10-16.33.30.098857 Task execution has started. 2023-10-10-16.33.30.143797 Caught exception during executing task id 1, Aborting task. Reason Dropping database created via rds CreateDBInstance api is not allowed. Only database created using rdsadmin.create_database can be dropped
rdsadmin.update_db_param
更新資料庫參數。
語法
db2 "call rdsadmin.update_db_param( '
database_name
', 'parameter_to_modify
', 'changed_value
)"
參數
下列是必要參數:
database_name
-
要執行工作的資料庫名稱。資料類型為
varchar
。 參數 _ 到 _ 修改
-
要修改的參數名稱。資料類型為
varchar
。如需詳細資訊,請參閱 適用於 Db2 的 Amazon RDS 參數。 變更值 (_)
-
要將參數值變更為的值。資料類型為
varchar
。
使用須知
如需有關檢查更新資料庫參數狀態的資訊,請參閱rdsadmin.get_task_status。
範例
下列範例會將名為之資料庫100
的archretrydelay
參數更新為TESTDB
:
db2 "call rdsadmin.update_db_param( 'TESTDB', 'archretrydelay', '100')"
下列範例會延遲在呼叫的資料庫上建立物件的驗證,以TESTDB
避免相依性檢查:
db2 "call rdsadmin.update_db_param( 'TESTDB', 'auto_reval', 'deferred_force')"
rdsadmin.set_configuration
設定資料庫的特定設定。
語法
db2 "call rdsadmin.set_configuration( '
name
', 'value
)"
參數
下列是必要參數:
name
-
組態設定的名稱。資料類型為
varchar
。 值
-
組態設定的值。資料類型為
varchar
。
使用須知
下表顯示您可以使用控制的組態設定rdsadmin.set_configuration
。
名稱 | 描述 |
---|---|
|
還原作業期間要建立的緩衝區數目。此值必須小於資料庫執行個體類別的總記憶體大小。如果未設定此設定,Db2 會決定還原作業期間要使用的值。如需詳細資訊,請參閱 IBM Db2 文件 |
|
還原作業期間要建立的緩衝區操控點數目。此值必須小於資料庫執行個體 vCPUs 數目的兩倍。如果未設定此設定,Db2 會決定還原作業期間要使用的值。如需詳細資訊,請參閱 IBM Db2 文件 |
範例
下列範例會將組RESTORE_DATABASE_PARALLELISM
態設定為8
。
db2 "call rdsadmin.set_configuration( 'RESTORE_DATABASE_PARALLELISM', '8')"
下列範例會將組RESTORE_DATABASE_NUM_BUFFERS
態設定為150
。
db2 "call rdsadmin.set_configuration( 'RESTORE_DATABASE_NUM_BUFFERS', '150')"
rdsadmin.show_configuration
傳回您可以使用預存程序設定的目前設定rdsadmin.set_configuration
。
語法
db2 "call rdsadmin.show_configuration( '
name
')"
參數
以下參數為選用:
name
-
要傳回相關資訊的組態設定名稱。資料類型為
varchar
。下列組態名稱有效:
還原作業期間要建立的緩衝區數目。
還原作業 — 還原作業期間要建立的緩衝區操控點數目。
使用須知
如果您未指定組態設定的名稱,會rdsadmin.show_configuration
傳回您可以使用預存程序設定之所有組態設定的資訊rdsadmin.set_configuration
。
範例
下列範例會傳回目前RESTORE_DATABASE_PARALLELISM
組態的相關資訊。
db2 "call rdsadmin.show_configuration( 'RESTORE_DATABASE_PARALLELISM')"
rdsadmin.restore_database
還原資料庫。
語法
db2 "call rdsadmin.restore_database( ?, '
database_name
', 's3_bucket_name
', 's3_prefix
',restore_timestamp
, 'backup_type
')"
參數
需要以下輸出參數:
- ?
-
輸出錯誤訊息的參數標識。此參數僅接受
?
。
需要下列輸入參數:
database_name
-
要還原的資料庫名稱。此名稱必須與備份影像中的資料庫名稱相符。資料類型為
varchar
。 s3_ 儲存格名稱
-
備份所在之 Amazon S3 儲存貯體的名稱。資料類型為
varchar
。 s3_ 前綴
-
在下載期間用於檔案比對的前置詞。資料類型為
varchar
。如果此參數為空,則會下載 Amazon S3 儲存貯體中的所有檔案。以下是範例前置詞:
backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101
還原時間戳記
-
資料庫備份映像檔的時間戳記。資料類型為
varchar
。時間戳記包含在備份檔案名稱中。例如,
20230615010101
是檔案名稱的時間戳記SAMPLE.0.rdsdb.DBPART000.20230615010101.001
。 備份類型
-
備份的類型。資料類型為
varchar
。有效值:OFFLINE
、ONLINE
。用
ONLINE
於近乎零的停機時間遷移。如需詳細資訊,請參閱 Linux基於 Db2 資料庫的近乎零停機時間遷移。
使用須知
rdsadmin.restore_database
如果您在建立 RDS for Db2 資料庫執行個體時未使用 Amazon RDS 主控台或指定資料庫名稱,則可以呼叫來還原資料庫。 AWS CLI如需詳細資訊,請參閱 建立資料庫執行個體。
還原資料庫之前,您必須為 RDS for Db2 資料庫執行個體佈建儲存空間,該儲存空間等於或大於備份大小和磁碟上原始 Db2 資料庫的總和。當您還原備份時,Amazon RDS 會在您的 RDS for Db2 資料庫執行個體上擷取備份檔案。
每個備份文件必須為 5 TB 或更小。如果備份檔案超過 5 TB,您必須將備份檔案分割為較小的檔案。
若要使用rdsadmin.restore_database
預存程序還原所有檔案,請勿在檔案名稱中的時間戳記後加入檔案編號尾碼。例如,s3_prefix
會backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101
還原下列檔案:
SAMPLE.0.rdsdb.DBPART000.20230615010101.001
SAMPLE.0.rdsdb.DBPART000.20230615010101.002
SAMPLE.0.rdsdb.DBPART000.20230615010101.003
SAMPLE.0.rdsdb.DBPART000.20230615010101.004
SAMPLE.0.rdsdb.DBPART000.20230615010101.005
若要改善資料庫還原作業的效能,您可以設定 RDS 使用的緩衝區和緩衝區操控點數目。若要檢查目前的組態,請使用rdsadmin.show_configuration。若要變更組態,請使用rdsadmin.set_configuration。
如需檢查還原資料庫狀態的資訊,請參閱rdsadmin.get_task_status。
若要在還原資料庫之後使資料庫上線並套用其他交易記錄,請參閱rdsadmin.rollforward_database。
範例
下列範例會使用單一檔案或多個具有 s3
backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101
_prefix 的檔案來還原離線備份:
db2 "call rdsadmin.restore_database( ?, 'SAMPLE', '
DOC-EXAMPLE-BUCKET
', 'backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101', 20230615010101, 'OFFLINE')"
rdsadmin.rollforward_database
透過呼叫還原資料庫之後,將資料庫上線並套用其他交易記錄檔rdsadmin.restore_database。
語法
db2 "call rdsadmin.rollforward_database( ?, '
database_name
', 's3_bucket_name
',s3_prefix
, 'rollfoward_to_option
', 'complete_rollforward
')"
參數
需要以下輸出參數:
- ?
-
輸出錯誤訊息的參數標識。此參數僅接受
?
。
需要下列輸入參數:
database_name
-
執行作業的資料庫名稱。資料類型為
varchar
。 s3_ 儲存格名稱
-
備份所在之 Amazon S3 儲存貯體的名稱。資料類型為
varchar
。 s3_ 前綴
-
在下載期間用於檔案比對的前置詞。資料類型為
varchar
。如果此參數為空,則會下載 S3 儲存貯體中的所有檔案。下列範例為前置字元範例:
backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101
以下是可選的輸入參數:
向前滾動到 _ 選項
-
您要向前捲動的點。資料類型為
varchar
。有效值:END_OF_LOGS
、END_OF_BACKUP
。預設值為END OF LOGS
。 完成 (_R) 向前滾動
-
指定是否完成向前捲動程序。資料類型為
varchar
。預設值為TRUE
。如果
TRUE
,那麼在完成後,數據庫是在線和可訪問的。如果FALSE
,則資料庫會保持ROLL-FORWARD PENDING
狀態。
使用須知
通話後rdsadmin.restore_database,您必須呼叫rollforward_database
以從 S3 儲存貯體套用存檔日誌。您也可以使用這個預存程序,在呼叫後還原其他交易記錄檔rdsadmin.restore_database
。
如果設定complete_rollforward
為FALSE
,則資料庫ROLL-FORWARD PENDING
處於離線狀態。要使數據庫上線,您必須打電話rdsadmin.complete_rollforward。
如需檢查向前捲動資料庫狀態的資訊,請參閱rdsadmin.get_task_status。
範例
下列範例會向前復原至具有交易記錄檔的資料庫線上備份,然後讓資料庫上線:
db2 "call rdsadmin.rollforward_database( ?, null, null, 'END_OF_LOGS', 'TRUE')"
下列範例會向前復原至沒有交易記錄檔的資料庫線上備份,然後讓資料庫上線:
db2 "call rdsadmin.rollforward_database( ?, 'TESTDB', '
DOC-EXAMPLE-BUCKET
', 'logsfolder/, 'END_OF_BACKUP', 'TRUE')"
下列範例會向前彙整至具有交易記錄檔的資料庫線上備份,然後不會讓資料庫上線:
db2 "call rdsadmin.rollforward_database( ?, 'TESTDB', null, 'onlinebackup/TESTDB', 'END_OF_LOGS', 'FALSE')"
下列範例會向前彙整至含有其他交易記錄檔的資料庫線上備份,然後不會讓資料庫上線:
db2 "call rdsadmin.rollforward_database( ?, 'TESTDB', '
DOC-EXAMPLE-BUCKET
', 'logsfolder/S0000155.LOG', 'END_OF_LOGS', 'FALSE')"
rdsadmin.complete_rollforward
使資料庫從ROLL-FORWARD PENDING
狀態上線。
語法
db2 "call rdsadmin.complete_rollforward( ?, '
database_name
')"
參數
需要以下輸出參數:
- ?
-
輸出錯誤訊息的參數標識。此參數僅接受
?
。
需要下列輸入參數:
database_name
-
您要上線的資料庫名稱。資料類型為
varchar
。
使用須知
如果您rdsadmin.rollforward_database使用 complete_rollforward
set to 呼叫FALSE
,則您的資料庫ROLL-FORWARD PENDING
處於離線狀態。若要完成向前捲動程序並使資料庫上線,請呼叫。rdsadmin.complete_rollforward
如需檢查完成向前捲動程序狀態的資訊,請參閱。rdsadmin.get_task_status
範例
下列範例會使資TESTDB料庫上線:
db2 "call rdsadmin.complete_rollfoward( ?, 'TESTDB')"
rdsadmin.db2pd_command
收集 Db2 資料庫之 RDS 的相關資訊。
語法
db2 "call rdsadmin.db2pd_command('
db2pd_cmd
')"
參數
需要下列輸入參數:
-
您要執行的
db2pd
命令名稱。資料類型為varchar
。參數必須以連字號開頭。如需參數清單,請參閱 IBM 說明文件中的 db2pd-監控和疑難排解 Db2 資料庫命令
。 無法使用下列參數:
-
-rep
|-repeat
-
-fil
|-file
-
-db
|-data
|-database <dbname>
沒有任何子選項,例如或-apinfo
-logs
-
-inst
|-instance
-
使用須知
此預存程序會收集可協助監視和疑難排解 RDS for Db2 資料庫的資訊。
預存程序會使用IBMdb2pd
公用程式來執行各種命令。此db2pd
公用程式需要SYSADM
授權,Db2 主要使用者沒有授權。不過,使用 Amazon RDS 存放程序時,主要使用者可以使用公用程式執行各種命令。如需有關公用程式的詳細資訊,請參閱 IBM 說明文件中的 db2pd-監控和疑難排解 Db2 資料庫命令
輸出限制為最大 2 MB。
如需檢查收集資料庫相關資訊之狀態的資訊,請參閱rdsadmin.get_task_status。
範例
下列範例會傳回適用於 Db2 資料庫執行個體的 RDS 執行時間:
db2 "call rdsadmin.db2pd_command('-')"
下列範例會傳回名為的資料庫的執行時間TESTDB
:
db2 "call rdsadmin.db2pd_command('-db TESTDB -')"
下列範例會傳回 RDS for Db2 資料庫執行個體的記憶體使用量:
db2 "call rdsadmin.db2pd_command('-dbptnmem')"
下列範例會傳回 RDS for Db2 資料庫執行個體和名為TESTDB
的資料庫的記憶體集:
db2 "call rdsadmin.db2pd_command('-inst -db TESTDB -memsets')"
rdsadmin.force_application
強制使用 RDS for Db2 資料庫的應用程式。
語法
db2 "call rdsadmin.force_application( ?, '
applications
')"
參數
需要以下輸出參數:
- ?
-
輸出錯誤訊息的參數標識。此參數僅接受
?
。
需要下列輸入參數:
應用程式
-
您要強制關閉 RDS for Db2 資料庫的應用程式。資料類型為
varchar
。有效值:ALL
或應用程式處理。
使用逗號分隔多個應用程式的名稱。
例如:'
應用程序手柄 _1,應用程序 _ 手柄 _2
'。
使用須知
這個預存程序會強制所有應用程式離開資料庫,以便您可以執行維護。
預存程序會使用IBMFORCE APPLICATION
命令。此命FORCE APPLICATION
令需要SYSADM
SYSMAINT
、或SYSCTRL
授權,Db2 主要使用者所沒有的 RDS。不過,使用 Amazon RDS 存放程序時,主要使用者可以使用該命令。如需詳細資訊,請參閱 IBM 說明文件中的強制應用程式命令
如需檢查強制執行應用程式離開資料庫之狀態的資訊,請參閱rdsadmin.get_task_status。
範例
下列範例會強制所有應用程式離開 RDS for Db2 資料庫:
db2 "call rdsadmin.force_application( ?, 'ALL')"
下列範例會強制應用程式處理9991
和1192
關閉 RDS for Db2 資料庫:8891
db2 "call rdsadmin.force_application( ?, '9991, 8891, 1192')"
rdsadmin.set_archive_log_retention
針對指定的 RDS for Db2 資料庫設定保留封存記錄檔的時間 (以小時為單位)。
語法
db2 "call rdsadmin.set_archive_log_retention( ?, '
database_name
', 'archive_log_retention_hours
')"
參數
需要以下輸出參數:
- ?
-
輸出錯誤訊息的參數標識。此參數僅接受
?
。
需要下列輸入參數:
database_name
-
要設定存檔日誌保留的資料庫名稱。資料類型為
varchar
。 封存日誌保留小時
-
保留存檔記錄檔的小時數。資料類型為
smallint
。預設值為0
,且最大值為168
(7 天)。如果值為
0
,則 Amazon RDS 不會保留存檔日誌檔。
使用須知
您可以透過呼叫來檢視目前的封存記錄保留設定rdsadmin.show_archive_log_retention。
您無法在rdsadmin
資料庫上設定封存記錄保留設定。
範例
下列範例會將資料庫的存檔記錄保留時間設定TESTDB
為 24 小時。
db2 "call rdsadmin.set_archive_log_retention( ?, 'TESTDB', '24')"
下列範例會停用名為的資料庫的封存記錄保留TESTDB
。
db2 "call rdsadmin.set_archive_log_retention( ?, 'TESTDB', '0')"
rdsadmin.show_archive_log_retention
傳回指定資料庫的目前存檔記錄保留設定。
語法
db2 "call rdsadmin.show_archive_log_retention( ?, '
database_name
')"
參數
需要以下輸出參數:
- ?
-
輸出錯誤訊息的參數標識。此參數僅接受
?
。
需要下列輸入參數:
database_name
-
顯示存檔日誌保留設定的資料庫名稱。資料類型為
varchar
。
範例
下列範例顯示名為的資料庫的存檔記錄保留設定TESTDB
。
db2 "call rdsadmin.show_archive_log_retention( ? 'TESTDB')"