本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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_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
呼叫 時傳回的資料欄。
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