Amazon RDS for Db2 用户定义的函数参考 - Amazon Relational Database Service

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_GROUPSADD_USERALTER_BUFFERPOOLALTER_TABLESPACECHANGE_PASSWORDCOMPLETE_ROLLFORWARDCREATE_BUFFERPOOLCREATE_DATABASECREATE_ROLECREATE_TABLESPACEDROP_BUFFERPOOLDROP_DATABASEDROP_TABLESPACELIST_USERSREMOVE_GROUPSREMOVE_USERRESTORE_DBROLLFORWARD_DB_LOGROLLFORWARD_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 更改为 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