

# Amazon RDS for Db2 DB インスタンスの管理
<a name="db2-administering-db-instance"></a>

このトピックでは、Amazon RDS for Db2 DB インスタンスで実行する一般的な管理タスクついて説明します。一部のタスクは、すべての Amazon RDS DB インスタンスで同じです。その他のタスクは、RDS for Db2 に固有です。

以下のタスクは、すべての RDS データベースに共通です。標準の SQL クライアントを使用した RDS for Db2 データベースへの接続など、RDS for Db2 に固有のタスクもあります。


| タスク領域 | 関連資料 | 
| --- | --- | 
|  **インスタンスクラス、ストレージ、PIOPS** 本稼働インスタンスを作成する場合は、Amazon RDS でインスタンスクラス、ストレージタイプ、プロビジョンド IOPS がどのように機能するかを学習します。  |  [ DB インスタンスクラス](Concepts.DBInstanceClass.md) [Amazon RDS ストレージタイプ](CHAP_Storage.md#Concepts.Storage)  | 
|  **マルチ AZ 配置** 本稼働 DB インスタンスは、マルチ AZ 配置を使用する必要があります。マルチ AZ 配置は、DB インスタンスの拡張された可用性、データ堅牢性、および耐障害性を提供します。  |  [Amazon RDS でのマルチ AZ 配置の設定と管理](Concepts.MultiAZ.md)  | 
|  ** Amazon VPC** AWS アカウント にデフォルトの仮想プライベートクラウド (VPC) がある場合、DB インスタンスはデフォルトの VPC 内に自動的に作成されます。アカウントにデフォルト VPC がなく、DB インスタンスを VPC に作成する必要がある場合は、DB インスタンスを作成する前に VPC とサブネットグループを作成する場合があります。  |  [VPC 内の DB インスタンスの使用](USER_VPC.WorkingWithRDSInstanceinaVPC.md)  | 
|  **セキュリティグループ**: デフォルトでは、DB インスタンスはアクセスを防止するファイアウォールを使用します。DB インスタンスにアクセスするために、正しい IP アドレスとネットワーク構成を備えたセキュリティグループを作成する必要があります。  |  [セキュリティグループによるアクセス制御](Overview.RDSSecurityGroups.md)  | 
|  **パラメータグループ** RDS for Db2 DB インスタンスでは、`rds.ibm_customer_id` および `rds.ibm_site_id` パラメータを追加する必要があるため、DB インスタンスを作成する前にパラメータグループを作成します。DB インスタンスで特定の他のデータベースパラメータが必要な場合も、DB インスタンスを作成する前にこのパラメータグループに追加します。  |  [RDS for Db2 DB インスタンスのパラメータグループに IBM ID を追加する](db2-licensing.md#db2-licensing-options-byol-adding-ids) [Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)  | 
|  **オプショングループ** DB インスタンスに特定のデータベースオプションが必要になる場合は、DB インスタンスを作成する前にオプショングループを作成します。  |  [RDS for Db2 DB インスタンスのオプション](Db2.Options.md)  | 
|  **DB インスタンスへの接続** セキュリティグループを作成し、DB インスタンスに関連付けると、IBM Db2 CLP などの標準的な SQL クライアントアプリケーションを使用して DB インスタンスに接続できます。  |  [Db2 DB インスタンスへの接続](USER_ConnectToDb2DBInstance.md)  | 
|  **バックアップと復元** ストレージバックアップが自動的に作成されるように DB インスタンスを設定するか、ストレージスナップショットを手動で作成しておくと、そのバックアップまたはスナップショットからインスタンスを復元できます。  | [データのバックアップ、復元、エクスポート](CHAP_CommonTasks.BackupRestore.md) | 
|  **モニタリング** IBM Db2 Data Management Console を使用して RDS for Db2 DB インスタンスをモニタリングできます。 CloudWatch Amazon RDS メトリクス、イベント、および拡張モニタリングを使用することで、RDS for Db2 DB インスタンスをモニタリングすることもできます。  |  [IBM Db2 Data Management Console を使用して Amazon RDS for Db2 DB インスタンスに接続する](db2-connecting-with-ibm-data-management-console.md) [Amazon RDS コンソールでのメトリクスの表示](USER_Monitoring.md) [Amazon RDS イベントの表示](USER_ListEvents.md) [拡張モニタリングを使用した OS メトリクスのモニタリング](USER_Monitoring.OS.md)  | 
|  **ログファイル** RDS for Db2 DB インスタンスのログファイルにアクセスできます。  |  [Amazon RDS ログファイルのモニタリング](USER_LogAccess.md)  | 

**Topics**
+ [Amazon RDS for Db2 DB インスタンスの一般的なシステムタスクの実行](db2-performing-common-system-tasks-db-instances.md)
+ [Amazon RDS for Db2 DB インスタンスの一般的なデータベースタスクの実行](db2-performing-common-database-tasks-db-instances.md)

# Amazon RDS for Db2 DB インスタンスの一般的なシステムタスクの実行
<a name="db2-performing-common-system-tasks-db-instances"></a>

次に、Db2 を実行している Amazon RDS DB インスタンスで、システムに関連する特定の一般的なデータベース管理者タスクを実行する方法を示します。マネージド型サービスの操作性を実現するために、Amazon RDS では DB インスタンスへのシェルアクセスは提供していません。また、上位の権限を必要とする特定のシステムプロシージャやシステムテーブルへのアクセスが制限されます。

RDS for Db2 の権限の付与と取り消し、およびリモートデータベースへのアタッチの詳細については、以下のトピックを参照してください。

**トピック**
+ [RDS for Db2 の権限の付与と取り消し](db2-granting-revoking-privileges.md)
+ [リモート RDS for Db2 DB インスタンスへのアタッチ](db2-attaching-to-remote.md)

## カスタムデータベースエンドポイントの作成
<a name="db2-creating-custom-database-endpoint"></a>

Amazon RDS for Db2 に移行する場合、カスタムデータベースエンドポイント URL を使用すると、アプリケーションの変更を最小限に抑えることができます。例えば、`db2.example.com` を現在の DNS レコードとして使用すると、Amazon Route 53 に追加できます。Route 53 では、プライベートホストゾーンを使用して、現在の DNS データベースエンドポイントを RDS for Db2 データベースエンドポイントにマッピングできます。Amazon RDS データベースエンドポイントのカスタム `A` または `CNAME` レコードを追加するには、「[Amazon Route 53 デベロッパーガイド](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/registrar.html)」の「*Amazon Route 53 を使用したドメインの登録と管理*」を参照してください。

**注記**  
ドメインを Route 53 に移管できない場合は、DNS プロバイダーを使用して RDS for Db2 データベースエンドポイント URL の `CNAME` レコードを作成します。DNS プロバイダーのドキュメントを参照してください。

# RDS for Db2 の権限の付与と取り消し
<a name="db2-granting-revoking-privileges"></a>

ユーザーは、データベースにアタッチされているグループのメンバーシップを通じてデータベースへのアクセス権を取得します。

データベースへのアクセスを制御する権限を付与および取り消すには、次の手順に従います。

これらの手順では、ローカルマシンで実行されている IBM Db2 CLP を使用して RDS for Db2 DB インスタンスに接続します。ローカルマシンで実行されている RDS for Db2 DB インスタンスに接続するには、TCPIP ノードとデータベースを必ず分類してください。詳細については、「[IBM Db2 CLP を使用して Amazon RDS for Db2 DB インスタンスに接続する](db2-connecting-with-clp-client.md)」を参照してください。

**Topics**
+ [データベースへのユーザーアクセスの付与](#db2-granting-user-access)
+ [ユーザーのパスワードの変更](#db2-changing-user-password)
+ [ユーザーへのグループの追加](#db2-adding-group-to-user)
+ [ユーザーからのグループの削除](#db2-removing-groups-from-user)
+ [ユーザーの削除](#db2-removing-user)
+ [ユーザーの一覧表示](#db2-listing-users-database)
+ [ロールの作成](#db2-creating-role)
+ [ロールの付与](#db2-granting-role)
+ [ロールの取り消し](#db2-revoking-role)
+ [ロールの削除](#db2-dropping-role)
+ [データベース認可の付与](#db2-granting-dbadmin-auth)
+ [データベース認可の取り消し](#db2-revoking-dbadmin-auth)

## データベースへのユーザーアクセスの付与
<a name="db2-granting-user-access"></a>

**データベースへのユーザーアクセスを付与するには**

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

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

   このコマンドでは、次の例のような出力が生成されます。

   ```
   Database Connection Information
       
   Database server        = DB2/LINUXX8664 11.5.8.0
   SQL authorization ID   = ADMIN
   Local database alias   = RDSADMIN
   ```

1. `rdsadmin.add_user` を呼び出して、承認リストにユーザーを追加します。詳細については、「[rdsadmin.add\$1user](db2-sp-granting-revoking-privileges.md#db2-sp-add-user)」を参照してください。

   ```
   db2 "call rdsadmin.add_user(
       'username',
       'password',
       'group_name,group_name')"
   ```

1. (オプション) `rdsadmin.add_groups` を呼び出して、ユーザーにその他のグループを追加します。詳細については、「[rdsadmin.add\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-add-groups)」を参照してください。

   ```
   db2 "call rdsadmin.add_groups(
       'username',
       'group_name,group_name')"
   ```

1. ユーザーが利用できる権限を確認します。次の例で、*rds\$1database\$1alias*、*master\$1user*、 *master\$1password* を自分の情報に置き換えます。また、*username* をユーザーのユーザー名に置き換えます。

   ```
   db2 terminate
   db2 connect to rds_database_alias user master_user using master_password
   db2 "SELECT SUBSTR(AUTHORITY,1,20) AUTHORITY, D_USER, D_GROUP, D_PUBLIC
          FROM TABLE (SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID ('username', 'U') ) AS T
          ORDER BY AUTHORITY"
   ```

   このコマンドでは、次の例のような出力が生成されます。

   ```
   AUTHORITY            D_USER D_GROUP D_PUBLIC
   -------------------- ------ ------- --------
   ACCESSCTRL           N      N       N
   BINDADD              N      N       N
   CONNECT              N      N       N
   CREATETAB            N      N       N
   CREATE_EXTERNAL_ROUT N      N       N
   CREATE_NOT_FENCED_RO N      N       N
   CREATE_SECURE_OBJECT N      N       N
   DATAACCESS           N      N       N
   DBADM                N      N       N
   EXPLAIN              N      N       N
   IMPLICIT_SCHEMA      N      N       N
   LOAD                 N      N       N
   QUIESCE_CONNECT      N      N       N
   SECADM               N      N       N
   SQLADM               N      N       N
   SYSADM               *      N       *
   SYSCTRL              *      N       *
   SYSMAINT             *      N       *
   SYSMON               *      N       *
   WLMADM               N      N       N
   ```

1. ユーザーを追加したグループに RDS for Db2 ロール `ROLE_NULLID_PACKAGES`、`ROLE_TABLESPACES`、および `ROLE_PROCEDURES`を付与します。詳細については、「[Amazon RDS for Db2 のデフォルトロール](db2-default-roles.md)」を参照してください。
**注記**  
RDS for Db2 DB インスタンスは `RESTRICTIVE` モードで作成されています。このため、RDS for Db2 ロール `ROLE_NULLID_PACKAGES`、`ROLE_TABLESPACES`、および `ROLE_PROCEDURES` によって、IBM Db2 CLP および Dynamic SQL の `NULLID` パッケージに対する実行権限が付与されます。これらのロールによって、テーブルスペースに対するユーザー権限も付与されます。

   1. Db2 データベースに接続します。次の例で、*database\$1name*、*master\$1user*、*master\$1password* を自分の情報に置き換えます。

      ```
      db2 connect to database_name user master_user using master_password
      ```

   1. グループにロール `ROLE_NULLED_PACKAGES` を付与します。次の例では、*group\$1name* を、ロールを追加するグループの名前に置き換えます。

      ```
      db2 "grant role ROLE_NULLID_PACKAGES to group group_name"
      ```

   1. 同じグループにロール `ROLE_TABLESPACES` を付与します。次の例では、*group\$1name* を、ロールを追加するグループの名前に置き換えます。

      ```
      db2 "grant role ROLE_TABLESPACES to group group_name"
      ```

   1. 同じグループにロール `ROLE_PROCEDURES` を付与します。次の例では、*group\$1name* を、ロールを追加するグループの名前に置き換えます。

      ```
      db2 "grant role ROLE_PROCEDURES to group group_name"
      ```

1. ユーザーを追加したグループに `connect`、`bindadd`、`createtab`、および `IMPLICIT_SCHEMA` 権限を付与します。次の例では、*group\$1name* を、ユーザーを追加した 2 番目のグループの名前に置き換えます。

   ```
   db2 "grant usage on workload SYSDEFAULTUSERWORKLOAD to public"
   db2 "grant connect, bindadd, createtab, implicit_schema on database to group group_name"
   ```

1. ユーザーを追加する追加のグループごとに、ステップ 4～6 を繰り返します。

1. ユーザーとして接続して、テーブルを作成し、テーブルに値を挿入して、テーブルからデータを返すことで、ユーザーのアクセスをテストします。次の例では、*rds\$1database\$1alias*、*username* 、*password* をデータベースの名前およびユーザーのユーザー名とパスワードに置き換えます。

   ```
   db2 connect to rds_database_alias user username using password
   db2 "create table t1(c1 int not null)"
   db2 "insert into t1 values (1),(2),(3),(4)"
   db2 "select * from t1"
   ```

## ユーザーのパスワードの変更
<a name="db2-changing-user-password"></a>

**ユーザーのパスワードを変更するには**

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

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

1. `rdsadmin.change_password` を呼び出して、パスワードを変更します。詳細については、「[rdsadmin.change\$1password](db2-sp-granting-revoking-privileges.md#db2-sp-change-password)」を参照してください。

   ```
   db2 "call rdsadmin.change_password(
       'username',
       'new_password')"
   ```

## ユーザーへのグループの追加
<a name="db2-adding-group-to-user"></a>

**グループをユーザーに追加するには**

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

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

1. `rdsadmin.add_groups` を呼び出して、グループをユーザーに追加します。詳細については、「[rdsadmin.add\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-add-groups)」を参照してください。

   ```
   db2 "call rdsadmin.add_groups(
       'username',
       'group_name,group_name')"
   ```

## ユーザーからのグループの削除
<a name="db2-removing-groups-from-user"></a>

**ユーザーからグループを削除するには**

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

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

1. `rdsadmin.remove_groups` を呼び出して、グループを削除します。詳細については、「[rdsadmin.remove\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-remove-groups)」を参照してください。

   ```
   db2 "call rdsadmin.remove_groups(
       'username',
       'group_name,group_name')"
   ```

## ユーザーの削除
<a name="db2-removing-user"></a>

**承認リストからユーザーを削除するには**

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

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

1. `rdsadmin.remove_user` を呼び出して、承認リストからユーザーを削除します。詳細については、「[rdsadmin.remove\$1user](db2-sp-granting-revoking-privileges.md#db2-sp-remove-user)」を参照してください。

   ```
   db2 "call rdsadmin.remove_user('username')"
   ```

## ユーザーの一覧表示
<a name="db2-listing-users-database"></a>

承認リストにユーザーを一覧表示するには、 `rdsadmin.list_users` ストアドプロシージャを呼び出します。詳細については、「[rdsadmin.list\$1users](db2-sp-granting-revoking-privileges.md#db2-sp-list-users)」を参照してください。

```
db2 "call rdsadmin.list_users()"
```

## ロールの作成
<a name="db2-creating-role"></a>

[rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role) ストアドプロシージャを使用すると、ロールを作成できます。

**ロールを作成するには**

1. `rdsadmin` データベースに接続します。次の例で、*master\$1username* と *master\$1password* を自分の情報に置き換えます。

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

1. コンテンツを出力するように Db2 を設定します。

   ```
   db2 set serveroutput on 
   ```

1. ロールを作成します。詳細については、「[rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role)」を参照してください。

   ```
   db2 "call rdsadmin.create_role(
       'database_name',
       'role_name')"
   ```

1. コンテンツを出力しないように Db2 を設定します。

   ```
   db2 set serveroutput off
   ```

## ロールの付与
<a name="db2-granting-role"></a>

[rdsadmin.grant\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-grant-role) ストアドプロシージャを使用すると、ロール、ユーザー、またはグループにロールを割り当てることができます。

**ロールを割り当てるには**

1. `rdsadmin` データベースに接続します。次の例で、*master\$1username* と *master\$1password* を自分の情報に置き換えます。

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

1. コンテンツを出力するように Db2 を設定します。

   ```
   db2 set serveroutput on 
   ```

1. ロールを割り当てます。詳細については、「[rdsadmin.grant\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-grant-role)」を参照してください。

   ```
   db2 "call rdsadmin.grant_role(
       'database_name',
       'role_name',
       'grantee',
       'admin_option')"
   ```

1. コンテンツを出力しないように Db2 を設定します。

   ```
   db2 set serveroutput off
   ```

## ロールの取り消し
<a name="db2-revoking-role"></a>

[rdsadmin.revoke\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-revoke-role) ストアドプロシージャを使用すると、ロール、ユーザー、またはグループのロールを取り消すことができます。

**ロールを取り消すには**

1. `rdsadmin` データベースに接続します。次の例で、*master\$1username* と *master\$1password* を自分の情報に置き換えます。

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

1. ロールを取り消します。詳細については、「[rdsadmin.revoke\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-revoke-role)」を参照してください。

   ```
   db2 "call rdsadmin.revoke_role(
       ?,
       'database_name',
       'role_name',
       'grantee')"
   ```

## ロールの削除
<a name="db2-dropping-role"></a>

ロールを削除するには、[rdsadmin.drop\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-drop-role) ストアドプロシージャを使用します。

**ロールを削除するには**

1. `rdsadmin` データベースに接続します。次の例で、*master\$1username* と *master\$1password* を自分の情報に置き換えます。

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

1. ロールを削除します。詳細については、「[rdsadmin.drop\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-drop-role)」を参照してください。

   ```
   db2 "call rdsadmin.drop_role(
       ?,
       'database_name',
       'role_name')"
   ```

## データベース認可の付与
<a name="db2-granting-dbadmin-auth"></a>

`DBADM` 権限を持つマスターユーザーは、ロール、ユーザー、またはグループに `DBADM`、`ACCESSCTRL`、または `DATAACCESS` 権限を付与できます。

**データベース認可を付与するには**

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

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

1. `rdsadmin.dbadm_grant` を呼び出して、ユーザーアクセスを付与します。詳細については、「[rdsadmin.dbadm\$1grant](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-grant)」を参照してください。

   ```
   db2 "call rdsadmin.dbadm_grant(
       ?,
       'database_name,
       'authorization',
       'grantee')"
   ```

**ユースケースの例**

次の手順では、ロールの作成、ロールへの `DBADM` 承認の付与、ユーザーへのロールの割り当て、およびグループへのロールの付与について説明します。

****

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

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

1. `TESTDB` というデータベースの `PROD_ROLE` というロールを作成します。詳細については、「[rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role)」を参照してください。

   ```
   db2 "call rdsadmin.create_role(
       'TESTDB',
       'PROD_ROLE')"
   ```

1. `PROD_USER` というユーザーにロールを割り当てます。`PROD_USER` には、ロールを割り当てる管理者権限が付与されます。詳細については、「[rdsadmin.grant\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-grant-role)」を参照してください。

   ```
   db2 "call rdsadmin.grant_role(
       ?,
       'TESTDB',
       'PROD_ROLE',
       'USER PROD_USER',
       'Y')"
   ```

1. (オプション) 追加の権限または特権を指定します。次の例では、`FUNDPROD` というデータベースの `PROD_ROLE` という名前のロールに `DBADM` 権限を付与します。詳細については、「[rdsadmin.dbadm\$1grant](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-grant)」を参照してください。

   ```
   db2 "call rdsadmin.dbadm_grant(
       ?,
       'FUNDPROD',
       'DBADM',
       'ROLE PROD_ROLE')"
   ```

1. セッションを終了します。

   ```
   db2 terminate
   ```

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

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

1. ロールにさらに権限を追加します。

   ```
   db2 "grant connect, implicit_schema on database to role PROD_ROLE"
   ```

1. グループにロール `PROD_ROLE` を付与します。

   ```
   db2 "grant role PROD_ROLE to group PRODGRP"
   ```

グループ `PRODGRP` に属するユーザーは、`TESTDB` データベースへの接続、テーブルの作成、スキーマの作成などのアクションを実行できるようになりました。

## データベース認可の取り消し
<a name="db2-revoking-dbadmin-auth"></a>

`DBADM` 権限を持つマスターユーザーは、ロール、ユーザー、またはグループの `DBADM`、`ACCESSCTRL`、または `DATAACCESS` 権限を取り消すことができます。

**データベース認可の取り消すには**

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

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

1. `rdsadmin.dbadm_revoke` を呼び出して、ユーザーアクセスを取り消します。詳細については、「[rdsadmin.dbadm\$1revoke](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-revoke)」を参照してください。

   ```
   db2 "call rdsadmin.dbadm_revoke(
       ?,
       'database_name,
       'authorization',
       'grantee')"
   ```

# リモート RDS for Db2 DB インスタンスへのアタッチ
<a name="db2-attaching-to-remote"></a>

リモート RDS for Db2 DB インスタンスにアタッチし、`get snapshot` オペレーションを実行するには、次の手順を実行します。

**リモート RDS for Db2 DB インスタンスにアタッチするには**

1. クライアント側の IBM Db2 CLP セッションを実行します。RDS for Db2 DB インスタンスとデータベースのカタログ化については、「[IBM Db2 CLP を使用して Amazon RDS for Db2 DB インスタンスに接続する](db2-connecting-with-clp-client.md)」を参照してください。RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを書き留めます。

1. RDS for Db2 DB インスタンスにアタッチします。次の例では、*node\$1name*、*master\$1username*、*master\$1password* を、カタログ化した TCPIP ノード名と、RDS for Db2 DB インスタンスのマスターユーザー名およびマスターパスワードに置き換えます。

   ```
   db2 attach to node_name user master_username using master_password
   ```

リモート RDS for Db2 DB インスタンスにアタッチすると、次のコマンドやその他の `get snapshot` コマンドを実行できるようになります。詳細については、IBM Db2 ドキュメントの「[GET SNAPSHOT command](https://www.ibm.com/docs/en/db2/11.5?topic=commands-get-snapshot)」をご参照ください。

```
db2 list applications
db2 get snapshot for all databases
db2 get snapshot for database manager
db2 get snapshot for all applications
```

# Amazon RDS for Db2 DB インスタンスの一般的なデータベースタスクの実行
<a name="db2-performing-common-database-tasks-db-instances"></a>

Amazon RDS for Db2 DB インスタンスのデータベースに関連する特定の一般的な DBA タスクを実行することができます。マネージドサービスエクスペリエンスを提供するうえで、Amazon RDS は DB インスタンスへのシェルアクセスを提供していません。また、マスターユーザーは、`SYSADM`、`SYSMAINT`、または `SYSCTRL` 権限を必要とするコマンドやユーティリティを実行できません。

バッファプール、データベース、テーブルスペースの一般的なタスクについては、以下のトピックを参照してください。

**トピック**
+ [バッファプールの一般的なタスク](db2-managing-buffer-pools.md)
+ [一般的なデータベースタスク](db2-managing-databases.md)
+ [テーブルスペースの一般的なタスク](db2-managing-tablespaces.md)

# バッファプールの一般的なタスク
<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
   ```

# 一般的なデータベースタスク
<a name="db2-managing-databases"></a>

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

また、モニタリング、メンテナンス、データベースに関する情報の収集など、一般的な管理タスクを実行することもできます。

**Topics**
+ [データベースを作成する](#db2-creating-database)
+ [データベース設定の構成](#db2-configuring-database)
+ [データベースのパラメータの修正](#db2-modifying-db-parameters)
+ [ログの保持を設定](#db2-configuring-log-retention)
+ [ログ情報の一覧表示](#db2-listing-log-information)
+ [きめ細かなアクセス制御 (FGAC) の使用](#db2-using-fine-grained-access-control)
+ [データベースの非アクティブ化](#db2-deactivating-database)
+ [データベースのアクティブ化](#db2-activating-database)
+ [データベースの再アクティブ化](#db2-reactivating-database)
+ [データベースの削除](#db2-dropping-database)
+ [データベースのバックアップ](#db2-backing-up-database)
+ [Amazon S3 へのアーカイブログのコピー](#db2-copying-archive-logs-to-s3)
+ [データベースの復元](#db2-restoring-database)
+ [データベースのリスト化](#db2-listing-databases)
+ [データベースに関する情報の収集](#db2-collecting-info-db)
+ [データベースからのアプリケーションの強制削除](#db2-forcing-application-off-db)
+ [パフォーマンスレポートの生成](#db2-generating-performance-reports)

## データベースを作成する
<a name="db2-creating-database"></a>

RDS for Db2 DB インスタンスでデータベースを作成するには、`rdsadmin.create_database` ストアドプロシージャを呼び出します。詳細については、IBM Db2 ドキュメントの「[CREATE DATABASE コマンド](https://www.ibm.com/docs/en/db2/11.5?topic=commands-create-database)」を参照してください。

**注記**  
`db2_compatibility_vector` パラメータを変更する場合は、データベースを作成する前に変更します。詳細については、「[db2\$1compatibility\$1vector パラメータの設定](db2-known-issues-limitations.md#db2-known-issues-limitations-db2-compatibility-vector)」を参照してください。

**データベースを作成する**

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

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

1. `rdsadmin.create_database` を呼び出してデータベースを作成します。詳細については、「[rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database)」を参照してください。

   ```
   db2 "call rdsadmin.create_database(
       'database_name',
       'database_page_size',
       'database_code_set',
       'database_territory',
       'database_collation',
       'database_autoconfigure_str',
       'database_non-restrictive')"
   ```

1. (オプション) 作成する各データベースを、`rdsadmin.create_database` を呼び出して作成します。各 Db2 DB インスタンスには、最大 50 個のデータベースを含めることができます。詳細については、「[rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database)」を参照してください。

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

1. (オプション) 次のいずれかの方法を使用して、データベースが作成されたことを確認します。
   + `rdsadmin.list_databases` を呼び出します。詳細については、「[rdsadmin.list\$1databases](db2-user-defined-functions.md#db2-udf-list-databases)」を参照してください。
   + 次の SQL コマンドを実行します。

     ```
     db2 "select varchar(r.task_type,25) as task_type, r.database_name, 
         varchar(r.lifecycle,15) as lifecycle, r.created_at, r.database_name,
         varchar(bson_to_json(task_input_params),256) as input_params, 
         varchar(r.task_output,1024) as task_output 
         from table(rdsadmin.get_task_status(null,null,'create_database')) 
         as r order by created_at desc"
     ```

## データベース設定の構成
<a name="db2-configuring-database"></a>

RDS for Db2 DB インスタンスのデータベースの設定を構成するには、`rdsadmin.set_configuration` ストアドプロシージャを呼び出します。例えば、復元オペレーション中に作成するバッファまたはバッファマニピュレータの数を設定できます。

**データベース設定の構成方法**

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

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

1. (オプション) `rdsadmin.show_configuration` を呼び出して、現在の構成設定を確認します。詳細については、「[rdsadmin.show\$1configuration](db2-sp-managing-databases.md#db2-sp-show-configuration)」を参照してください。

   ```
   db2 "call rdsadmin.show_configuration('name')"
   ```

1. `rdsadmin.set_configuration` を呼び出して、データベースの設定を構成します。詳細については、「[rdsadmin.set\$1configuration](db2-sp-managing-databases.md#db2-sp-set-configuration)」を参照してください。

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

## データベースのパラメータの修正
<a name="db2-modifying-db-parameters"></a>

Amazon RDS for Db2 は、データベースマネージャー設定パラメータ、レジストリ変数、データベース設定パラメータの 3 種類のパラメータを使用します。最初の 2 つのタイプはパラメータグループで管理でき、最後のタイプは [rdsadmin.update\$1db\$1param](db2-sp-managing-databases.md#db2-sp-update-db-param) ストアドプロシージャで更新できます。

**注記**  
既存のパラメータの値のみ変更できます。RDS for Db2 がサポートしていない新しいパラメータを追加することはできません。

これらのパラメータとその値を変更する方法の詳細については、「[Amazon RDS for Db2 パラメータ](db2-supported-parameters.md)」を参照してください。

## ログの保持を設定
<a name="db2-configuring-log-retention"></a>

Amazon RDS が RDS for Db2 データベースのログファイルを保持する期間を設定するには、`rdsadmin.set_archive_log_retention` ストアドプロシージャを呼び出します。

**データベースのログの保持の設定方法**

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

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

1. (オプション) `rdsadmin.show_archive_log_retention` を呼び出して、現在の設定でログの保持を確認します。詳細については、「[rdsadmin.show\$1archive\$1log\$1retention](db2-sp-managing-databases.md#db2-sp-show-archive-log-retention)」を参照してください。

   ```
   db2 "call rdsadmin.show_archive_log_retention(
       ?,
       'database_name')"
   ```

1. `rdsadmin.set_archive_log_retention` を呼び出して、データベースのログ保持を設定します。詳細については、「[rdsadmin.set\$1archive\$1log\$1retention](db2-sp-managing-databases.md#db2-sp-set-archive-log-retention)」を参照してください。

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

## ログ情報の一覧表示
<a name="db2-listing-log-information"></a>

使用された合計ストレージサイズなど、アーカイブログファイルの詳細を一覧表示するには、`rdsadmin.list_archive_log_information` ストアドプロシージャを呼び出します。

**データベースのログ情報を一覧表示するには**

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

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

1. `rdsadmin.list_archive_log_information` を呼び出して、ログファイル情報のリストを返します。詳細については、「[rdsadmin.list\$1archive\$1log\$1information](db2-sp-managing-databases.md#db2-sp-list-archive-log-information)」を参照してください。

   ```
   db2 "call rdsadmin.list_archive_log_information(
       ?,            
       'database_name')"
   ```

## きめ細かなアクセス制御 (FGAC) の使用
<a name="db2-using-fine-grained-access-control"></a>

きめ細かなアクセス制御コマンドを使用して RDS for Db2 DB インスタンスのデータベース内のテーブルデータへのアクセスを制御するには、`rdsadmin.fgac_command` ストアドプロシージャを呼び出します。FGAC を使用して、ユーザーロールまたはデータ属性に基づいてデータへのアクセスを制限できます。例えば、データの種類や特定の医療プロバイダーに基づいて、患者の医療データへのアクセスを制限できます。

**きめ細かなアクセス制御を使用してデータベース内のテーブルデータへのアクセスを制御するには**

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

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

1. `rdsadmin.fgac_command` を呼び出して、さまざまなきめ細かなアクセス制御コマンドを実行します。詳細については、「[rdsadmin.fgac\$1commandパラメータ](db2-sp-managing-databases.md#db2-sp-fgac-command)」を参照してください。

   ```
   db2 "call rdsadmin.fgac_command(     
       ?,
       'database_name',
       'fgac_command')"
   ```

## データベースの非アクティブ化
<a name="db2-deactivating-database"></a>

RDS for Db2 DB インスタンスのデータベースを非アクティブ化するには、`rdsadmin.deactivate_database` ストアドプロシージャを呼び出します。

デフォルトでは、Amazon RDS は RDS for Db2 DB インスタンスでデータベースを作成するときに、データベースをアクティブ化します。使用頻度の低いデータベースを非アクティブ化して、メモリリソースを節約できます。

**データベースを非アクティブ化するには**

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

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

1. `rdsadmin.deactivate_database` を呼び出してデータベースを非アクティブ化します。詳細については、「[rdsadmin.deactivate\$1database](db2-sp-managing-databases.md#db2-sp-deactivate-database)」を参照してください。

   ```
   db2 "call rdsadmin.deactivate_database(    
       ?, 
       'database_name')"
   ```

## データベースのアクティブ化
<a name="db2-activating-database"></a>

スタンドアロン RDS for Db2 DB インスタンスのデータベースをアクティブ化するには、`rdsadmin.activate_database` ストアドプロシージャを呼び出します。

デフォルトでは、Amazon RDS は RDS for Db2 DB インスタンスでデータベースを作成するときに、データベースをアクティブ化します。使用頻度の低いデータベースを非アクティブ化してメモリリソースを節約したり、後でそのデータベースをアクティブ化したりできます。

**データベースをアクティブ化するには**

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

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

1. `rdsadmin.activate_database` を呼び出してデータベースをアクティブ化します。詳細については、「[rdsadmin.activate\$1database](db2-sp-managing-databases.md#db2-sp-activate-database)」を参照してください。

   ```
   db2 "call rdsadmin.activate_database(
       ?, 
       'database_name')"
   ```

## データベースの再アクティブ化
<a name="db2-reactivating-database"></a>

レプリカソースの RDS for Db2 DB インスタンスのデータベースを再アクティブ化するには、`rdsadmin.reactivate_database` ストアドプロシージャを呼び出します。データベース設定を変更した後、RDS for Db2 DB インスタンスのデータベースを再アクティブ化する必要が生じる場合があります。データベースを再アクティブ化する必要があるかどうかを判断するには、データベースに接続して `db2 get db cfg show detail` を実行します。

また、このストアドプロシージャを呼び出して、データベース設定を変更した後にスタンドアロン RDS for Db2 DB インスタンスのデータベースを再アクティブ化することもできます。または、まず `rdsadmin.deactivate_database` ストアドプロシージャを呼び出し、次に `rdsadmin.activate_database` ストアドプロシージャを呼び出して、スタンドアロン RDS for Db2 DB インスタンスのデータベースを再アクティブ化することもできます。詳細については、「[データベースの非アクティブ化](#db2-deactivating-database)」および「[データベースのアクティブ化](#db2-activating-database)」を参照してください。

**データベースを再アクティブ化するには**

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

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

1. `rdsadmin.reactivate_database` を呼び出してデータベースを再アクティブ化します。詳細については、「[rdsadmin.reactivate\$1database](db2-sp-managing-databases.md#db2-sp-reactivate-database)」を参照してください。

   ```
   db2 "call rdsadmin.reactivate_database(
       ?, 
       'database_name')"
   ```

## データベースの削除
<a name="db2-dropping-database"></a>

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

**注記**  
特定の条件が満たされた場合にのみ、ストアドプロシージャを呼び出してデータベースを削除できます。詳細については、「`rdsadmin.drop_database` の [使用に関する注意事項](db2-sp-managing-databases.md#db2-sp-drop-database-usage-notes)」を参照してください。

**データベースを削除するには**

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

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

1. `rdsadmin.drop_database` を呼び出してデータベースを削除します。詳細については、「[rdsadmin.drop\$1database](db2-sp-managing-databases.md#db2-sp-drop-database)」を参照してください。

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

## データベースのバックアップ
<a name="db2-backing-up-database"></a>

RDS for Db2 DB インスタンスのデータベースを Amazon S3 にバックアップするには、`rdsadmin.backup_database` ストアドプロシージャを呼び出します。詳細については、「IBM Db2 ドキュメント」の「[BACKUP DATABASE command](https://www.ibm.com/docs/en/db2/11.5.x?topic=commands-backup-database)」を参照してください。

**注記**  
このストアドプロシージャでは、Amazon S3 との統合を使用します。続行する前に、統合が設定されていることを確認してください。詳細については、「[Amazon RDS for Db2 DB インスタンスと Amazon S3 の統合](db2-s3-integration.md)」を参照してください。

**データベースをバックアップするには**

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

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

1. S3 の VPC ゲートウェイエンドポイントを作成します。S3 用の VPC ゲートウェイエンドポイントが既にある場合は、ステップ 4 に進みます。

   RDS for Db2 DB インスタンスから Amazon S3 と対話できるようにするには、プライベートサブネットが使用する VPC と Amazon S3 ゲートウェイエンドポイントが必要です。詳細については、「[ステップ 1: これにより、Amazon S3 用の VPC ゲートウェイエンドポイントを作成する](db2-troubleshooting.md#db2-creating-endpoint)」を参照してください。

1. S3 の VPC ゲートウェイエンドポイントを確認します。詳細については、「[ステップ 2: Amazon S3 の VPC ゲートウェイエンドポイントが存在することを確認する](db2-troubleshooting.md#db2-confirming-endpoint)」を参照してください。

1. `rdsadmin.backup_database` を呼び出してデータベースをバックアップします。詳細については、「[rdsadmin.backup\$1database](db2-sp-managing-databases.md#db2-sp-backup-database)」を参照してください。

   ```
   db2 "call rdsadmin.backup_database(
       ?,
       'database_name', 
       's3_bucket_name', 
       's3_prefix', 
       'backup_type',
       'compression_option',
       'util_impact_priority', 
       'num_files',
       'parallelism',
       'num_buffers')"
   ```

1. 接続を終了します。

   ```
   terminate
   ```

1. (オプション) バックアップファイルが *s3\$1prefix/dbi\$1resource\$1id/db\$1name* で Amazon S3 バケットにアップロードされたことを確認します。ファイルが *s3\$1prefix/dbi\$1resource\$1id/db\$1name* に表示されない場合は、データベースのバックアップのステータスを確認して問題を特定します。詳細については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。特定された問題を解決できない場合は、[AWS サポート](https://aws.amazon.com/premiumsupport/)にお問い合わせください。

1. (オプション) Amazon S3 へのバックアップが完了したら、バックアップを RDS for Db2 DB インスタンスまたはローカルサーバーなどの別の場所に復元できます。RDS for Db2 DB インスタンスに復元する方法については、「[データベースの復元](#db2-restoring-database)」を参照してください。

## Amazon S3 へのアーカイブログのコピー
<a name="db2-copying-archive-logs-to-s3"></a>

Db2 アーカイブログを RDS for Db2 DB インスタンスから Amazon S3 にコピーできるようになりました。`rdsadmin.backup_database` を使用して作成されたネイティブバックアップと組み合わせたアーカイブログは、別の RDS for Db2 インスタンスまたは EC2 データベースの特定の時点にデータベースを復元およびロールフォワードするために使用できます。

 この機能を設定する前に、ストアドプロシージャ `rdsadmin.backup_database` を使用して RDS for Db2 データベースを設定します。

この機能は RDS for Db2 DB インスタンスレベルで動作しますが、アーカイブログのコピーはデータベースごとに有効または無効にできます。

**Amazon S3 へのアーカイブログのコピーを設定するには**

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

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

1. [rdsadmin.set\$1configuration](db2-sp-managing-databases.md#db2-sp-set-configuration) を呼び出してアーカイブログの S3 へのバックアップを設定します。

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

    **例:** 

   ```
   db2 "call rdsadmin.set_configuration('ARCHIVE_LOG_COPY_TARGET_S3_ARN', 'arn:aws:s3:::my_rds_db2_backups/archive-log-copy/')"
   ```

1. `rdsadmin.enable_archive_log_copy` を呼び出して、データベースのアーカイブログのコピーを有効にします。*database\$1name* をデータベースの名前に置き換えます。

   ```
   db2 "call rdsadmin.enable_archive_log_copy(?, 'database_name')"
   ```

1. 同様に、データベースのアーカイブログのコピーを無効にするには、`rdsadmin.disable_archive_log_copy` を呼び出します。

   ```
   db2 "call rdsadmin.disable_archive_log_copy(?, 'database_name')"
   ```

1. `rdsadmin.list_databases` を呼び出して、アーカイブログのコピーステータスを確認します。

   ```
   db2 "select * from table(rdsadmin.list_databases())"
   ```

    **サンプル出力。**

   ```
   DATABASE_NAME   CREATE_TIME                DATABASE_UNIQUE_ID                                 ARCHIVE_LOG_RETENTION_HOURS ARCHIVE_LOG_COPY ARCHIVE_LOG_LAST_UPLOAD_FILE ARCHIVE_LOG_LAST_UPLOAD_FILE_TIME ARCHIVE_LOG_COPY_STATUS
   --------------- -------------------------- -------------------------------------------------- --------------------------- ---------------- ---------------------------- --------------------------------- ------------------------------
   RDSADMIN        2026-01-06-02.03.42.569069 RDSADMIN                                                                     0 DISABLED         -                            -                                 -
   FOO             2026-01-06-02.13.42.885650 F0D81C7E-7213-4565-B376-4F33FCF420E3                                         7 ENABLED          S0006536.LOG                 2026-01-28-19.15.10.000000        UPLOADING
   CODEP           2026-01-14-19.42.42.508476 106EEF95-6E30-4FFF-85AE-B044352DF095                                         0 DISABLED         -                            -                                 -
   ...
   ```

## データベースの復元
<a name="db2-restoring-database"></a>

Amazon S3 バケットのデータベースを RDS for Db2 DB インスタンスに移動するには、`rdsadmin.restore_database` ストアドプロシージャを呼び出します。詳細については、IBM Db2 ドキュメントの「[RESTORE DATABASE コマンド](https://www.ibm.com/docs/en/db2/11.5?topic=commands-restore-database)」を参照してください。

**データベースを復元するには**

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

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

1. (オプション) `rdsadmin.show_configuration` を呼び出して復元オペレーションを最適化するには、現在の設定を確認します。詳細については、「[rdsadmin.show\$1configuration](db2-sp-managing-databases.md#db2-sp-show-configuration)」を参照してください。

   ```
   db2 "call rdsadmin.show_configuration('name')"
   ```

1. `rdsadmin.set_configuration` を呼び出して、復元オペレーションを最適化するように設定します。これらの値を明示的に設定すると、大量のデータを含むデータベースを復元する際のパフォーマンスを向上させることができます。詳細については、「[rdsadmin.set\$1configuration](db2-sp-managing-databases.md#db2-sp-set-configuration)」を参照してください。

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

1. `rdsadmin.restore_database` を呼び出してデータベースを復元します。詳細については、「[rdsadmin.restore\$1database](db2-sp-managing-databases.md#db2-sp-restore-database)」を参照してください。

   ```
   db2 "call rdsadmin.restore_database(
       ?,
       'database_name', 
       's3_bucket_name', 
       's3_prefix', 
       restore_timestamp, 
       'backup_type')"
   ```

1. (オプション) データベースが復元されたことを、`rdsadmin.list_databases` を呼び出して確認し、そのデータベースがリストにあるかをチェックします。詳細については、「[rdsadmin.list\$1databases](db2-user-defined-functions.md#db2-udf-list-databases)」を参照してください。

1. `rdsadmin.rollforward_database` を呼び出して、データベースをオンラインにし、追加のトランザクションログを適用します。詳細については、「[rdsadmin.rollforward\$1database](db2-sp-managing-databases.md#db2-sp-rollforward-database)」を参照してください。

   ```
   db2 "call rdsadmin.rollforward_database(
       ?,
       'database_name',
       's3_bucket_name', 
       s3_prefix, 
       'rollforward_to_option', 
       'complete_rollforward')"
   ```

1. (オプション) [rdsadmin.rollforward\$1status](db2-sp-managing-databases.md#db2-sp-rollforward-status) ストアドプロシージャを呼び出して、`rdsadmin.rollforward_database` ストアドプロシージャのステータスを確認します。

1. 前のステップで `complete_rollforward` を `FALSE` に設定した場合は、`rdsadmin.complete_rollforward` を呼び出してデータベースをオンラインに戻す必要があります。詳細については、「[rdsadmin.complete\$1rollforward](db2-sp-managing-databases.md#db2-sp-complete-rollforward)」を参照してください。

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

1. (オプション) [rdsadmin.rollforward\$1status](db2-sp-managing-databases.md#db2-sp-rollforward-status) ストアドプロシージャを呼び出して、`rdsadmin.complete_rollforward` ストアドプロシージャのステータスを確認します。

## データベースのリスト化
<a name="db2-listing-databases"></a>

Amazon RDS for Db2 で実行中のすべてのデータベースを一覧表示するには、`rdsadmin.list_databases` ユーザー定義関数を呼び出します。

**データベースを一覧表示するには**

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

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

1. `rdsadmin.list_databases` を呼び出してデータベースを一覧表示します。詳細については、「[rdsadmin.list\$1databases](db2-user-defined-functions.md#db2-udf-list-databases)」を参照してください。

   ```
   db2 "select * from table(rdsadmin.list_databases())"
   ```

## データベースに関する情報の収集
<a name="db2-collecting-info-db"></a>

RDS for Db2 DB インスタンスのデータベースに関する情報を収集するには、`rdsadmin.db2pd_command` ストアドプロシージャを呼び出します。この情報は、データベースのモニタリングや問題のトラブルシューティングに役立ちます。

**データベースに関する情報を収集するには**

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

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

1. `rdsadmin.db2pd_command` を呼び出して、データベースに関する情報を収集します。詳細については、「[rdsadmin.db2pd\$1command](db2-sp-managing-databases.md#db2-sp-db2pd-command)」を参照してください。

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

## データベースからのアプリケーションの強制削除
<a name="db2-forcing-application-off-db"></a>

アプリケーションを RDS for Db2 DB インスタンスのデータベースから強制的にオフにするには、`rdsadmin.force_application` ストアドプロシージャを呼び出します。データベースのメンテナンスを実行する前に、アプリケーションをデータベースから強制的にオフにします。

**データベースからアプリケーションを強制的に削除するには**

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

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

1. `rdsadmin.force_application` を呼び出して、アプリケーションをデータベースから強制的に削除します。詳細については、「[rdsadmin.force\$1application](db2-sp-managing-databases.md#db2-sp-force-application)」を参照してください。

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

## パフォーマンスレポートの生成
<a name="db2-generating-performance-reports"></a>

プロシージャまたはスクリプトを使用して、パフォーマンスレポートを生成できます。手順の使用方法については、 IBM Db2 ドキュメントの「[DBSUMMARY procedure ‐ Generate a summary report of system and application performance metrics](https://www.ibm.com/docs/en/db2/11.5?topic=mm-dbsummary-procedure-generate-summary-report-system-application-performance-metrics)」を参照してください。

Db2 では `~sqllib/sample/perf` ディレクトリに `db2mon.sh` ファイルを含めます。スクリプトを実行すると、低コストで広範な SQL メトリクスレポートが生成されます。`db2mon.sh` ファイルおよび関連するスクリプトファイルをダウンロードするには、IBM db2-samples GitHubリポジトリの [https://github.com/IBM/db2-samples/tree/master/perf](https://github.com/IBM/db2-samples/tree/master/perf) ディレクトリを参照してください。

**スクリプトを使用してパフォーマンスレポートを生成するには**

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

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

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

   ```
   db2 "call rdsadmin.create_bufferpool('database_name','db2monbp',4096)"
   ```

1. `rdsadmin.create_tablespace` を呼び出して、`db2monbp` バッファプールを使用する `db2montmptbsp` という名前の一時テーブルスペースを作成します。詳細については、「[rdsadmin.create\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-create-tablespace)」を参照してください。

   ```
   db2 "call rdsadmin.create_tablespace('database_name',\
       'db2montmptbsp','db2monbp',4096,1000,100,'T')"
   ```

1. `db2mon.sh` スクリプトを開き、データベースへの接続に関する行を変更します。

   1. 次の行を削除します。

      ```
      db2 -v connect to $dbName
      ```

   1. 前のステップの行を次の行に置き換えます。次の例では、*master\$1username* と *master\$1password* を RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードに置き換えます。

      ```
      db2 -v connect to $dbName user master_username using master_password
      ```

   1. 次の行を削除します。

      ```
      db2 -v create bufferpool db2monbp
      
      db2 -v create user temporary tablespace db2montmptbsp bufferpool db2monbp
      
      db2 -v drop tablespace db2montmptbsp
      
      db2 -v drop bufferpool db2monbp
      ```

1. `db2mon.sh` スクリプトを実行して、指定した間隔でレポートを出力します。次の例では、*absolute\$1path* をスクリプトファイルへの完全なパスに、*rds\$1database\$1alias* をデータベースの名前に、*seconds* をレポート生成間の秒数 (0～3600) に置き換えます。

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

   **例**

   次の例は、スクリプトファイルが `perf` ディレクトリの下の `home` ディレクトリにあることを示しています。

   ```
   /home/db2inst1/sqllib/samples/perf/db2mon.sh rds_database_alias seconds | tee -a db2mon.out
   ```

1. `db2mon.sh` ファイル用に作成されたバッファプールとテーブルスペースを削除します。次の例では、*master\$1username* と *master\$1password* を RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードに置き換えます。*database\$1name* をデータベースの名前に置き換えます。詳細については、「[rdsadmin.drop\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-drop-tablespace)」および「[rdsadmin.drop\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-drop-buffer-pool)」を参照してください。

   ```
   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')"
   ```

## ストレージの管理
<a name="db2-managing-storage"></a>

Db2 は、自動ストレージを使用して、テーブル、インデックス、一時ファイルなどのデータベースオブジェクトの物理ストレージを管理します。自動ストレージを使用すると、ストレージ領域を手動で割り当て、使用されているストレージパスを追跡する代わりに、Db2 システムによって必要に応じてストレージパスが作成および管理されます。これにより、Db2 データベースの管理を簡素化し、人為的なミスによるエラーの可能性を減らすことができます。詳細については、IBM Db2 ドキュメントの「[Automatic storage](https://www.ibm.com/docs/en/db2/11.5?topic=overview-automatic-storage)」 (ストレージクラス) を参照してください。

RDS for Db2 では、論理ボリュームとファイルシステムの自動拡張により、ストレージサイズを動的に増やすことができます。詳細については、「[Amazon RDS DB インスタンスのストレージを使用する](USER_PIOPS.StorageTypes.md)」を参照してください。

# テーブルスペースの一般的なタスク
<a name="db2-managing-tablespaces"></a>

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

**Topics**
+ [テーブルスペースの作成](#db2-creating-tablespace)
+ [テーブルスペースの変更](#db2-altering-tablespace)
+ [テーブルスペースの名前変更](#db2-renaming-tablespace)
+ [テーブルスペースの削除](#db2-dropping-tablespace)
+ [テーブルスペースのステータスの確認](#db2-checking-tablespaces-procedure)
+ [テーブルスペースに関する詳細情報を返す](#db2-tablespaces-info-db2pd)
+ [テーブルスペースの状態とストレージグループの一覧表示](#db2-state-storage-group-tablespace-sql)
+ [テーブルのテーブルスペースの一覧表示](#db2-return-tablespaces-sql)
+ [テーブルスペースのコンテナの一覧表示](#db2-listing-tablespace-containers)

## テーブルスペースの作成
<a name="db2-creating-tablespace"></a>

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

**重要**  
テーブルスペースを作成するには、テーブルスペースを関連付ける同じページサイズのバッファプールが既に存在している必要があります。詳細については、「[バッファプールの一般的なタスク](db2-managing-buffer-pools.md)」を参照してください。

**テーブルスペースを作成するには**

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

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

1. `rdsadmin.create_tablespace` を呼び出してテーブルスペースを作成します。詳細については、「[rdsadmin.create\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-create-tablespace)」を参照してください。

   ```
   db2 "call rdsadmin.create_tablespace(
       'database_name', 
       'tablespace_name',
       'buffer_pool_name', 
       tablespace_initial_size, 
       tablespace_increase_size, 
       'tablespace_type')"
   ```

## テーブルスペースの変更
<a name="db2-altering-tablespace"></a>

RDS for Db2 データベースのテーブルスペースを変更するには、 `rdsadmin.alter_tablespace` ストアドプロシージャを呼び出します。このストアドプロシージャを使用すると、テーブルスペースのバッファプールを変更したり、ハイウォーターマークを下げたり、テーブルスペースをオンラインにしたりできます。詳細については、IBM Db2 ドキュメントの「[ALTER TABLESPACE statement](https://www.ibm.com/docs/en/db2/11.5?topic=statements-alter-tablespace)」を参照してください。

**テーブルスペースを変更するには**

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

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

1. `rdsadmin.alter_tablespace` を呼び出してテーブルスペースを変更します。詳細については、「[rdsadmin.alter\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-alter-tablespace)」を参照してください。

   ```
   db2 "call rdsadmin.alter_tablespace(
       'database_name', 
       'tablespace_name', 
       'buffer_pool_name', 
       buffer_pool_size, 
       tablespace_increase_size, 
       'max_size', 'reduce_max', 
       'reduce_stop', 
       'reduce_value', 
       'lower_high_water', 
       'lower_high_water_stop', 
       'switch_online')"
   ```

## テーブルスペースの名前変更
<a name="db2-renaming-tablespace"></a>

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

**テーブルスペース名を変更するには**

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

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

1. `rdsadmin.rename_tablespace` を呼び出してテーブルスペース名を変更します。テーブルスペース名に関する制限などの詳細については、「[rdsadmin.rename\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-rename-tablespace)」を参照してください。

   ```
   db2 "call rdsadmin.rename_tablespace(
       'database_name', 
       'source_tablespace_name',
       'target_tablespace_name')"
   ```

## テーブルスペースの削除
<a name="db2-dropping-tablespace"></a>

RDS for Db2 データベースのテーブルスペースを削除するには、 `rdsadmin.drop_tablespace` ストアドプロシージャを呼び出します。テーブルスペースを削除する前に、まずテーブル、インデックス、ラージオブジェクト (LOB) などのテーブルスペース内のオブジェクトを削除します。詳細については、IBM Db2 ドキュメントの「[Dropping table spaces](https://www.ibm.com/docs/en/db2/11.5?topic=spaces-dropping-table)」を参照してください。

**テーブルスペースを削除するには**

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

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

1. `rdsadmin.drop_tablespace` を呼び出してテーブルスペースを削除します。詳細については、「[rdsadmin.drop\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-drop-tablespace)」を参照してください。

   ```
   db2 "call rdsadmin.drop_tablespace(
       'database_name', 
       'tablespace_name')"
   ```

## テーブルスペースのステータスの確認
<a name="db2-checking-tablespaces-procedure"></a>

 `cast` 関数を使用して、テーブルスペースのステータスを確認できます。

**テーブルスペースのステータスを確認するには**

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 "select cast(tbsp_id as smallint) as tbsp_id,
   cast(tbsp_name as varchar(35)) as tbsp_name,
   cast(tbsp_type as varchar(3)) as tbsp_type,
   cast(tbsp_state as varchar(10)) as state,
   cast(tbsp_content_type as varchar(8)) as contents from table(mon_get_tablespace(null,-1)) order by tbsp_id"
   ```

## テーブルスペースに関する詳細情報を返す
<a name="db2-tablespaces-info-db2pd"></a>

`cast` 関数を使用して、1 人またはすべてのメンバーのテーブルスペースに関する情報を返すことができます。

**テーブルスペースに関する詳細情報を返すには**

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. 1 人のメンバーまたはすべてのメンバーについて、データベース内のすべてのテーブルスペースに関する詳細を返します。

   1 人のメンバーの場合:

   ```
   db2 "select cast(member as smallint) as member,
   cast(tbsp_id as smallint) as tbsp_id,
   cast(tbsp_name as varchar(35)) as tbsp_name,
   cast(tbsp_type as varchar(3)) as tbsp_type,
   cast(tbsp_state as varchar(10)) as state,
   cast(tbsp_content_type as varchar(8)) as contents,
   cast(tbsp_total_pages as integer) as total_pages,
   cast(tbsp_used_pages as integer) as used_pages,
   cast(tbsp_free_pages as integer) as free_pages,
   cast(tbsp_page_top as integer) as page_hwm,
   cast(tbsp_page_size as integer) as page_sz,
   cast(tbsp_extent_size as smallint) as extent_sz,
   cast(tbsp_prefetch_size as smallint) as prefetch_sz,
   cast(tbsp_initial_size as integer) as initial_size,
   cast(tbsp_increase_size_percent as smallint) as increase_pct,
   cast(storage_group_name as varchar(12)) as stogroup from table(mon_get_tablespace(null,-1)) order by member, tbsp_id "
   ```

   すべてのメンバーの場合:

   ```
   db2 "select cast(member as smallint) as member
   cast(tbsp_id as smallint) as tbsp_id,
   cast(tbsp_name as varchar(35)) as tbsp_name,
   cast(tbsp_type as varchar(3)) as tbsp_type,
   cast(tbsp_state as varchar(10)) as state,
   cast(tbsp_content_type as varchar(8)) as contents,
   cast(tbsp_total_pages as integer) as total_pages,
   cast(tbsp_used_pages as integer) as used_pages,
   cast(tbsp_free_pages as integer) as free_pages,
   cast(tbsp_page_top as integer) as page_hwm,
   cast(tbsp_page_size as integer) as page_sz,
   cast(tbsp_extent_size as smallint) as extent_sz,
   cast(tbsp_prefetch_size as smallint) as prefetch_sz,
   cast(tbsp_initial_size as integer) as initial_size,
   cast(tbsp_increase_size_percent as smallint) as increase_pct,
   cast(storage_group_name as varchar(12)) as stogroup from table(mon_get_tablespace(null,-2)) order by member, tbsp_id "
   ```

## テーブルスペースの状態とストレージグループの一覧表示
<a name="db2-state-storage-group-tablespace-sql"></a>

SQL ステートメントを実行することで、テーブルスペースの状態とストレージグループを一覧表示できます。

テーブルスペースの状態とストレージグループを一覧表示するには、次の SQL ステートメントを実行します。

```
db2 "SELECT varchar(tbsp_name, 30) as tbsp_name,
                  varchar(TBSP_STATE, 30) state,
                  tbsp_type,
                  varchar(storage_group_name,30) storage_group
FROM TABLE(MON_GET_TABLESPACE('',-2)) AS t"
```

## テーブルのテーブルスペースの一覧表示
<a name="db2-return-tablespaces-sql"></a>

SQL ステートメントを実行して、テーブルのテーブルスペースを一覧表示できます。

テーブルのテーブルスペースを一覧表示するには、次の SQL ステートメントを実行します。次の例では、*SCHEMA\$1NAME* と *TABLE\$1NAME* をスキーマとテーブルの名前に置き換えます。

```
db2 "SELECT 
   VARCHAR(SD.TBSPACE,30) AS DATA_SPACE,
   VARCHAR(SL.TBSPACE,30) AS LONG_SPACE,
   VARCHAR(SI.TBSPACE,30) AS INDEX_SPACE
 FROM 
   SYSCAT.DATAPARTITIONS P 
   JOIN SYSCAT.TABLESPACES SD ON SD.TBSPACEID = P.TBSPACEID 
   LEFT JOIN SYSCAT.TABLESPACES SL ON SL.TBSPACEID = P.LONG_TBSPACEID
   LEFT JOIN SYSCAT.TABLESPACES SI ON SI.TBSPACEID = P.INDEX_TBSPACEID
 WHERE
    TABSCHEMA = 'SCHEMA_NAME'
 AND TABNAME   = 'TABLE_NAME'"
```

## テーブルスペースのコンテナの一覧表示
<a name="db2-listing-tablespace-containers"></a>

`cast` コマンドを使用して、すべてのテーブルスペースコンテナまたは特定のテーブルスペースコンテナを一覧表示できます。

**テーブルスペースのテーブルスペースコンテナを一覧表示するには**

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 "select cast(member as smallint) as member,
   cast(tbsp_name as varchar(35)) as tbsp_name,
   cast(container_id as smallint) as id,
   cast(container_name as varchar(60)) as container_path, container_type as type from table(mon_get_container(null,-2)) order by member,tbsp_id,container_id"
   ```

   特定のテーブルスペースコンテナの場合:

   ```
   db2 "select cast(member as smallint) as member,
   cast(tbsp_name as varchar(35)) as tbsp_name,
   cast(container_id as smallint) as id,
   cast(container_name as varchar(60)) as container_path, container_type as type from table(mon_get_container('TBSP_1',-2)) order by member, tbsp_id,container_id"
   ```