本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon RDS for Db2 使用者定義函數參考
下列使用者定義的函數適用於執行 Db2 引擎的 Amazon RDS 資料庫執行個體。
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_GROUPS、ADD_USER、ALTER_BUFFERPOOL、ALTER_TABLESPACE、CHANGE_PASSWORD、COMPLETE_ROLLFORWARD、CREATE_BUFFERPOOL、CREATE_DATABASE、CREATE_ROLE、CREATE_TABLESPACE、DROP_BUFFERPOOL、DROP_DATABASE、DROP_TABLESPACE、LIST_USERS、REMOVE_GROUPS、REMOVE_USER、RESTORE_DB、ROLLFORWARD_DB_LOG、ROLLFORWARD_STATUS、UPDATE_DB_PARAM。
使用須知
您可以使用 rdsadmin.get_task_status 使用者定義的函數,檢查 Amazon RDS for Db2 的下列任務狀態。此清單並不詳盡。
-
建立、變更或捨棄緩衝集區
-
建立、變更或捨棄資料表空間
-
建立或捨棄資料庫
-
從 Amazon S3 還原資料庫備份
-
從 Amazon S3 轉傳資料庫日誌
範例
下列範例顯示呼叫 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。最多可能需要 5 分鐘,狀態才會從CREATED變成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
rdsadmin.list_databases
傳回在 RDS for Db2 資料庫執行個體上執行的所有資料庫之清單。
語法
db2 "select * from table(rdsadmin.list_databases())"
使用須知
此使用者定義的函數不會指定資料庫是處於啟用或停用狀態。
如果您在清單中看不到資料庫,請呼叫 rdsadmin.get_task_status 使用者定義的函數,並尋找錯誤訊息。
回應
rdsadmin.list_databases 使用者定義的函數會傳回下列資料欄:
DATABASE_NAME-
資料庫的名稱。
CREATE_TIME-
建立資料庫的時間和日期。
回應範例
下列回應範例顯示資料庫的清單以及建立資料庫的時間。rdsadmin 是 Amazon RDS 管理並一律顯示在輸出中的資料庫。
DATABASE_NAME CREATE_TIME --------------- -------------------------- rdsadmin 2024-10-22-03.37.48.535671 TEST 2024-10-22-03.39.36.818679 TEST1 2024-10-22-03.57.15.218009 TEST2 2024-10-22-03.59.28.029556