数据库的常见任务 - Amazon Relational Database Service

数据库的常见任务

可以在 RDS for Db2 数据库实例上创建、删除或还原数据库。创建、删除或还原数据库需要更高级别的 SYSADM 权限,而主用户无法获得该权限。而应使用 Amazon RDS 存储过程。

还可以执行常见的管理任务,例如监控、维护和收集有关数据库的信息。

创建数据库

要在 RDS for Db2 数据库实例上创建数据库,请调用 rdsadmin.create_database 存储过程。有关更多信息,请参阅 IBM Db2 文档中的 CREATE DATABASE 命令

注意

如果您在使用 Amazon RDS 控制台或 AWS CLI 创建 RDS for Db2 数据库实例时未指定数据库的名称,则可以通过调用此存储过程来创建数据库。有关更多信息,请参阅使用说明适用于 rdsadmin.create_database 的 。

创建数据库
  1. 使用 RDS for Db2 数据库实例的主用户名和主密码连接到 rdsadmin 数据库。在以下示例中,用您自己的信息替换 master_usernamemaster_password

    db2 "connect to rdsadmin user master_user using master_password"
  2. 通过调用 rdsadmin.create_database 创建数据库。有关更多信息,请参阅 rdsadmin.create_database

    db2 "call rdsadmin.create_database('database_name')"

为数据库配置设置

要为 RDS for Db2 数据库实例上的数据库配置设置,请调用 rdsadmin.set_configuration 存储过程。例如,您可以配置在还原操作期间要创建的缓冲区或缓冲区操纵器的数量。

为数据库配置设置
  1. 使用 RDS for Db2 数据库实例的主用户名和主密码连接到 rdsadmin 数据库。在以下示例中,用您自己的信息替换 master_usernamemaster_password

    db2 "connect to rdsadmin user master_user using master_password"
  2. (可选)通过调用 rdsadmin.show_configuration 检查您当前的配置设置。有关更多信息,请参阅 rdsadmin.show_configuration

    db2 "call rdsadmin.show_configuration('name')"
  3. 通过调用 rdsadmin.set_configuration 配置数据库的设置。有关更多信息,请参阅 rdsadmin.set_configuration

    db2 "call rdsadmin.set_configuration( 'name', 'value')"

修改数据库参数

Amazon RDS for Db2 使用三种类型的参数:数据库管理器配置参数、注册表变量和数据库配置参数。可以通过参数组更新前两种类型,并通过 rdsadmin.update_db_param 存储过程更新最后一种类型。

注意

只能修改现有参数的值。无法添加 RDS for Db2 不支持的新参数。

有关这些参数以及如何修改其值的更多信息,请参阅 Amazon RDS for Db2 参数

配置日志保留期

要配置 Amazon RDS 为 RDS for Db2 数据库保留日志文件的时间长度,请调用 rdsadmin.set_archive_log_retention 存储过程。

为数据库配置日志保留期
  1. 使用 RDS for Db2 数据库实例的主用户名和主密码连接到 rdsadmin 数据库。在以下示例中,用您自己的信息替换 master_usernamemaster_password

    db2 "connect to rdsadmin user master_user using master_password"
  2. (可选)通过调用 rdsadmin.show_archive_log_retention 检查您当前的日志保留期配置。有关更多信息,请参阅 rdsadmin.show_archive_log_retention

    db2 "call rdsadmin.show_archive_log_retention( ?, 'database_name')"
  3. 通过调用 rdsadmin.set_archive_log_retention 配置数据库的日志保留期。有关更多信息,请参阅 rdsadmin.set_archive_log_retention

    db2 "call rdsadmin.set_archive_log_retention( ?, 'database_name', 'archive_log_retention_hours')"

删除数据库

要从 RDS for Db2 数据库实例中删除数据库,请调用 rdsadmin.drop_database 存储过程。有关更多信息,请参阅 IBM Db2 文档中的 Dropping databases

注意

只有满足某些条件时,才能通过调用存储过程来删除数据库。有关更多信息,请参阅使用说明适用于 rdsadmin.drop_database 的 。

删除数据库
  1. 使用 RDS for Db2 数据库实例的主用户名和主密码连接到 rdsadmin 数据库。在以下示例中,用您自己的信息替换 master_usernamemaster_password

    db2 "connect to rdsadmin user master_user using master_password"
  2. 通过调用 rdsadmin.drop_database 来删除数据库。有关更多信息,请参阅 rdsadmin.drop_database

    db2 "call rdsadmin.drop_database('database_name')"

还原数据库

要在 RDS for Db2 数据库实例上还原数据库,请调用 rdsadmin.restore_database 存储过程。有关更多信息,请参阅 IBM Db2 文档中的 RESTORE DATABASE 命令

注意

如果您在使用 Amazon RDS 控制台或 AWS CLI 创建 RDS for Db2 数据库实例时未指定数据库的名称,则可以通过调用此存储过程来还原数据库。有关更多信息,请参阅使用说明适用于 rdsadmin.restore_database 的 。

还原 数据库
  1. 使用 RDS for Db2 数据库实例的主用户名和主密码连接到 rdsadmin 数据库。在以下示例中,用您自己的信息替换 master_usernamemaster_password

    db2 "connect to rdsadmin user master_user using master_password"
  2. (可选)通过调用 rdsadmin.show_configuration 来检查当前的配置设置以优化还原操作。有关更多信息,请参阅 rdsadmin.show_configuration

    db2 "call rdsadmin.show_configuration('name')"
  3. 通过调用 rdsadmin.set_configuration 来配置设置以优化还原操作。显式设置这些值可以提高还原包含大量数据的数据库时的性能。有关更多信息,请参阅 rdsadmin.set_configuration

    db2 "call rdsadmin.set_configuration( 'name', 'value')"
  4. 通过调用 rdsadmin.restore_database 来还原数据库。有关更多信息,请参阅 rdsadmin.restore_database

    db2 "call rdsadmin.restore_database( ?, 'database_name', 's3_bucket_name', 's3_prefix', restore_timestamp, 'backup_type')"
  5. 通过调用 rdsadmin.rollforward_database 使数据库恢复联机并应用其它事务日志。有关更多信息,请参阅 rdsadmin.rollforward_database

    db2 "call rdsadmin.rollforward_database( ?, 'database_name', 's3_bucket_name', s3_prefix, 'rollfoward_to_option', 'complete_rollforward')"
  6. 如果在上一步中将 complete_rollforward 设置为 FALSE,则必须通过调用 rdsadmin.complete_rollforward 来完成使数据库恢复联机的过程。有关更多信息,请参阅 rdsadmin.complete_rollforward

    db2 "call rdsadmin.complete_rollforward( ?, 'database_name')"

收集有关数据库的信息

要收集有关数据库的信息,请调用 rdsadmin.db2pd_command 存储过程。这些信息可以帮助监控您的数据库或排查问题。

收集有关数据库的信息
  1. 使用 RDS for Db2 数据库实例的主用户名和主密码连接到 rdsadmin 数据库。在以下示例中,用您自己的信息替换 master_usernamemaster_password

    db2 "connect to rdsadmin user master_username using master_password"
  2. 通过调用 rdsadmin.db2pd_command 收集有关数据库的信息。有关更多信息,请参阅 rdsadmin.db2pd_command

    db2 "call rdsadmin.db2pd_command('db2pd_cmd')"

强制应用程序退出数据库

要强制应用程序退出 RDS for Db2 数据库,请调用 rdsadmin.force_application 存储过程。在对数据库进行维护之前,请强制应用程序退出数据库。

强制应用程序退出数据库
  1. 使用 RDS for Db2 数据库实例的主用户名和主密码连接到 rdsadmin 数据库。在以下示例中,用您自己的信息替换 master_usernamemaster_password

    db2 "connect to rdsadmin user master_username using master_password"
  2. 通过调用 rdsadmin.force_application 来强制应用程序退出数据库 有关更多信息,请参阅 rdsadmin.force_application

    db2 "call rdsadmin.force_application( ?, 'applications')"

生成性能报告

您可以使用过程或脚本生成性能报告。有关使用过程的信息,请参阅 IBM Db2 文档中的 DBSUMMARY procedure ‐ Generate a summary report of system and application performance metrics

Db2 在其 ~sqllib/sample/perf 目录中包含一个 db2mon.sh 文件。运行该脚本会生成低成本、广泛的 SQL 指标报告。要下载 db2mon.sh 文件和相关的脚本文件,请参阅 IBM db2-samples GitHub 存储库中的 perf 目录。

使用脚本生成性能报告
  1. 使用 RDS for Db2 数据库实例的主用户名和主密码连接到您的 Db2 数据库。在以下示例中,用您自己的信息替换 master_usernamemaster_password

    db2 connect to rdsadmin user master_username using master_password
  2. 通过调用 rdsadmin.create_bufferpool 创建一个名为 db2monbp、页面大小为 4096 的缓冲池。有关更多信息,请参阅 rdsadmin.create_bufferpool

    db2 "call rdsadmin.create_bufferpool('database_name','db2monbp',4096)"
  3. 通过调用 rdsadmin.create_tablespace 创建一个名为 db2montmptbsp 且使用 db2monbp 缓冲池的临时表空间。有关更多信息,请参阅 rdsadmin.create_tablespace

    db2 "call rdsadmin.create_tablespace('database_name',\ 'db2montmptbsp','db2monbp',4096,1000,100,'T')"
  4. 打开 db2mon.sh 脚本,并修改有关连接到数据库的行。

    1. 删除以下行。

      db2 -v connect to $dbName
    2. 将上一步中的行替换为下一行。在以下示例中,将 master_usernamemaster_password 替换为您的 RDS for Db2 数据库实例的主用户名和主密码。

      db2 -v connect to $dbName user master_username using master_password
    3. 移除以下各行。

      db2 -v create bufferpool db2monbp db2 -v create user temporary tablespace db2montmptbsp bufferpool db2monbp db2 -v drop tablespace db2montmptbsp db2 -v drop bufferpool db2monbp
  5. 运行 db2mon.sh 脚本以按指定的间隔输出报告。在以下示例中,将 absolute_path 替换为指向脚本文件的完整路径,将 rds_database_alias 替换为数据库的名称,并将 seconds 替换为报告生成之间的秒数(0 到 3600)。

    absolute_path/db2mon.sh rds_database_alias seconds | tee -a db2mon.out

    示例

    以下示例显示脚本文件位于 home 目录下的 perf 目录中。

    /home/db2inst1/sqllib/samples/perf/db2mon.sh rds_database_alias seconds | tee -a db2mon.out
  6. 删除为 db2mon.sh 文件创建的缓冲池和表空间。在以下示例中,将 master_usernamemaster_password 替换为您的 RDS for Db2 数据库实例的主用户名和主密码。将 database_name 替换为数据库的名称。

    db2 connect to rdsadmin user master_username using master_password db2 "call rdsadmin.drop_tablespace('database_name','db2montmptbsp')" db2 "call rdsadmin.drop_bufferpool('database_name','db2monbp')"