

# バッファプールの一般的なタスク
<a name="db2-managing-buffer-pools"></a>

RDS for Db2 データベースのバッファプールを作成、変更、または削除できます。バッファプールを作成、変更、または削除するには、マスターユーザーが使用できない上位レベルの `SYSADM` または `SYSCTRL` 権限が必要です。代わりに、Amazon RDS ストアドプロシージャを使用します。

バッファプールは、フラッシュすることもできます。

**Topics**
+ [バッファプールの作成](#db2-creating-buffer-pool)
+ [バッファプールの変更](#db2-altering-buffer-pool)
+ [バッファプールの削除](#db2-dropping-buffer-pool)
+ [バッファプールのフラッシュ](#db2-flushing-buffer-pools)

## バッファプールの作成
<a name="db2-creating-buffer-pool"></a>

RDS for Db2 データベースのバッファプールを作成するには、 `rdsadmin.create_bufferpool` ストアドプロシージャを呼び出します。詳細については、IBM Db2 ドキュメントの「[CREATE BUFFERPOOL statement](https://www.ibm.com/docs/en/db2/11.5?topic=statements-create-bufferpool)」を参照してください。

**バッファプールを作成するには**

1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、`rdsadmin` データベースに接続します。次の例で、*master\$1username* と *master\$1password* を自分の情報に置き換えます。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. `rdsadmin.create_bufferpool` を呼び出してバッファプールを作成します。詳細については、「[rdsadmin.create\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-create-buffer-pool)」を参照してください。

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

## バッファプールの変更
<a name="db2-altering-buffer-pool"></a>

RDS for Db2 データベースのバッファプールを変更するには、 `rdsadmin.alter_bufferpool` ストアドプロシージャを呼び出します。詳細については、IBM Db2 ドキュメントの「[ALTER BUFFERPOOL statement](https://www.ibm.com/docs/en/db2/11.5?topic=statements-alter-bufferpool)」を参照してください。

**バッファプールを変更するには**

1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、`rdsadmin` データベースに接続します。次の例で、*master\$1username* と *master\$1password* を自分の情報に置き換えます。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. `rdsadmin.alter_bufferpool` を呼び出してバッファプールを変更します。詳細については、「[rdsadmin.alter\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-alter-buffer-pool)」を参照してください。

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

## バッファプールの削除
<a name="db2-dropping-buffer-pool"></a>

RDS for Db2 データベースのバッファプールを削除するには、 `rdsadmin.drop_bufferpool` ストアドプロシージャを呼び出します。詳細については、IBM Db2 ドキュメントの「[Dropping buffer pools](https://www.ibm.com/docs/en/db2/11.5?topic=pools-dropping-buffer)」を参照してください。

**重要**  
削除するバッファプールにテーブルスペースが割り当てられていないことを確認します。

**バッファプールを削除するには**

1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、`rdsadmin` データベースに接続します。次の例で、*master\$1username* と *master\$1password* を自分の情報に置き換えます。

   ```
   db2 "connect to rdsadmin user master_username using master_password"
   ```

1. `rdsadmin.drop_bufferpool` を呼び出してバッファプールを削除します。詳細については、「[rdsadmin.drop\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-drop-buffer-pool)」を参照してください。

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

## バッファプールのフラッシュ
<a name="db2-flushing-buffer-pools"></a>

RDS for Db2 がメモリからストレージにページを書き込むように、バッファプールをフラッシュしてチェックポイントを強制できます。

**注記**  
バッファプールは、フラッシュする必要はありません。Db2 はトランザクションをコミットする前にログを同期的に書き込みます。ダーティページがまだバッファプールに存在している能性がありますが、Db2 はそれらを非同期的にストレージに書き込みます。システムが予期せずシャットダウンした場合でも、データベースを再起動すると、Db2 は自動的にクラッシュリカバリを実行します。クラッシュリカバリ中、Db2 はコミットされた変更をデータベースに書き込むか、コミットされていないトランザクションの変更をロールバックします。

**バッファプールをフラッシュするには**

1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、Db2 データベースに接続します。次の例で、*rds\$1database\$1alias*、*master\$1username*、*master\$1password* を自分の情報に置き換えます。

   ```
   db2 connect to rds_database_alias user master_username using master_password
   ```

1. バッファプールをフラッシュします。

   ```
   db2 flush bufferpools all
   ```