缓冲池的常见任务 - Amazon Relational Database Service

缓冲池的常见任务

您可以针对 RDS for Db2 数据库创建、更改或删除缓冲池。创建、更改或删除缓冲池需要更高级别的 SYSADMSYSCTRL 权限,而主用户无法获得相应的权限。而应使用 Amazon RDS 存储过程。

您也可以刷新缓冲池。

创建缓冲池

要创建 RDS for Db2 数据库的缓冲池,请调用 rdsadmin.create_bufferpool 存储过程。有关更多信息,请参阅 IBM Db2 文档中的 CREATE BUFFERPOOL 语句

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

    db2 "connect to rdsadmin user master_user using master_password"
  2. 通过调用 rdsadmin.create_bufferpool 创建缓冲池。有关更多信息,请参阅 rdsadmin.create_bufferpool

    db2 "call rdsadmin.create_bufferpool( 'database_name', 'buffer_pool_name', buffer_pool_size, 'immediate', 'automatic', page_size, number_block_pages, block_size)"

更改缓冲池

要更改 RDS for Db2 数据库的缓冲池,请调用 rdsadmin.alter_bufferpool 存储过程。有关更多信息,请参阅 IBM Db2 文档中的 ALTER BUFFERPOOL 语句

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

    db2 "connect to rdsadmin user master_username using master_password"
  2. 通过调用 rdsadmin.alter_bufferpool 更改缓冲池。有关更多信息,请参阅 rdsadmin.alter_bufferpool

    db2 "call rdsadmin.alter_bufferpool( 'database_name', 'buffer_pool_name', buffer_pool_size, 'immediate', 'automatic', change_number_blocks, number_block_pages, block_size)"

删除缓冲池

要删除 RDS for Db2 数据库的缓冲池,请调用 rdsadmin.drop_bufferpool 存储过程。有关更多信息,请参阅 IBM Db2 文档中的删除缓冲池

重要

确保没有为要删除的缓冲池分配任何表空间。

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

    db2 "connect to rdsadmin user master_user using master_password"
  2. 通过调用 rdsadmin.drop_bufferpool 删除缓冲池。有关更多信息,请参阅 rdsadmin.drop_bufferpool

    db2 "call rdsadmin.drop_bufferpool( 'database_name', 'buffer_pool_name')"

刷新缓冲池

您可以刷新缓冲池以强制实施检查点,以便 RDS for Db2 将页面从内存写入存储。

注意

您不需要刷新缓冲池。Db2 在提交事务之前同步写入日志。脏页可能仍在缓冲池中,但是 Db2 会将它们异步写入存储。即使系统意外关闭,当您重启数据库时,Db2 也会自动执行崩溃恢复。在崩溃恢复期间,Db2 将已提交的更改写入数据库,或者回滚对未提交事务的更改。

刷新缓冲池
  1. 使用 RDS for Db2 数据库实例的主用户名和主密码连接到您的 Db2 数据库。在以下示例中,用您自己的信息替换 rds_database_aliasmaster_usernamemaster_password

    db2 connect to rds_database_alias user master_username using master_password
  2. 刷新缓冲池。

    db2 flush bufferpools all