数据库的常见任务
可以在 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
的 。
创建数据库
-
使用 RDS for Db2 数据库实例的主用户名和主密码连接到
rdsadmin
数据库。在以下示例中,用您自己的信息替换master_username
和master_password
。db2 "connect to rdsadmin user
master_user
usingmaster_password
" -
通过调用
rdsadmin.create_database
创建数据库。有关更多信息,请参阅 rdsadmin.create_database。db2 "call rdsadmin.create_database('
database_name
')"
为数据库配置设置
要为 RDS for Db2 数据库实例上的数据库配置设置,请调用 rdsadmin.set_configuration
存储过程。例如,您可以配置在还原操作期间要创建的缓冲区或缓冲区操纵器的数量。
为数据库配置设置
-
使用 RDS for Db2 数据库实例的主用户名和主密码连接到
rdsadmin
数据库。在以下示例中,用您自己的信息替换master_username
和master_password
。db2 "connect to rdsadmin user
master_user
usingmaster_password
" -
(可选)通过调用
rdsadmin.show_configuration
检查您当前的配置设置。有关更多信息,请参阅 rdsadmin.show_configuration。db2 "call rdsadmin.show_configuration('
name
')" -
通过调用
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
存储过程。
为数据库配置日志保留期
-
使用 RDS for Db2 数据库实例的主用户名和主密码连接到
rdsadmin
数据库。在以下示例中,用您自己的信息替换master_username
和master_password
。db2 "connect to rdsadmin user
master_user
usingmaster_password
" -
(可选)通过调用
rdsadmin.show_archive_log_retention
检查您当前的日志保留期配置。有关更多信息,请参阅 rdsadmin.show_archive_log_retention。db2 "call rdsadmin.show_archive_log_retention( ?, '
database_name
')" -
通过调用
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
的 。
删除数据库
-
使用 RDS for Db2 数据库实例的主用户名和主密码连接到
rdsadmin
数据库。在以下示例中,用您自己的信息替换master_username
和master_password
。db2 "connect to rdsadmin user
master_user
usingmaster_password
" -
通过调用
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
的 。
还原 数据库
-
使用 RDS for Db2 数据库实例的主用户名和主密码连接到
rdsadmin
数据库。在以下示例中,用您自己的信息替换master_username
和master_password
。db2 "connect to rdsadmin user
master_user
usingmaster_password
" -
(可选)通过调用
rdsadmin.show_configuration
来检查当前的配置设置以优化还原操作。有关更多信息,请参阅 rdsadmin.show_configuration。db2 "call rdsadmin.show_configuration('
name
')" -
通过调用
rdsadmin.set_configuration
来配置设置以优化还原操作。显式设置这些值可以提高还原包含大量数据的数据库时的性能。有关更多信息,请参阅 rdsadmin.set_configuration。db2 "call rdsadmin.set_configuration( '
name
', 'value
')" -
通过调用
rdsadmin.restore_database
来还原数据库。有关更多信息,请参阅 rdsadmin.restore_database。db2 "call rdsadmin.restore_database( ?, '
database_name
', 's3_bucket_name
', 's3_prefix
',restore_timestamp
, 'backup_type
')" -
通过调用
rdsadmin.rollforward_database
使数据库恢复联机并应用其它事务日志。有关更多信息,请参阅 rdsadmin.rollforward_database。db2 "call rdsadmin.rollforward_database( ?, '
database_name
', 's3_bucket_name
',s3_prefix
, 'rollfoward_to_option
', 'complete_rollforward
')" -
如果在上一步中将
complete_rollforward
设置为FALSE
,则必须通过调用rdsadmin.complete_rollforward
来完成使数据库恢复联机的过程。有关更多信息,请参阅 rdsadmin.complete_rollforward。db2 "call rdsadmin.complete_rollforward( ?, '
database_name
')"
收集有关数据库的信息
要收集有关数据库的信息,请调用 rdsadmin.db2pd_command
存储过程。这些信息可以帮助监控您的数据库或排查问题。
收集有关数据库的信息
-
使用 RDS for Db2 数据库实例的主用户名和主密码连接到
rdsadmin
数据库。在以下示例中,用您自己的信息替换master_username
和master_password
。db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
通过调用
rdsadmin.db2pd_command
收集有关数据库的信息。有关更多信息,请参阅 rdsadmin.db2pd_command。db2 "call rdsadmin.db2pd_command('
db2pd_cmd
')"
强制应用程序退出数据库
要强制应用程序退出 RDS for Db2 数据库,请调用 rdsadmin.force_application
存储过程。在对数据库进行维护之前,请强制应用程序退出数据库。
强制应用程序退出数据库
-
使用 RDS for Db2 数据库实例的主用户名和主密码连接到
rdsadmin
数据库。在以下示例中,用您自己的信息替换master_username
和master_password
。db2 "connect to rdsadmin user
master_username
usingmaster_password
" -
通过调用
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
使用脚本生成性能报告
-
使用 RDS for Db2 数据库实例的主用户名和主密码连接到您的 Db2 数据库。在以下示例中,用您自己的信息替换
master_username
和master_password
。db2 connect to rdsadmin
master_username
usingmaster_password
-
通过调用
rdsadmin.create_bufferpool
创建一个名为db2monbp
、页面大小为 4096 的缓冲池。有关更多信息,请参阅 rdsadmin.create_bufferpool。db2 "call rdsadmin.create_bufferpool('
database_name
','db2monbp',4096)" -
通过调用
rdsadmin.create_tablespace
创建一个名为db2montmptbsp
且使用db2monbp
缓冲池的临时表空间。有关更多信息,请参阅 rdsadmin.create_tablespace。db2 "call rdsadmin.create_tablespace('database_name',\ 'db2montmptbsp','db2monbp',4096,1000,100,'T')"
-
打开
db2mon.sh
脚本,并修改有关连接到数据库的行。-
删除以下行。
db2 -v connect to $dbName
-
将上一步中的行替换为下一行。在以下示例中,将
master_username
和master_password
替换为您的 RDS for Db2 数据库实例的主用户名和主密码。db2 -v connect to $dbName user
master_username
usingmaster_password
-
移除以下各行。
db2 -v create bufferpool db2monbp db2 -v create user temporary tablespace db2montmptbsp bufferpool db2monbp db2 -v drop tablespace db2montmptbsp db2 -v drop bufferpool db2monbp
-
-
运行
db2mon.sh
脚本以按指定的间隔输出报告。在以下示例中,将absolute_path
替换为指向脚本文件的完整路径,将rds_database_alias
替换为数据库的名称,并将seconds
替换为报告生成之间的秒数(0 到 3600)。absolute_path
/db2mon.shrds_database_alias
seconds
| tee -a db2mon.out示例
以下示例显示脚本文件位于
home
目录下的perf
目录中。/home/db2inst1/sqllib/samples/perf/db2mon.sh
rds_database_alias
seconds
| tee -a db2mon.out -
删除为
db2mon.sh
文件创建的缓冲池和表空间。在以下示例中,将master_username
和master_password
替换为您的 RDS for Db2 数据库实例的主用户名和主密码。将database_name
替换为数据库的名称。db2 connect to rdsadmin user
master_username
usingmaster_password
db2 "call rdsadmin.drop_tablespace('database_name
','db2montmptbsp')" db2 "call rdsadmin.drop_bufferpool('database_name
','db2monbp')"