数据库的常见任务 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

数据库的常见任务

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

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

创建数据库

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

注意

如果您在使用 Amazon RDS 控制台或 Amazon 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 控制台或 Amazon 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')"