Amazon RDS for Db2 用户定义的函数参考
以下主题介绍运行 Db2 引擎的 Amazon RDS 数据库实例可用的用户定义函数。
检查任务状态
您可以使用 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
更改为IN_PROGRESS
可能需要多达 5 分钟时间。 -
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