Amazon RDS for Db2 使用者定義函數參考 - Amazon Relational Database Service

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

Amazon RDS for Db2 使用者定義函數參考

下列主題說明執行 Db2 RDS 引擎的 Amazon 資料庫執行個體可用的使用者定義函數。

檢查任務狀態

您可以使用rdsadmin.get_task_status使用者定義的函數,檢查 Amazon RDS for Db2 的下列任務狀態。此清單並不詳盡。

  • 建立、變更或捨棄緩衝集區

  • 建立、變更或捨棄資料表空間

  • 建立或捨棄資料庫

  • 從 Amazon S3 還原資料庫備份

  • 從 Amazon S3 滾動資料庫日誌

rdsadmin.get_task_status

傳回任務的狀態。

語法

db2 "select task_id, task_type, database_name, lifecycle, varchar(bson_to_json(task_input_params), 500) as task_params, cast(task_output as varchar(500)) as task_output from table(rdsadmin.get_task_status(task_id,'database_name','task_type'))"

參數

下列參數為選用。如果您沒有提供任何參數,使用者定義的函數會傳回所有資料庫所有任務的狀態。Amazon 會RDS保留任務歷史記錄 35 天。

task_id

正在執行的任務 ID。當您執行任務時,會傳回此 ID。預設:0

database_name

正在執行任務的資料庫名稱。

task_type

要查詢的任務類型。有效值:ADD_GROUPSADD_USERALTER_BUFFERPOOLALTER_TABLESPACECHANGE_PASSWORD、、COMPLETE_ROLLFORWARDCREATE_BUFFERPOOLCREATE_DATABASECREATE_ROLECREATE_TABLESPACE、、DROP_BUFFERPOOL、、DROP_DATABASEDROP_TABLESPACELIST_USERS、、REMOVE_GROUPSREMOVE_USERRESTORE_DB、、ROLLFORWARD_DB_LOG、、ROLLFORWARD_STATUSUPDATE_DB_PARAM

範例

下列範例顯示rdsadmin.get_task_status呼叫 時傳回的資料欄。

db2 "describe select * from table(rdsadmin.get_task_status())"

下列範例列出所有任務的狀態。

db2 "select task_id, task_type, database_name, lifecycle, varchar(bson_to_json(task_input_params), 500) as task_params, cast(task_output as varchar(500)) as task_output from table(rdsadmin.get_task_status(null,null,null))"

下列範例列出特定任務的狀態。

db2 "select task_id, task_type, database_name, varchar(bson_to_json(task_input_params), 500) as task_params from table(rdsadmin.get_task_status(1,null,null))"

下列範例列出特定任務和資料庫的狀態。

db2 "select task_id, task_type, database_name, varchar(bson_to_json(task_input_params), 500) as task_params from table(rdsadmin.get_task_status(2,'SAMPLE',null))"

下列範例列出所有ADD_GROUPS任務的狀態。

db2 "select task_id, task_type, database_name, varchar(bson_to_json(task_input_params), 500) as task_params from table(rdsadmin.get_task_status(null,null,'add_groups'))"

下列範例會列出特定資料庫所有任務的狀態。

db2 "select task_id, task_type, database_name, varchar(bson_to_json(task_input_params), 500) as task_params from table(rdsadmin.get_task_status(null,'testdb', null))"

下列範例會將JSON值輸出為資料欄。

db2 "select varchar(r.task_type,25) as task_type, varchar(r.lifecycle,10) as lifecycle, r.created_at, u.* from table(rdsadmin.get_task_status(null,null,'restore_db')) as r, json_table(r.task_input_params, 'strict $' columns(s3_prefix varchar(500) null on empty, s3_bucket_name varchar(500) null on empty) error on error ) as U"

回應

rdsadmin.get_task_status 使用者定義的函數會傳回下列資料欄:

TASK_ID

任務的 ID。

TASK_TYPE

取決於輸入參數。

  • ADD_GROUPS – 新增群組。

  • ADD_USER – 新增使用者。

  • ALTER_BUFFERPOOL – 變更緩衝集區。

  • ALTER_TABLESPACE – 變更資料表空間。

  • CHANGE_PASSWORD – 變更使用者的密碼。

  • COMPLETE_ROLLFORWARD – 完成rdsadmin.rollforward_database任務並啟用資料庫。

  • CREATE_BUFFERPOOL – 建立緩衝集區。

  • CREATE_DATABASE – 建立資料庫。

  • CREATE_ROLE – 為使用者建立 Db2 角色。

  • CREATE_TABLESPACE – 建立資料表空間。

  • DROP_BUFFERPOOL – 捨棄緩衝集區。

  • DROP_DATABASE – 捨棄資料庫。

  • DROP_TABLESPACE – 捨棄資料表空間。

  • LIST_USERS – 列出所有使用者。

  • REMOVE_GROUPS – 移除群組。

  • REMOVE_USER – 移除使用者。

  • RESTORE_DB – 還原完整資料庫。

  • ROLLFORWARD_DB_LOG – 在資料庫日誌上執行rdsadmin.rollforward_database任務。

  • ROLLFORWARD_STATUS – 傳回rdsadmin.rollforward_database任務的狀態。

  • UPDATE_DB_PARAM – 更新資料參數。

DATABASE_NAME

與任務相關聯的資料庫名稱。

COMPLETED_WORK_BYTES

任務還原的位元組數。

DURATION_MINS

完成任務所需的時間。

LIFECYCLE

任務的狀態。可能的狀態:

  • CREATED – 將任務提交至 Amazon 後RDS,Amazon RDS會將 狀態設定為 CREATED

  • IN_PROGRESS – 任務啟動後,Amazon RDS會將 狀態設定為 IN_PROGRESS。狀態從 變更為 最多可能需要 CREATED 5 分鐘IN_PROGRESS

  • SUCCESS – 任務完成後,Amazon 會將 狀態RDS設定為 SUCCESS

  • ERROR – 如果還原任務失敗,Amazon 會將 狀態RDS設定為 ERROR。如需錯誤的詳細資訊,請參閱 TASK_OUPUT

CREATED_BY

authid 建立 命令的 。

CREATED_AT

建立任務的日期和時間。

LAST_UPDATED_AT

任務上次更新的資料和時間。

TASK_INPUT_PARAMS

參數會根據任務類型而有所不同。所有輸入參數都會以JSON物件表示。例如,RESTORE_DB任務的JSON金鑰如下:

  • DBNAME

  • RESTORE_TIMESTAMP

  • S3_BUCKET_NAME

  • S3_PREFIX

TASK_OUTPUT

任務的其他資訊。如果在原生還原期間發生錯誤,此欄會包含錯誤的相關資訊。

回應範例

下列回應範例顯示TESTJP已成功建立名為 的資料庫。如需詳細資訊,請參閱 rdsadmin.create_database 預存程序。

`1 SUCCESS CREATE_DATABASE RDSDB 2023-10-24-18.32.44.962689 2023-10-24-18.34.50.038523 1 TESTJP { "CODESET" : "IBM-437", "TERRITORY" : "JP", "COLLATION" : "SYSTEM", "AUTOCONFIGURE_CMD" : "", "PAGESIZE" : 4096 } 2023-10-24-18.33.30.079048 Task execution has started. 2023-10-24-18.34.50.038523 Task execution has completed successfully`.

下列回應範例說明為何捨棄資料庫失敗。如需詳細資訊,請參閱 rdsadmin.drop_database 預存程序。

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.restore_database 預存程序。

1 RESTORE_DB SAMPLE SUCCESS { "S3_BUCKET_NAME" : "amzn-s3-demo-bucket", "S3_PREFIX" : "SAMPLE.0.rdsdb3.DBPART000.20230413183211.001", "RESTORE_TIMESTAMP" : "20230413183211", "BACKUP_TYPE" : "offline" } 2023-11-06-18.31.03.115795 Task execution has started. 2023-11-06-18.31.04.300231 Preparing to download 2023-11-06-18.31.08.368827 Download complete. Starting Restore 2023-11-06-18.33.13.891356 Task Completed Successfully