Amazon RDS for Db2 用户定义的函数参考 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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