管理資料庫 - Amazon Relational Database Service

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

管理資料庫

下列預存程序會管理適用於 Db2 的 Amazon RDS 資料庫。若要執行這些程序,master 使用者必須先連線到資rdsadmin料庫。

rdsadmin.create_database

建立資料庫。

語法

db2 "call rdsadmin.create_database('database_name')"

參數

注意

此預存程序不會驗證所需參數的組合。當您調用時rdsadmin.get_task_status,用戶定義函數可能會返回錯誤,因為 database_codesetdatabase_territory,的組合database_collation是無效的。如需詳細資訊,請參閱IBM Db2文件中的選擇資料庫的字碼頁、區域和定序

以下是必要參數:

database_name

要建立的資料庫名稱。資料類型為varchar

下列是選用參數:

資料庫頁面大小

資料庫的預設頁面大小。有效值:409681921638432768。資料類型為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_codesetdatabase_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 會使用NUMSEGSDFT_EXTENT_SZ的預設值。

  • RDS for Db2 使用儲存區加密,不支援資料庫加密。

如需有關這些考量的詳細資訊,請參閱IBM Db2文件中的CREATE DATABASE指令

在調用之前rdsadmin.create_database,您必須連接到rdsadmin數據庫。在下列範例中,將使用您的 RDS for Db2 資料庫執行個體資訊取代主體使用者名稱和主密碼

db2 connect to rdsadmin user master_username using master_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才能呼叫來刪除資料庫:

在調用之前rdsadmin.drop_database,您必須連接到rdsadmin數據庫。在下列範例中,將使用您的 RDS for Db2 資料庫執行個體資訊取代主體使用者名稱和主密碼

db2 connect to rdsadmin user master_username using master_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

範例

下列範例會將名為之資料庫100archretrydelay參數更新為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

名稱 描述

RESTORE_DATABASE_NUM_BUFFERS

還原作業期間要建立的緩衝區數目。此值必須小於資料庫執行個體類別的總記憶體大小。如果未設定此設定,Db2 會決定還原作業期間要使用的值。如需詳細資訊,請參閱 IBM Db2 文件

RESTORE_DATABASE_PARALLELISM

還原作業期間要建立的緩衝區操控點數目。此值必須小於資料庫執行個體 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。有效值:OFFLINEONLINE

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_prefixbackupfolder/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_LOGSEND_OF_BACKUP。預設值為 END OF LOGS

完成 (_R) 向前滾動

指定是否完成向前捲動程序。資料類型為varchar。預設值為 TRUE

如果TRUE,那麼在完成後,數據庫是在線和可訪問的。如果FALSE,則資料庫會保持ROLL-FORWARD PENDING狀態。

使用須知

通話後rdsadmin.restore_database,您必須呼叫rollforward_database以從 S3 儲存貯體套用存檔日誌。您也可以使用這個預存程序,在呼叫後還原其他交易記錄檔rdsadmin.restore_database

如果設定complete_rollforwardFALSE,則資料庫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令需要SYSADMSYSMAINT、或SYSCTRL授權,Db2 主要使用者所沒有的 RDS。不過,使用 Amazon RDS 存放程序時,主要使用者可以使用該命令。如需詳細資訊,請參閱 IBM 說明文件中的強制應用程式命令

如需檢查強制執行應用程式離開資料庫之狀態的資訊,請參閱rdsadmin.get_task_status

範例

下列範例會強制所有應用程式離開 RDS for Db2 資料庫:

db2 "call rdsadmin.force_application( ?, 'ALL')"

下列範例會強制應用程式處理99911192關閉 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')"