

# Amazon RDS for Db2
<a name="CHAP_Db2"></a>

Amazon RDS は、以下のエディションの IBM Db2 を実行する DB インスタンスをサポートしています。
+ Db2 Standard Edition
+ Db2 Advanced Edition

Amazon RDS は、以下のバージョンの Db2 を実行する DB インスタンスをサポートしています。
+ Db2 11.5

マイナーバージョンのサポートの詳細については、「[Amazon RDS での Db2 のバージョン](Db2.Concepts.VersionMgmt.md)」を参照してください。

DB インスタンスを作成する前に、このユーザーガイドの「[Amazon RDS 環境のセットアップ](CHAP_SettingUp.md)」セクションの手順を完了してください。マスターユーザーを使用して DB インスタンスを作成すると、ユーザーは `DBADM` 権限を取得しますが、いくつかの制限があります。このユーザーは、追加のデータベースアカウントの作成などの管理タスクに使用します。`SYSADM`、`SYSCTRL`、`SYSMAINT` インスタンスレベルの権限、または `SECADM` データベースレベルの権限を使用することはできません。

以下を作成することができます。
+ DB インスタンス
+ DB スナップショット
+ ポイントインタイムの復元
+ 自動ストレージバックアップ 
+ 手動ストレージバックアップ

仮想プライベートクラウド (VPC)内で Db2 を実行する DB インスタンスを使用できます。また、さまざまなオプションを有効にして、Amazon RDS for Db2 DB インスタンスに機能を追加することもできます。Amazon RDS は、可用性の高いフェイルオーバーソリューションとして RDS for Db2 のマルチ AZ 配置をサポートしています。

**重要**  
マネージドサービスエクスペリエンスを提供するうえで、Amazon RDS は DB インスタンスへのシェルアクセスを提供していません。また、高度な特権を必要とする、特定のシステムプロシージャやテーブルへのアクセスも制限しています。データベースへのアクセスには、IBM Db2 CLP などの標準の SQL クライアントを使用します。ただし、Telnet またはセキュアシェル (SSH) を使用してホストに直接アクセスすることはできません。

**Topics**
+ [Amazon RDS における Db2 の概要](db2-overview.md)
+ [Amazon RDS for Db2 DB インスタンス作成の前提条件](db2-db-instance-prereqs.md)
+ [Amazon RDS for Db2 DB インスタンス上の複数のデータベース](db2-multiple-databases.md)
+ [Db2 DB インスタンスへの接続](USER_ConnectToDb2DBInstance.md)
+ [Amazon RDS for Db2 DB インスタンス接続の保護](Db2.Concepts.RestrictedDBAPrivileges.md)
+ [Amazon RDS for Db2 DB インスタンスの管理](db2-administering-db-instance.md)
+ [Amazon RDS for Db2 DB インスタンスと Amazon S3 の統合](db2-s3-integration.md)
+ [Amazon RDS for Db2 へのデータの移行](db2-migrating-data-to-rds.md)
+ [Amazon RDS for Db2 フェデレーション](db2-federation.md)
+ [Amazon RDS for Db2 のレプリカの使用](db2-replication.md)
+ [RDS for Db2 DB インスタンスのオプション](Db2.Options.md)
+ [Amazon RDS for Db2 の外部ストアドプロシージャ](db2-external-stored-procedures.md)
+ [Amazon RDS for Db2 の既知の問題と制限](db2-known-issues-limitations.md)
+ [Amazon RDS for Db2 ストアドプロシージャリファレンス](db2-stored-procedures.md)
+ [Amazon RDS for Db2 ユーザー定義関数リファレンス](db2-user-defined-functions.md)
+ [Amazon RDS for Db2 のトラブルシューティング](db2-troubleshooting.md)

# Amazon RDS における Db2 の概要
<a name="db2-overview"></a>

次のセクションを読むと、Amazon RDS における Db2 の概要を確認できます。

**Topics**
+ [Amazon RDS for Db2 の機能](Db2.Concepts.FeatureSupport.md)
+ [Amazon RDS での Db2 のバージョン](Db2.Concepts.VersionMgmt.md)
+ [Amazon RDS for Db2 のライセンスオプション](db2-licensing.md)
+ [Amazon RDS for Db2 インスタンスクラス](Db2.Concepts.General.InstanceClasses.md)
+ [Amazon RDS for Db2 のデフォルトロール](db2-default-roles.md)
+ [Amazon RDS for Db2 パラメータ](db2-supported-parameters.md)
+ [Amazon RDS 上の Db2 データベースの EBCDIC 照合](db2-ebcdic.md)
+ [Amazon RDS for Db2 DB インスタンスのローカルタイムゾーン](db2-time-zone.md)

# Amazon RDS for Db2 の機能
<a name="Db2.Concepts.FeatureSupport"></a>

Amazon RDS for Db2 は、IBM Db2 データベースのほとんどの特徴と機能をサポートしています。一部の機能には、制限付きのサポートまたは制限された特権があります。特定の Db2 バージョンの Db2 データベース機能の詳細については、「[IBM Db2 ドキュメント](https://www.ibm.com/docs/en/db2)」を参照してください。

[[What's New with Database?](https://aws.amazon.com/about-aws/whats-new/database/)] (データベースの新機能) ページで新しい Amazon RDS 機能をフィルタリングできます。[**製品**] で [**Amazon RDS**] を選択します。その後、**Db2 2023** などのキーワードを使用して検索できます。

**注記**  
以下のリストは完全なものではありません。

**Topics**
+ [RDS for Db2 でサポートされる機能](#db2-supported-features)
+ [RDS for Db2 でサポートされていない機能](#db2-unsupported-features)

## RDS for Db2 でサポートされる機能
<a name="db2-supported-features"></a>

RDS for Db2 は、IBM Db2 のネイティブな機能と Amazon RDS のコアとなる機能を含む機能をサポートしています。

### IBM Db2 にネイティブな機能
<a name="db2-supported-features-native-db2"></a>

RDS for Db2 では、次の Db2 データベース機能をサポートしています。
+ お客様が定義したコードセット、照合順序、ページサイズ、および地域を使用する標準データベースの作成。Amazon RDS [rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database) ストアドプロシージャを使用します。
+ ローカルユーザーおよびグループの追加、削除、または変更。[RDS for Db2 の権限の付与と取り消しに関するストアドプロシージャ](db2-sp-granting-revoking-privileges.md) のための Amazon RDS ストアドプロシージャを使用します。
+ Amazon RDS [rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role) ストアドプロシージャを使用したロールの作成。
+ 標準の行で構成されたテーブルのサポート。
+ 列で構成されたテーブルの分析ワークロードのサポート。
+ Oracle や MySQL などの Db2 の互換性機能を定義する機能。
+ Java ベースの外部ストアドプロシージャのサポート。
+ SSL/TLS を使用した転送中のデータ暗号化のサポート。
+ データベースのステータスのモニタリング (`ALIVE`、`DOWN`、`STORAGE_FULL`、`UNKNOWN`、`STANDBY_CONNECTABLE`)。
+ お客様が提供するオフラインまたはオンライン Linux (LE) データベースの復元。[RDS for Db2 のデータベースのストアドプロシージャ](db2-sp-managing-databases.md) のための Amazon RDS ストアドプロシージャを使用します。
+ データベースとセルフマネージド Db2 データベースの同期を維持するための、お客様が提供する Db2 アーカイブログの適用。[RDS for Db2 のデータベースのストアドプロシージャ](db2-sp-managing-databases.md) のための Amazon RDS ストアドプロシージャを使用します。
+ Db2 インスタンスレベルおよびデータベースレベルの監査のサポート。
+ 同種フェデレーションのサポート。
+ Amazon Simple Storage Service (Amazon S3) のデータファイルからテーブルをロードする機能。
+ `CONNECT`、`SYSMON`、`ACCESSCTRL`、`DATAACCESS`、`SQLADM`、`WLMADM`、`EXPLAIN`、`LOAD`、または `IMPLICIT_SCHEMA` などのユーザー、グループ、またはロールに付与されるアクセス承認。
+ 複数のデータベースの作成。
**注記**  
RDS for Db2 DB インスタンスには、最大 50 個のデータベースを含めることができます。詳細については、「[Amazon RDS for Db2 DB インスタンス上の複数のデータベース](db2-multiple-databases.md)」を参照してください。

### Amazon RDS のコアとなる機能
<a name="db2-supported-features-rds-core"></a>

RDS for Db2 は、次の Amazon RDS のコア機能をサポートしています。
+ DB インスタンスに割り当てるカスタムパラメータグループ
+ DB インスタンスの作成、変更、削除
+ セルフマネージド Db2 オフラインまたはオンライン Linux (LE) データベースバックアップの復元
**注記**  
バックアップを復元するには、DB インスタンスの作成時にデータベースの名前を指定しないでください。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
+ gp3 ストレージタイプ、io2 ストレージタイプ、io1 ストレージタイプのサポート。
+ Kerberos 認証での AWS Managed Microsoft AD の使用と、RDS for Db2 での LDAP グループ認可の使用。
+ 既存の Db2 インスタンスのセキュリティグループ、ポート、インスタンスタイプ、ストレージ、バックアップ保持期間、その他の設定の変更
+ DB インスタンスの削除保護
+ 暗号化されたバックアップを含む、クロスリージョンポイントインタイムリカバリ (PITR)。
+ ストレージの暗号化と保管時の暗号化に対する AWS Key Management Service (AWS KMS) の使用
+ 1 つのスタンバイによって高可用性を実現するマルチ AZ DB インスタンス
+ DB インスタンスの再起動
+ マスターパスワードの更新
+ 特定の時点への DB インスタンスの復元
+ ストレージレベルのバックアップを使用した DB インスタンスのバックアップと復元。
+ インスタンスの開始と停止
+ DB インスタンスのメンテナンス
+ 同一リージョンおよびクロスリージョンのスタンバイおよびリードレプリカ

## RDS for Db2 でサポートされていない機能
<a name="db2-unsupported-features"></a>

RDS for Db2 では、次の Db2 データベース機能はサポートしていません。
+ マスターユーザーの `SYSADM`、`SECADM`、`SYSMAINT` アクセス。
+ C、C\$1\$1、または Cobol で記述された外部ストアドプロシージャ。
+ 単一ホスト上の複数の Db2 DB インスタンス。
+ 認証用の外部 GSS-API プラグイン。
+ Db2 データベースをバックアップまたは復元するための外部サードパーティープラグイン。
+ IBM Db2 Warehouse などのマルチノードの超並列処理 (MPP)。
+ IBM Db2 pureScale.
+ RDS for Db2 の高可用性ディザスタリカバリ (HADR) の手動セットアップ。
**注記**  
Amazon RDS は、レプリカを通じて RDS for Db2 の HADR をサポートおよび管理します。詳細については、「[Amazon RDS for Db2 のレプリカの使用](db2-replication.md)」を参照してください。  
RDS for Db2 は、マルチ AZ 配置、クロスリージョン自動バックアップ、およびレプリケーションをサポートしています。詳細については、「[Amazon RDS のマルチ AZ DB インスタンスデプロイ](Concepts.MultiAZSingleStandby.md)」および「[別の AWS リージョン への自動バックアップのレプリケーション](USER_ReplicateBackups.md)」を参照してください。
+ ネイティブデータベースの暗号化。
+ Informix、Sybase、および Teradata への異種フェデレーション。詳細については、「[Amazon RDS for Db2 フェデレーション](db2-federation.md)」を参照してください。
+ データをバックアップおよび復元することで、フェンスされていないルーチンの作成と既存のフェンスされていないルーチンの移行。詳細については、「[フェンスされていないルーチン](db2-known-issues-limitations.md#db2-known-issues-limitations-non-fenced-routines)」を参照してください。
+ 新しい非自動ストレージテーブルスペースの作成。詳細については、「[移行中の非自動ストレージテーブルスペース](db2-known-issues-limitations.md#db2-known-issues-limitations-non-automatic-storage-tablespaces)」を参照してください。
+ 外部テーブル。

# Amazon RDS での Db2 のバージョン
<a name="Db2.Concepts.VersionMgmt"></a>

Db2 の場合、バージョン番号は *major.minor.build.revision* という形式になります。例えば、11.5.9.0.sb00000000.r1 です。バージョンの実装は Db2 の実装と一致します。

**major**  
メジャーバージョンの番号は、11.5 など、バージョン番号の整数と 1 つ目の小数の部分の両方です。メジャーバージョン番号が変更された場合 (11.5 から 12.1 へなど)、そのバージョン変更はメジャーと考えます。

**minor**  
マイナーバージョンの番号は、バージョン番号の 3 番目と 4 番目の部分です。例えば、バージョン番号が 11.5.9.0 の場合、9.0 です。9.0 の 9 など、3 番目の部分は、Db2 modpack を示します。9.0 の 0 など、4 番目の部分は、Db2 fixpack を示します。Db2 modpack または Db2 fixpack のいずれかが変更された場合 (バージョン 11.5.9.0 から 11.5.9.1、または 11.5.9.0 から 11.5.10.0 に変更された場合など)、バージョンの変更はマイナーと見なされますが、カタログテーブルの更新を行う必要があります (Amazon RDS はこのような例外を処理します)。

**ビルド**  
ビルド番号はバージョン番号の 5 番目の部分です。例えば、バージョン番号が 11.5.9.0.sb00000000 の場合、sb00000000 です。数値部分がすべてゼロであるビルド番号は、標準ビルドであることを示します。数値部分の一部がゼロではないビルド番号は、特別なビルドであることを示します。既存の Db2 バージョンのセキュリティ修正ビルドまたは特別なビルドがある場合、ビルド番号が変更されます。ビルド番号が変更された場合、Amazon RDS が新しいマイナーバージョンを自動的に適用したことも示しています。

**revision**  
リビジョン番号は、バージョン番号の 6 番目の部分です。例えば、バージョン番号が 11.5.9.0.sb00000000.r1 場合、r1 です。リビジョンは、既存の Db2 リリースに対する Amazon RDS リビジョンです。リビジョン番号が変更された場合、Amazon RDS が新しいマイナーバージョンを自動的に適用したことを示しています。

**Topics**
+ [Amazon RDS Db2 インスタンスのアップグレード管理](Db2.Concepts.VersionMgmt.Supported.md)
+ [Amazon RDS でサポートされている Db2 のメジャーバージョン](#Db2.Concepts.VersionMgmt.ReleaseCalendar)

# Amazon RDS Db2 インスタンスのアップグレード管理
<a name="Db2.Concepts.VersionMgmt.Supported"></a>

RDS でサポートされている Db2 マイナーバージョンの現在のリストを表示するには、次のいずれかのコマンドを使用します。

```
aws rds describe-db-engine-versions --engine db2-se
aws rds describe-db-engine-versions --engine db2-ae
```

Amazon RDS は、複数のデータベースリソースと AWS アカウントにわたるマイナーバージョンの自動アップグレードを管理するためのアップグレードロールアウトポリシーもサポートしています。詳細については、「[自動マイナーバージョンアップグレードの AWS Organizations アップグレードロールアウトポリシーの使用](RDS.Maintenance.AMVU.UpgradeRollout.md)」を参照してください。

新しい DB インスタンスを作成するときは、現在サポートされているいずれかの Db2 バージョンを指定できます。メジャーバージョン (Db2 11.5 など) と、指定したメジャーバージョンでサポートされている任意のマイナーバージョンを指定できます。バージョンを指定しない場合、Amazon RDS では、サポートされているいずれかのバージョン (通常最新のバージョン) がデフォルトで設定されます。マイナーバージョンではなく、メジャーバージョンを指定した場合、Amazon RDS では、指定されたメジャーバージョンの最新リリースにデフォルトで設定されます。サポートされているバージョンのリストと、新しく作成された DB インスタンスのデフォルトを表示するには、[https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) AWS Command Line Interface (AWS CLI) コマンドを使用します。

例えば、Amazon RDS for Db2 のサポートされているエンジンバージョンを一覧表示するには、次の AWS CLI コマンドを実行します。*[region]* (リージョン) をお客様の AWS リージョンに置き換えてください。

Linux、macOS、Unix の場合:

```
aws rds describe-db-engine-versions \
    --filters Name=engine,Values=db2-ae,db2-se \
    --query "DBEngineVersions[].{Engine:Engine, EngineVersion:EngineVersion, DBParameterGroupFamily:DBParameterGroupFamily}" \
    --region region
```

Windows の場合:

```
aws rds describe-db-engine-versions ^
    --filters Name=engine,Values=db2-ae,db2-se ^
    --query "DBEngineVersions[].{Engine:Engine, EngineVersion:EngineVersion, DBParameterGroupFamily:DBParameterGroupFamily}" ^
    --region region
```

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

```
[
    {
    "Engine": "db2-ae",
    "EngineVersion": "11.5.9.0.sb00000000.r1",
    "DBParameterGroupFamily": "db2-ae-11.5"
    },
    {
    "Engine": "db2-se",
    "EngineVersion": "11.5.9.0.sb00000000.r1",
    "DBParameterGroupFamily": "db2-se-11.5"
    }
]
```

デフォルトの Db2 バージョンは、AWS リージョンによって異なる場合があります。特定のマイナーバージョンで DB インスタンスを作成するには、DB インスタンスの作成中にマイナーバージョンを指定します。` describe-db-engine-versions` コマンドを実行すると、`db2-ae` および `db2-se` データベースエンジンの AWS リージョンのデフォルトバージョンを確認できます。次の例では、米国東部 (バージニア北部) の `db2-ae` のデフォルトバージョンを返します。

Linux、macOS、Unix の場合:

```
aws rds describe-db-engine-versions \
    --default-only --engine db2-ae \
    --query "DBEngineVersions[].{Engine:Engine, EngineVersion:EngineVersion, DBParameterGroupFamily:DBParameterGroupFamily}" \
    --region us-east-1
```

Windows の場合:

```
aws rds describe-db-engine-versions ^
    --default-only --engine db2-ae ^
    --query "DBEngineVersions[].{Engine:Engine, EngineVersion:EngineVersion, DBParameterGroupFamily:DBParameterGroupFamily}" ^
    --region us-east-1
```

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

```
[
    {
    "Engine": "db2-ae",
    "EngineVersion": "11.5.9.0.sb00000000.r1",
    "DBParameterGroupFamily": "db2-ae-11.5"
    }
]
```

Amazon RDS を使用して、Amazon RDS でサポートされている新しいメジャーバージョンに Db2 インスタンスをアップグレードするタイミングを制御します。特定の Db2 バージョンとの互換性を維持したり、本番稼動用環境にデプロイする新しいバージョンを事前にアプリケーションでテストしたり、自分のスケジュールに最適なタイミングでメジャーバージョンのアップグレードを実行したりできます。

マイナーバージョンの自動アップグレードを有効にすると、Amazon RDS によって、Amazon RDS でサポートされる新しい Db2 マイナーバージョンに DB インスタンスが自動的にアップグレードされます。このパッチ適用は、予定されたメンテナンスウィンドウ内で行われます。DB インスタンスを変更して、マイナーバージョンの自動アップグレードを有効または無効にすることができます。

Db2 バージョン 11.5.9.1 および 11.5.10.0 を除き、新しい Db2 マイナーバージョンへの自動アップグレードには、新しいビルドとリビジョンへの自動アップグレードが含まれます。11.5.9.1 および 11.5.10.0 の場合は、マイナーバージョンを手動でアップグレードします。

スケジュールされた自動アップグレードを解除している場合は、サポートされているマイナーバージョンリリースに手動でアップグレードできます。その手順はメジャーバージョンの更新の場合と同じです。詳細については、「[DB インスタンスのエンジンバージョンのアップグレード](USER_UpgradeDBInstance.Upgrading.md)」を参照してください。

## Amazon RDS でサポートされている Db2 のメジャーバージョン
<a name="Db2.Concepts.VersionMgmt.ReleaseCalendar"></a>

RDS for Db2 メジャーバージョンは、少なくとも対応する IBM バージョンの IBM サポート (基本サポート) 終了日までの標準サポートの対象となります。次の表に、テストおよびアップグレードのサイクルを計画するのに使用できる日付を示します。Amazon は、RDS for Db2 バージョンのサポートを当初発表よりも長く延長した場合、新しい日付を反映してこの表を更新するようにします。

次の日付を参考にすると、テストおよびアップグレードのサイクルを計画することができます。

**注記**  
月と年のみの日付はおおよその日付であり、確定後に正確な日付で更新されます。  
[describe-db-major-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-major-engine-versions.html) AWS CLI コマンドを実行するか、[DescribeDBMajorEngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBMajorEngineVersions.html) RDS API オペレーションを使用して、Db2 データベースのメジャーバージョンを表示できます。


| Db2 のメジャーバージョン  | IBM でのリリース日  | RDS リリース日  | IBM サポート終了 (Standard Edition および Advanced Edition) | IBM サポート (延長サポート) 終了日 | 
| --- | --- | --- | --- | --- | 
|  Db2 11.5  |  2019 年 6 月 27 日  |  2023 年 11 月 27 日  | 2027 年 4 月 30 日 |  2031 年 4 月 30 日  | 

# Amazon RDS for Db2 のライセンスオプション
<a name="db2-licensing"></a>

Amazon RDS for Db2 には、Bring-Your-Own-License (BYOL) と AWS Marketplace を介した Db2 ライセンスという 2 つのライセンスオプションがあります。

**Topics**
+ [Db2 の Bring-Your-Own-License (BYOL)](#db2-licensing-options-byol)
+ [AWS Marketplace 経由の Db2 ライセンス](#db2-licensing-options-marketplace)
+ [Db2 ライセンスの切り替え](#db2-edition-license-switching)

## Db2 の Bring-Your-Own-License (BYOL)
<a name="db2-licensing-options-byol"></a>

BYOL モデルでは、既存の Db2 データベースのライセンスを使用して Amazon RDS でデータベースをデプロイできます。実行する DB インスタンスクラスと Db2 データベースエディションに適切な Db2 データベースライセンスがあることを確認します。また、クラウドコンピューティング環境での IBM データベースソフトウェアのライセンス化に関する IBM のポリシーに従う必要があります。

**注記**  
Db2 データベースがインストールされているが実行されていないため、マルチ AZ DB インスタンスはコールドスタンバイです。スタンバイでは、リクエストの読み取り、実行、処理を行うことはできません。詳細については、IBM ウェブサイトの [IBM Db2 ライセンス情報]( https://www.ibm.com/support/customer/csol/terms/licenses#license-search)を参照してください。

このモデルでは、アクティブな IBM サポートアカウントを継続して使用できます。Db2 データベースのサービスリクエストについては、直接 IBM にお問い合わせください。ケースサポート付きの サポート アカウントをお持ちであれば、Amazon RDS の問題については サポート にお問い合わせいただけます。Amazon Web Services と IBM では、双方の組織からのサポートが必要なケースのために、マルチベンダーサポートプロセスを用意しています。

Amazon RDS は、Db2 Standard Edition および Db2 Advanced Edition の BYOL モデルをサポートしています。

**Topics**
+ [Db2 の Bring-Your-Own-License (BYOL) の IBM ID](#db2-prereqs-ibm-info)
+ [RDS for Db2 DB インスタンスのパラメータグループに IBM ID を追加する](#db2-licensing-options-byol-adding-ids)
+ [AWS License Manager との統合](#db2-lms-integration)

### Db2 の Bring-Your-Own-License (BYOL) の IBM ID
<a name="db2-prereqs-ibm-info"></a>

BYOL モデルでは、RDS for Db2 DB インスタンスを作成、変更、または復元するには、IBM Customer ID と IBM Site ID が必要です。RDS for Db2 DB インスタンスを作成する前に**、IBM Customer ID と IBM Site ID を使用してカスタムパラメータグループを作成する必要があります。詳細については、「[RDS for Db2 DB インスタンスのパラメータグループに IBM ID を追加する](#db2-licensing-options-byol-adding-ids)」を参照してください。複数の RDS for Db2 DB インスタンスは、同じ AWS アカウント または AWS リージョン で異なる IBM Customer IDs と IBM Site IDs を使用して実行できます。

**重要**  
お客様の IBM Customer ID と IBM Site ID でライセンスを検証できない場合、未検証のライセンスで実行されているすべての DB インスタンスは終了される場合があります。

IBM Db2 の新規のお客様は、まず [https://www.ibm.com/products/db2/pricing](https://www.ibm.com/products/db2/pricing) から Db2 ソフトウェアライセンスを購入する必要があります。Db2 ソフトウェアライセンスの購入後、IBM Customer ID と IBM Site ID が記載されたライセンス証書が IBM から届きます。

IBM Db2 の既存のお客様は、IBM のライセンス証書で IBM Customer ID と IBM Site ID を確認できます。

また、[IBM Passport Advantage Online](https://www.ibm.com/software/passportadvantage/pao_customer.html) アカウントで IBM Customer ID と IBM Site ID を探すこともできます。ログイン後、メインページまたはソフトウェアのダウンロードページで両方の IDs を表示します。

### RDS for Db2 DB インスタンスのパラメータグループに IBM ID を追加する
<a name="db2-licensing-options-byol-adding-ids"></a>

デフォルトのパラメータグループを変更することはできないため、カスタムパラメータグループを作成し、IBM Customer ID と IBM Site ID の値を含めるように変更する必要があります。パラメータグループの詳細については、「[Amazon RDS DB インスタンスの DB パラメータグループ](USER_WorkingWithDBInstanceParamGroups.md)」を参照してください。

**重要**  
RDS for Db2 DB インスタンスを作成する前に**、IBM Customer ID と IBM Site ID を使用してカスタムパラメータグループを作成する必要があります。

次の表のパラメータ設定を使用します。


| パラメータ | 値 | 
| --- | --- | 
|  `rds.ibm_customer_id`  |  `<your IBM Customer ID>`  | 
|  `rds.ibm_site_id`  |  `<your IBM Site ID>`  | 
|  `ApplyMethod`  |  `immediate`, `pending-reboot`  | 

これらのパラメータは動的です。つまり、これらのパラメータが変更されるとすぐに有効になるため、DB インスタンスを再起動する必要はありません。変更をすぐに有効にしたくない場合は、`ApplyMethod` を `pending-reboot` に設定し、メンテナンスウィンドウ中にこれらの変更が行われるようにスケジュールできます。

AWS マネジメントコンソール、AWS CLI、または Amazon RDS API を使用して、カスタムパラメータグループを作成および変更することができます。

#### コンソール
<a name="db2-licensing-options-adding-ids-console"></a>

**IBM Customer ID と IBM Site ID をパラメータグループに追加するには**

1. 新しい DB パラメータグループを作成します。DB パラメータグループの作成の詳細については、「[Amazon RDS での DB パラメータグループの作成](USER_WorkingWithParamGroups.Creating.md)」を参照してください。

1. 先ほど作成したパラメータグループを変更します。パラメータグループの変更の詳細については、「[Amazon RDS の DB パラメータグループのパラメータの変更](USER_WorkingWithParamGroups.Modifying.md)」を参照してください。

#### AWS CLI
<a name="db2-licensing-options-adding-ids-cli"></a>

**IBM Customer ID と IBM Site ID をパラメータグループに追加するには**

1. [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-parameter-group.html) コマンドを実行して、カスタムパラメータグループを作成します。

   次の必須パラメータを含めます。
   + `--db-parameter-group-name` - 作成するパラメータグループの名前。
   + `--db-parameter-group-family` - Db2 エンジンエディションとメジャーバージョン。有効な値: `db2-se-11.5`、`db2-ae-11.5`。
   + `--description` - このパラメータグループの説明。

   DB パラメータグループの作成の詳細については、「[Amazon RDS での DB パラメータグループの作成](USER_WorkingWithParamGroups.Creating.md)」を参照してください。

1. [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) コマンドを実行して、作成したカスタムパラメータグループのパラメータを変更します。

   次の必須パラメータを含めます。
   + `--db-parameter-group-name` – 作成したパラメータグループの名前。
   + `--parameters` – パラメータ名、値、およびパラメータ更新用のアプリケーションメソッドの配列。

   パラメータグループの変更の詳細については、「[Amazon RDS の DB パラメータグループのパラメータの変更](USER_WorkingWithParamGroups.Modifying.md)」を参照してください。

#### RDS API
<a name="db2-licensing-options-adding-ids-api"></a>

**IBM Customer ID と IBM Site ID をパラメータグループに追加するには**

1. DB パラメータグループを作成するには、Amazon RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBParameterGroup.html) オペレーションを使用します。

   以下の必須パラメータを含めます。
   + `DBParameterGroupName`
   + `DBParameterGroupFamily`
   + `Description`

   DB パラメータグループの作成の詳細については、「[Amazon RDS での DB パラメータグループの作成](USER_WorkingWithParamGroups.Creating.md)」を参照してください。

1. RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBParameterGroup.html) オペレーションを使用して、作成したカスタムパラメータグループのパラメータを変更します。

   以下の必須パラメータを含めます。
   + `DBParameterGroupName`
   + `Parameters`

   パラメータグループの変更の詳細については、「[Amazon RDS の DB パラメータグループのパラメータの変更](USER_WorkingWithParamGroups.Modifying.md)」を参照してください。

これで、DB インスタンスを作成し、カスタムパラメータグループを DB インスタンスにアタッチする準備が整いました。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」および「[Amazon RDS で DB パラメータグループを DB インスタンスに関連付ける](USER_WorkingWithParamGroups.Associating.md)」を参照してください。

### AWS License Manager との統合
<a name="db2-lms-integration"></a>

BYOL モデルで RDS の Db2 ライセンス使用状況のモニタリングを簡単に行えるよう、[AWS License Manager](https://aws.amazon.com/license-manager/) は RDS for Db2 と統合されています。License Manager は、仮想 CPU (vCPU) に基づいた RDS for Db2 エンジンエディションの追跡をサポートしています。また AWS Organizations で License Manager を使用して、すべての組織アカウントを一元管理することもできます。

RDS for Db2 DB インスタンスのライセンス使用状況を追跡するには、セルフマネージドライセンスを作成する必要があります。セルフマネージドライセンスを作成するには、AWS マネジメントコンソール、AWS License Manager CLI、および AWS License Manager API を使用します。または、CloudFormation および Terraform テンプレートを使用して、セルフマネージドライセンスの作成を自動化することもできます。

製品情報フィルターに一致する RDS for Db2 リソースは、セルフマネージドライセンスに自動的に関連付けられます。RDS for Db2 DB インスタンスの検出には最長で 24 時間かかる場合があります。

次の表は、RDS for Db2 のエンジンエディション製品情報フィルターとして使用可能な値を示しています。


| 値 | 説明 | 
| --- | --- | 
|  `db2-se`  |  Db2 Standard Edition  | 
|  `db2-ae`  |  Db2 Advanced Edition  | 

**Topics**
+ [用語](#db2-lms-integration-terms)
+ [AWS License Manager でのセルフマネージドライセンスの作成](#db2-lms-integration-tracking)
+ [AWS License Manager テンプレートを使用したセルフマネージドライセンス作成の自動化](#db2-lms-integration-templates)
+ [セルフマネージドライセンスを作成するための設定](#db2-settings-lms)

#### 用語
<a name="db2-lms-integration-terms"></a>

このページでは、Amazon RDS と AWS License Manager との統合について説明する際に、以下の用語を使用します。

セルフマネージドライセンス  
セルフマネージドライセンスは、AWS License Manager で使用される用語です。Amazon RDS コンソールは、ライセンスを AWS License Manager 設定として参照します。セルフマネージドライセンスにはエンタープライズ契約の条項に基づくライセンスルールが含まれています。作成したルールは、ライセンスを消費するコマンドのAWS処理方法を決定します。セルフマネージドライセンスを作成する際には、組織のコンプライアンスチームと密接に協力して、お使いのエンタープライズ契約を確認してください。詳細については、「[License Manager のセルフマネージドライセンス](https://docs.aws.amazon.com/license-manager/latest/userguide/license-configurations.html)」を参照してください。

#### AWS License Manager でのセルフマネージドライセンスの作成
<a name="db2-lms-integration-tracking"></a>

セルフマネージドライセンスを作成するには、AWS マネジメントコンソール、AWS License Manager CLI、および AWS License Manager API を使用します。

**注記**  
AWS マネジメントコンソール を使用して RDS for Db2 DB インスタンスを作成する場合は、ライセンスの名前を入力してセルフマネージドライセンスを作成します。次に、Amazon RDS は DB インスタンスをこのライセンスに関連付けます。(Amazon RDS コンソールでは、このライセンスは AWS License Manager 設定と呼ばれます。) AWS License Manager CLI または AWS License Manager API を使用して RDS for Db2 DB インスタンスを作成する場合は、まず次の手順でセルフマネージドライセンスを作成する必要があります。同じ状況は、RDS for Db2 DB インスタンスを特定の時点またはスナップショットから復元する場合にも当てはまります。

##### コンソール
<a name="db2-lms-integration.console"></a>

**RDS for Db2 DB インスタンスのライセンス使用状況を追跡するセルフマネージドライセンスを作成するには**

1. [https://console.aws.amazon.com/license-manager/](https://console.aws.amazon.com/license-manager/) に移動します。

1. セルフマネージドライセンスを作成する

   手順については、「**AWS License Manager ユーザーガイド」の「[セルフマネージドライセンスを作成する](https://docs.aws.amazon.com/license-manager/latest/userguide/create-license-configuration.html)」を参照してください。

   [**Product Information (製品情報)**] パネルで [**RDS Product Information Filter (RDS 製品情報フィルター)**] のルールを追加します。

   詳細については、*AWS License Manager API リファレンス*の「[ProductInformation](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_ProductInformation.html)」を参照してください。

##### AWS License Manager CLI
<a name="db2-lms-integration.cli"></a>

**注記**  
この手順では AWS License Manager CLI コマンドを使用します。

AWS CLI を使用してセルフマネージドライセンスを作成するには、AWS License Manager [create-license-configuration](https://docs.aws.amazon.com/cli/latest/reference/license-manager/create-license-configuration.html) コマンドを実行します。`--cli-input-json` または `--cli-input-yaml` のオプションを使用して、コマンドにオプションを渡します。

詳細については、「[セルフマネージドライセンスを作成するための設定](#db2-settings-lms)」を参照してください。

次のコマンドは、Db2 Standard Edition のセルフマネージドライセンスを作成します。

```
aws license-manager create-license-configuration --cli-input-json file://rds-db2-se.json
```

次の JSON は、前のコマンドで使用された `rds-db2-se.json` ファイルの内容です。

```
{
    "Name": "rds-db2-se",
    "Description": "RDS Db2 Standard Edition",
    "LicenseCountingType": "vCPU",
    "LicenseCountHardLimit": false,
    "ProductInformationList": [
        {
            "ResourceType": "RDS",
            "ProductInformationFilterList": [
                {
                    "ProductInformationFilterName": "Engine Edition",
                    "ProductInformationFilterValue": ["db2-se"],
                    "ProductInformationFilterComparator": "EQUALS"
                }
            ]
        }
    ]
}
```

製品情報の詳細については、*AWS License Manager ユーザーガイド*の「[リソースインベントリの自動検出](https://docs.aws.amazon.com/license-manager/latest/userguide/automated-discovery.html)」を参照してください。

`--cli-input` パラメータの詳細については、*AWS CLI ユーザーガイド*の「[JSON または YAML 入力ファイルからの AWS CLI スケルトンと入力パラメータの生成](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-skeleton.html)」を参照してください。

##### AWS License Manager API
<a name="db2-lms-integration.api"></a>

**注記**  
この手順では AWS License Manager API コマンドを使用します。

セルフマネージドライセンスを作成するには、次の必須パラメータで [https://docs.aws.amazon.com/license-manager/latest/APIReference/API_CreateLicenseConfiguration.html](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_CreateLicenseConfiguration.html) AWS License Manager API オペレーションを使用します。
+ `Name`
+ `LicenseCountingType` 
+ `ProductInformationList`
+ `ResourceType`
+ `ProductInformationFilterList`
+ `ProductInformationFilterName`
+ `ProductInformationFilterValue`
+ `ProductInformationFilterComparator`

 パラメータの詳細については、「」を参照してください[セルフマネージドライセンスを作成するための設定](#db2-settings-lms)

#### AWS License Manager テンプレートを使用したセルフマネージドライセンス作成の自動化
<a name="db2-lms-integration-templates"></a>

CloudFormation および Terraform テンプレートを使用して、セルフマネージドライセンスの作成を自動化できます。

次のサンプルテンプレート CloudFormation は、RDS for Db2 で Db2 Standard Edition のセルフマネージドライセンスを作成します。Db2 Advanced Edition のテンプレートの場合は、`Name`、`Description`、および `ProductInformationFilter` の値を更新します。

```
AWSTemplateFormatVersion: "2010-09-09"
Description: CloudFormation template to create a License Configuration for Db2 Standard Edition on RDS for Db2.

Resources:
  Db2LicenseConfiguration:
    Type: "AWS::LicenseManager::LicenseConfiguration"
    Properties:
      Name: "rds-db2-se"
      Description: "Db2 Standard Edition on RDS for Db2"
      LicenseCountingType: "vCPU"
      LicenseCountHardLimit: false
      ProductInformationList:
        - ResourceType: "RDS"
          ProductInformationFilterList:
            - ProductInformationFilterName: "Engine Edition"
              ProductInformationFilterValue:
                - "db2-se"
              ProductInformationFilterComparator: "EQUALS"
```

Amazon RDS での CloudFormation の使用に関する詳細は、「[AWS CloudFormation での Amazon RDS リソースの作成](creating-resources-with-cloudformation.md)」を参照してください。

次のサンプルテンプレート Terraform は、RDS for Db2 で Db2 Standard Edition のセルフマネージドライセンスを作成します。*us-east-1* を、ご利用の AWS リージョン に置き換えてください。Db2 Advanced Edition のテンプレートの場合は、`name`、`description`、および `product_information_filter` の値を更新します。

```
provider "aws" {
  region = "us-east-1"
}

resource "aws_licensemanager_license_configuration" "rds_db2_license_config" {
  name                     = "rds-db2-se"
  description              = "Db2 Standard Edition on RDS for Db2
  license_counting_type    = "vCPU"
  license_count_hard_limit = false

  product_information_list {
    resource_type = "RDS"

    product_information_filter {
      name       = "Engine Edition"
      comparator = "EQUALS"
      value      = ["db2-se"]
    }
  }
}
```

Terraform と Amazon RDS の使用の詳細については、*「AWS 規範ガイダンス*」の「[Using Terraform as an IaC tool for the AWS クラウド](https://docs.aws.amazon.com/prescriptive-guidance/latest/choose-iac-tool/terraform.html)」および「[Best practices for using the Terraform AWS Provider](https://docs.aws.amazon.com/prescriptive-guidance/latest/terraform-aws-provider-best-practices/introduction.html)」を参照してください。

#### セルフマネージドライセンスを作成するための設定
<a name="db2-settings-lms"></a>

次の表では、AWS License Manager CLI、AWS License Manager API、CloudFormation テンプレート、および Terraform テンプレートを使用してセルフマネージドライセンスを作成する際の設定の情報を示します。次の表のパラメータ名は、AWS License Manager API と CloudFormation テンプレートで使用される名前の形式で表示されます。


| パラメータ名 | データ型 | 必要 | 説明 | 
| --- | --- | --- | --- | 
|  Name  |  string  |  はい  |  ライセンス設定の名前。  | 
|  説明  |  string  |  いいえ  |  ライセンス設定の説明。  | 
|  LicenseCountingType  |  string  |  はい  |  ライセンスインベントリの追跡に使用されるディメンション。有効な値: `vCPU`。  | 
| LicenseCountHardLimit | boolean | いいえ | ハードライセンス適用とソフトライセンス適用のどちらを使用するかを示します。ハード制限を超えると、新しいインスタンスの起動がブロックされます。 | 
|  ProductInformationList  |  オブジェクトの配列  |  はい  | ライセンス設定の製品情報のリスト。 | 
|  ResourceType  |  string  |  はい  |  リソースタイプ。有効な値: `RDS`。  | 
|  ProductInformationFilterList  |  オブジェクトの配列  |  はい  |  ライセンス設定の製品情報フィルターのリスト。  | 
|  ProductInformationFilterName  |  string  |  はい  |  宣言されるフィルターのタイプの名前。有効な値: `Engine Edition`。  | 
|  ProductInformationFilterValue  |  文字列の配列  | はい |  フィルターをオンにする値。設定できる値は 1 つだけです。有効な値: `db2-se` または `db2-ae`。  | 
| ProductInformationFilterComparator |  string  |  はい  | ProductInformationFilterName の論理演算子。有効な値: EQUALS。 | 

## AWS Marketplace 経由の Db2 ライセンス
<a name="db2-licensing-options-marketplace"></a>

AWS Marketplace モデル経由の Db2 ライセンスでは、Db2 ライセンスのサブスクリプション料金が時間単位で請求されます。このモデルは、ライセンスを購入することなく、RDS for Db2 をすぐに使い始めることができます。

AWS Marketplace 経由で Db2 ライセンスを使用するには、使用する IBM Db2 エディションの AWS Marketplace サブスクリプションを有効にする必要があります。まだお持ちでない場合は、IBM Db2 エディションの[サブスクリプションを AWS Marketplace で購入する](#db2-marketplace-subscribing-registering)必要があります。

Amazon RDS は、IBM Db2 Standard Edition と IBM Db2 Advanced Edition の AWS Marketplace 経由 Db2 ライセンスをサポートしています。

**Topics**
+ [用語](#db2-marketplace-terminology)
+ [支払いと請求](#db2-marketplace-billing)
+ [Db2 Marketplace サブスクリプションの購入と IBM での登録](#db2-marketplace-subscribing-registering)
+ [プライベートオファーを受ける方法について](#db2-marketplace-private-offer)

### 用語
<a name="db2-marketplace-terminology"></a>

このページでは、Amazon RDS と AWS Marketplace との統合について説明する際に、以下の用語を使用します。

SaaS サブスクリプション  
AWS Marketplace では、従量制料金のライセンスモデル Software-as-a-Service (SaaS) 製品は、利用ベースのサブスクリプションモデルを採用しています。Db2 の販売者である IBM が使用量を確認し、ユーザーは使用した分の料金だけを支払います。

パブリックオファー  
パブリックオファーでは、ユーザーは AWS Marketplace 製品を AWS マネジメントコンソール から直接購入できます。

プライベートオファー  
プライベートオファーとは、販売者と購入者が AWS Marketplace での購入のカスタム料金とエンドユーザー使用許諾契約 (EULA) の条件を交渉できる購入プログラムのことです。

Db2 Marketplace 料金  
IBM が請求する Db2 ソフトウェアライセンスの使用料金。これらのサービス料金は AWS Marketplace で計算され、AWS 請求書の AWS Marketplace セクションに記載されます。

Amazon RDS 料金  
RDS for Db2 サービスに対して AWS が請求する料金。AWS Marketplace での Db2 ライセンスは除きます。料金は、使用された Amazon RDS に基づいて計算され、AWS 請求書に記載されます。

### 支払いと請求
<a name="db2-marketplace-billing"></a>

RDS for Db2 は AWS Marketplace と統合され、Db2 の時間単位の従量制料金ライセンスを提供します。Db2 Marketplace 料金には Db2 ソフトウェアのライセンス費用が含まれ、Amazon RDS 料金には RDS for Db2 DB インスタンスの使用料金が含まれます。料金の詳細については、「[Amazon RDS for Db2 の料金](https://aws.amazon.com/rds/db2/pricing/)」を参照してください。

これらの料金の請求を停止するには、RDS for Db2 DB インスタンスをすべて削除する必要があります。また、AWS Marketplace for Db2 ライセンスのサブスクリプションを削除することもできます。DB インスタンスを削除せずにサブスクリプションを削除した場合、Amazon RDS は DB インスタンスの使用に対して引き続き課金します。詳細については、「[DB インスタンスを削除する](USER_DeleteInstance.md)」を参照してください。

AWS Marketplace 経由の Db2 ライセンスを使用する RDS for Db2 DB インスタンスの料金の表示と管理は、[AWS Billing コンソール](https://console.aws.amazon.com/billing)で行うことができます。請求書には、AWS Marketplace 経由の Db2 ライセンスの使用料と Amazon RDS の使用料の 2 つの料金が含まれます。詳細については、「**AWS Billing and Cost Management ユーザーガイド」の「[Viewing your bill](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/getting-viewing-bill.html)」を参照してください。

### Db2 Marketplace サブスクリプションの購入と IBM での登録
<a name="db2-marketplace-subscribing-registering"></a>

AWS Marketplace 経由の Db2 ライセンスを使用するには、AWS マネジメントコンソール を使用して以下の 2 つのタスクを完了する必要があります。AWS CLI または RDS API を使用してこれらのタスクを完了することはできません。

**注記**  
AWS CLI または RDS API を使用して DB インスタンスを作成する場合は、まずこれら 2 つのタスクを完了する必要があります。

**Topics**
+ [タスク 1: AWS Marketplace で Db2 サブスクリプションを購入する](#db2-marketplace-subscribing)
+ [タスク 2: サブスクリプションを IBM に登録する](#db2-marketplace-registering)

#### タスク 1: AWS Marketplace で Db2 サブスクリプションを購入する
<a name="db2-marketplace-subscribing"></a>

AWS Marketplace で Db2 ライセンスを使用するには、Db2 の有効な AWS Marketplace サブスクリプションが必要です。サブスクリプションは特定の IBM Db2 エディションに関連付けられているため、使用する Db2 のエディションごと ([IBM Db2 Advanced Edition ](https://aws.amazon.com/marketplace/pp/prodview-w6m4yctzzy5fk)、[IBM Db2Standard Edition](https://aws.amazon.com/marketplace/pp/prodview-gbsgwalbkphv6)) に AWS Marketplace で Db2 のサブスクリプションを購入する必要があります。AWS Marketplace サブスクリプションの詳細については、「**AWS Marketplace 購入者ガイド」の「[SaaS 製品の料金モデル](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-saas-products.html#saas-pricing-models)」を参照してください。

[DB インスタンスの作成](USER_CreateDBInstance.md)を開始する**前に、AWS Marketplace で Db2 のサブスクリプションを購入することをお勧めします。

#### タスク 2: サブスクリプションを IBM に登録する
<a name="db2-marketplace-registering"></a>

AWS Marketplace で Db2 のサブスクリプションを購入したら、選択した Db2 サブスクリプションタイプの AWS Marketplace ページから IBM 注文の登録を完了します。AWS Marketplace ページで、**[購入オプションの表示]** を選択し、**[アカウントの設定]** を選択します。既存の IBM アカウントに登録することも、無料の IBM アカウントを作成することもできます。

### プライベートオファーを受ける方法について
<a name="db2-marketplace-private-offer"></a>

Db2 の AWS Marketplace プライベートオファーを IBM にリクエストできます。詳細については、「*AWS Marketplace 購入者ガイド*」の「[プライベートオファー](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-private-offers.html)」を参照してください。

**注記**  
AWS Organizations ユーザーであり、支払いアカウントとメンバーアカウントに発行されたプライベートオファーを受け取った場合は、以下の手順に従って、組織内の各アカウントで直接、Db2 にサブスクライブしてください。

**Db2 プライベートオファーを受けるには**

1. プライベートオファーが発行されたら、AWS Marketplace コンソールにサインインします。

1. Db2 プライベートオファーのリンクが記載されたメールを開きます。

1. リンクに従い、プライベートオファーに直接アクセスします。
**注記**  
正しいアカウントにログインする前にこのリンクをクリックすると、**[ページが見つかりません]** (404) というエラーが表示されます。

1. 利用規約を読みます。

1. 次に **[規約の受諾]** を選択します。
**注記**  
AWS Marketplace プライベートオファーが受け入れられない場合、AWS Marketplace からの Db2 サービス料は引き続きパブリック時間料金で請求されます。

1. オファーの詳細を確認するには、製品リストの **[詳細を表示]** を選択します。

手順を完了したら、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」の手順に従って、DB インスタンスを作成できます。**[ライセンス]** の [AWS マネジメントコンソール] で、**[AWS Marketplace から]** が選択されていることを確認します。

## Db2 ライセンスの切り替え
<a name="db2-edition-license-switching"></a>

RDS for Db2 では、Db2 ライセンスを切り替えることができます。例えば、Bring-Your-Own-License (BYOL) から始めて、後で AWS Marketplace 経由の Db2 ライセンスに切り替えることができます。

**重要**  
AWS Marketplace 経由の Db2 ライセンスに切り替える場合は、使用する IBM Db2 エディションの有効な AWS Marketplace サブスクリプションがあることを確認してください。有効なサブスクリプションがない場合は、まず Db2 エディション用に [AWS Marketplace で Db2 のサブスクリプションを購入](#db2-marketplace-subscribing-registering)してから、復元操作を行います。

### コンソール
<a name="db2-restore-pitr-console"></a>

**Db2 ライセンスを切り替えるには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**[Automated backups]** (自動バックアップ) を選択します。

   **[Current Region]** (現在のリージョン) タブに自動バックアップが表示されます。

1. 復元する DB インスタンスを選択します。

1. 「**アクション**」 で、「**特定時点への復元**」 を選択します。

   **[特定時点への復元]** ウィンドウが表示されます。

1. 「**Latest restorable time**」 を選択してできるだけ最新の時点に復元するか、「**カスタム**」 を選択して時刻を選択します。

   **[カスタム]** を選択した場合、インスタンスを復元する日時を入力します。
**注記**  
時刻は、協定世界時 (UTC) からのオフセットとしてローカルタイムゾーンで表示されます。例えば、UTC-5 は東部スタンダード時/中部夏時間です。

1. **[DB エンジン]** で、使用する Db2 ライセンスを選択します。

1. [**DB インスタンス識別子**] に、ターゲットが復元された DB インスタンスの名前を入力します。名前は一意である必要があります。

1. 必要に応じて、DB インスタンスクラス、ストレージ、ストレージのオートスケーリングを使用するかどうかなど、他のオプションを選択します。

   各設定の詳細については、「[DB インスタンスの設定](USER_CreateDBInstance.Settings.md)」を参照してください。

1. **[Restore to point in time]** (特定時点への復元) を選択します。

詳細については、「[Amazon RDS の DB インスタンスを特定の時点に復元する](USER_PIT.md)」を参照してください。

### AWS CLI
<a name="db2-restore-pitr-cli"></a>

Db2 ライセンスを切り替えるには、[restore-db-instance-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) コマンド を使用します。次の例では、最新のポイントインタイムバージョンの復元、IBM Db2 Advanced Edition への DB エンジンの設定、AWS Marketplace 経由の Db2 ライセンスへのライセンスモデルの設定を行います。

他の設定を指定できます。各設定の詳細については、「[DB インスタンスの設定](USER_CreateDBInstance.Settings.md)」を参照してください。

**Example**  
Linux、macOS、Unix の場合:  

```
1. aws rds restore-db-instance-to-point-in-time \
2.     --source-db-instance-identifier my_source_db_instance \
3.     --target-db-instance-identifier my_target_db_instance \
4.     --use-latest-restorable-time \
5.     --engine db2-ae \
6.     --license-model marketplace-license
```
Windows の場合:  

```
1. aws rds restore-db-instance-to-point-in-time ^
2.     --source-db-instance-identifier my_source_db_instance ^
3.     --target-db-instance-identifier my_target_db_instance ^
4.     --use-latest-restorable-time ^
5.     --engine db2-ae ^
6.     --license-model marketplace-license
```

詳細については、「[Amazon RDS の DB インスタンスを特定の時点に復元する](USER_PIT.md)」を参照してください。

### RDS API
<a name="db2-restore-pitr-api"></a>

Db2 ライセンスを切り替えるには、以下のパラメータを指定して Amazon RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html) オペレーションを呼び出します。
+ `SourceDBInstanceIdentifier`
+ `TargetDBInstanceIdentifier`
+ `RestoreTime`
+ `Engine`
+ `LicenseModel`

詳細については、「[Amazon RDS の DB インスタンスを特定の時点に復元する](USER_PIT.md)」を参照してください。

# Amazon RDS for Db2 インスタンスクラス
<a name="Db2.Concepts.General.InstanceClasses"></a>

DB インスタンスの計算とメモリの容量は、インスタンスクラスによって決まります。必要な DB インスタンスクラスは、処理能力とメモリの要件によって異なります。



## サポートされている RDS for Db2 インスタンスクラス
<a name="Db2.Concepts.InstanceClasses.Supported"></a>

サポートされる Amazon RDS for Db2 インスタンスクラスは、Amazon RDS DB インスタンスクラスのサブセットです。Amazon RDS インスタンスクラスの完全なリストについては、「[ DB インスタンスクラス](Concepts.DBInstanceClass.md)」を参照してください。

**Topics**
+ [Db2 Standard Edition のサポートされている RDS for Db2 インスタンスクラス](#Db2.Concepts.InstanceClasses.Supported.SE)
+ [Db2 Advanced Edition のサポートされている RDS for Db2 インスタンスクラス](#Db2.Concepts.InstanceClasses.Supported.AE)

### Db2 Standard Edition のサポートされている RDS for Db2 インスタンスクラス
<a name="Db2.Concepts.InstanceClasses.Supported.SE"></a>

次の表は、Db2 データベースバージョン 11.5.9.0 の Db2 Standard Edition でサポートされているすべてのインスタンスクラスのリストです。これらのインスタンスクラスは、Bring-Your-Own-License (BYOL) と Db2 ライセンス (AWS Marketplace 経由) の両方で使用できます。


| インスタンスクラスのタイプ | インスタンスクラス | 
| --- | --- | 
|  第 3 世代の Intel Xeon Scalable プロセッサ、SSD ストレージ、およびネットワーク最適化を搭載した汎用インスタンスクラス  |  db.m6idn.large–db.m6idn.8xlarge  | 
|  第 3 世代 Intel Xeon Scalable プロセッサを搭載した汎用インスタンスクラス  |  db.m6in.large–db.m6in.8xlarge  | 
|  汎用インスタンスクラス  |  db.m7i.large–db.m7i.8xlarge db.m6i.large–db.m6i.8xlarge  | 
|  第 3 世代 Intel Xeon Scalable プロセッサを搭載し、ローカル NVMe ベースの SSD を備えたメモリ最適化インスタンスクラス  |  db.x2iedn.xlarge  | 
|  第 3 世代 Intel Xeon Scalable プロセッサを搭載したメモリ最適化インスタンスクラス  |  db.r6idn.large–db.r6idn.4xlarge db.r6in.large–db.r6in.4xlarge  | 
|  メモリ最適化インスタンスクラス  |  db.r7i.large–db.r7i.8xlarge db.r6i.large–db.r6i.4xlarge  | 
|  バーストパフォーマンスインスタンスクラス  |  db.t3.small–db.t3.2xlarge  | 

### Db2 Advanced Edition のサポートされている RDS for Db2 インスタンスクラス
<a name="Db2.Concepts.InstanceClasses.Supported.AE"></a>

次の表は、Db2 データベースバージョン 11.5.9.0 の Db2 Advanced Edition でサポートされているすべてのインスタンスクラスのリストです。これらのインスタンスクラスは、Bring-Your-Own-License (BYOL) と Db2 ライセンス (AWS Marketplace 経由) の両方で使用できます。


| インスタンスクラスのタイプ | インスタンスクラス | 
| --- | --- | 
|  第 3 世代の Intel Xeon Scalable プロセッサ、SSD ストレージ、およびネットワーク最適化を搭載した汎用インスタンスクラス  |  db.m6idn.large–db.m6idn.32xlarge  | 
|  第 3 世代 Intel Xeon Scalable プロセッサを搭載した汎用インスタンスクラス  |  db.m6in.large–db.m6in.32xlarge  | 
|  汎用インスタンスクラス  |  db.m6i.large–db.m7i.48xlarge db.m7i.large–db.m7i.48xlarge  | 
|  第 3 世代 Intel Xeon Scalable プロセッサを搭載し、ローカル NVMe ベースの SSD を備えたメモリ最適化インスタンスクラス  |  db.x2iedn.xlarge–db.x2iedn.32xlarge  | 
|  第 3 世代 Intel Xeon Scalable プロセッサを搭載したメモリ最適化インスタンスクラス  |  db.r6idn.large–db.r6idn.32xlarge db.r6in.8xlarge–db.r6in.32xlarge  | 
|  メモリ最適化インスタンスクラス  |  db.r6i.large–db.r7i.48xlarge db.r7i.large–db.r7i.48xlarge  | 
|  バーストパフォーマンスインスタンスクラス  |  db.t3.small–db.t3.2xlarge  | 

# Amazon RDS for Db2 のデフォルトロール
<a name="db2-default-roles"></a>

RDS for Db2 は、次の 6 つのロールを追加し、`ADMIN` オプションで `master_user_role` に付与します。データベースがプロビジョニングされると、RDS for Db2 はマスターユーザーに `master_user_role` を付与します。マスターユーザーは、データベースに接続することで、ネイティブ `GRANT` ステートメントを持つ他のユーザー、グループ、またはロールにこれらのロールを付与できます。
+ **DBA** – RDS for Db2 は、この空のロールを `DATAACCESS` 承認で作成します。マスターユーザーは、このロールにさらに承認または権限を追加し、そのロールを他のユーザー、グループ、またはロールに付与できます。
+ **DBA\$1RESTRICTED** – RDS for Db2 は、この空のロールを作成します。マスターユーザーは、このロールに権限を追加でき、そのロールを他のユーザー、グループ、またはロールに付与できます。
+ **DEVELOPER** – RDS for Db2 は、この空のロールを `DATAACCESS` 承認で作成します。マスターユーザーは、このロールにさらに承認または権限を追加し、そのロールを他のユーザー、グループ、またはロールに付与できます。
+ **ROLE\$1NULLID\$1PACKAGES** – RDS for Db2 は、`CREATE DATABASE` の実行時に Db2 によってバインドされた `ALL NULLID` パッケージに対して、このロールに `EXECUTE` 権限を付与します。
+ **ROLE\$1PROCEDURES** – RDS for Db2 は、すべての `SYSIBM` プロシージャでこのロールに `EXECUTE` 権限を付与します。
+ **ROLE\$1TABLESPACES** – RDS for Db2 は、`CREATE DATABASE` コマンドによって作成されたテーブルスペースに対する `USAGE` 権限を付与します。

# Amazon RDS for Db2 パラメータ
<a name="db2-supported-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 DB インスタンスは Db2 データベースと DB インスタンスに固有の DB パラメータグループを使用します。このパラメータグループには、IBM Db2 データベースエンジンのパラメータ、特にデータベースマネージャーの設定パラメータとレジストリ変数が含まれます。パラメータグループの操作については、「[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。

RDS for Db2 データベース設定パラメータは、選択したストレージエンジンのデフォルト値に設定されます。Db2 パラメータに関する詳細については、IBM Db2 ドキュメントの「[Db2 database configuration parameters](https://www.ibm.com/docs/en/db2/11.5?topic=parameters-database-configuration)」を参照してください。

**Topics**
+ [パラメータグループのパラメータの表示](#db2-viewing-parameter-group-parameters)
+ [Db2 コマンドを使用したすべてのパラメータの表示](#db2-viewing-parameters-db2-commands)
+ [パラメータグループのパラメータの変更](#db2-modifying-parameter-group-parameters)
+ [Db2 コマンドによるデータベース設定パラメータの変更](#db2-modifying-parameters-db2-commands)

## パラメータグループのパラメータの表示
<a name="db2-viewing-parameter-group-parameters"></a>

データベースマネージャー設定パラメータとレジストリ変数は、パラメータグループで設定されます。AWS マネジメントコンソール、AWS CLI、または RDS API を使用して、特定の Db2 バージョンのデータベースマネージャー設定パラメータとレジストリ変数を表示できます。

### コンソール
<a name="db2-viewing-parameter-group-parameters-console"></a>

**DB パラメータグループのパラメータ値を表示するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**パラメータグループ**] を選択します。

   DB パラメータグループがリストに表示されます。

1. パラメータを一覧表示するパラメータグループの名前を選択します。

### AWS CLI
<a name="db2-viewing-parameter-group-parameters-cli"></a>

[https://docs.aws.amazon.com/cli/latest/reference/rds/describe-engine-default-parameters.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-engine-default-parameters.html) コマンドを実行して、Db2 バージョンのデータベースマネージャー設定パラメータとレジストリ変数を表示できます。`--db-parameter-group-family` オプションには、次の値のうち 1 つを指定します。
+ `db2-ae-11.5`
+ `db2-se-11.5`

例えば、Db2 Standard Edition 11.5 のパラメータを表示するには、次のコマンドを実行します。

```
aws rds describe-engine-default-parameters --db-parameter-group-family db2-se-11.5
```

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



```
{
    "EngineDefaults": {
        "Parameters": [
            {
                "ParameterName": "agent_stack_sz",
                "ParameterValue": "1024",
                "Description": "You can use this parameter to determine the amount of memory that is allocated by Db2 for each agent thread stack.",
                "Source": "engine-default",
                "ApplyType": "static",
                "DataType": "integer",
                "AllowedValues": "256-32768",
                "IsModifiable": false
            },
            {
                "ParameterName": "agentpri",
                "ParameterValue": "-1",
                "Description": "This parameter controls the priority given to all agents and to other database manager instance processes and threads by the operating system scheduler. This priority determines how CPU time is allocated to the database manager processes, agents, and threads relative to other processes and threads running on the machine.",
                "Source": "engine-default",
                "ApplyType": "static",
                "DataType": "integer",
                "AllowedValues": "1-99",
                "IsModifiable": false
            },
            ...
        ]
    }
}
```

Db2 Standard Edition 11.5 の変更可能なパラメータのみを一覧表示するには、次のコマンドを実行します。

Linux、macOS、Unix の場合:

```
aws rds describe-engine-default-parameters \
    --db-parameter-group-family db2-se-11.5 \
    --query 'EngineDefaults.Parameters[?IsModifiable==`true`].{ParameterName:ParameterName, DefaultValue:ParameterValue}'
```

Windows の場合:

```
aws rds describe-engine-default-parameters ^
    --db-parameter-group-family db2-se-11.5 ^
    --query 'EngineDefaults.Parameters[?IsModifiable==`true`].{ParameterName:ParameterName, DefaultValue:ParameterValue}'
```

### RDS API
<a name="db2-viewing-parameter-group-parameters-api"></a>

DB パラメータグループのパラメータ値を表示するには、以下の必須パラメータを指定して、[https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBParameters.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBParameters.html) オペレーションを使用します。
+ `DBParameterGroupName`

## Db2 コマンドを使用したすべてのパラメータの表示
<a name="db2-viewing-parameters-db2-commands"></a>

Db2 コマンドを使用して、データベースマネージャー設定パラメータ、データベース設定パラメータ、およびレジストリ変数の設定を表示できます。

**設定を表示するには**

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

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

1. サポートされている Db2 バージョンを検索します。

   ```
   db2 "select service_level, fixpack_num from table(sysproc.env_get_inst_info()) as instanceinfo"
   ```

1. 特定の Db2 バージョンのパラメータを表示します。
   + 次のコマンドを実行して、データベースマネージャー設定パラメータを表示します。

     ```
     db2 "select cast(substr(name,1,24) as varchar(24)) as name, case 
         when value_flags = 'NONE' then '' else value_flags end flags, 
         cast(substr(value,1,64) as varchar(64)) as current_value
         from sysibmadm.dbmcfg
         order by name asc with UR"
     ```
   + 次のコマンドを実行して、すべてのデータベース設定パラメータを表示します。

     ```
     db2 "select cast(substr(name,1,24) as varchar(24)) as name, case 
         when value_flags = 'NONE' then '' else value_flags end flags, 
         cast(substr(value,1,64) as varchar(64)) as current_value 
         from table(db_get_cfg(null)) order by name asc, member asc with UR"
     ```
   + 次のコマンドを実行して、現在設定されているレジストリ変数を表示します。

     ```
     db2 "select cast(substr(reg_var_name,1,50) as varchar(50)) as reg_var_name, 
         cast(substr(reg_var_value,1,50) as varchar(50)) as reg_var_value, 
         level from table(env_get_reg_variables(null)) 
         order by reg_var_name,member with UR"
     ```

## パラメータグループのパラメータの変更
<a name="db2-modifying-parameter-group-parameters"></a>

AWS マネジメントコンソール、AWS CLI、または RDS API を使用して、カスタムパラメータグループのデータベースマネージャー設定パラメータとレジストリ変数を変更できます。詳細については、「[Amazon RDS DB インスタンスの DB パラメータグループ](USER_WorkingWithDBInstanceParamGroups.md)」を参照してください。

### コンソール
<a name="db2-modifying-parameter-group-parameters-console"></a>

**データベースマネージャー設定パラメータとレジストリ変数を変更するには**

1. カスタムパラメータグループを作成します。DB パラメータグループの作成の詳細については、「[Amazon RDS での DB パラメータグループの作成](USER_WorkingWithParamGroups.Creating.md)」を参照してください。

1. そのカスタムパラメータグループ内のパラメータを変更します。パラメータグループの変更の詳細については、「[Amazon RDS の DB パラメータグループのパラメータの変更](USER_WorkingWithParamGroups.Modifying.md)」を参照してください。

### AWS CLI
<a name="db2-modifying-parameter-group-parameters-cli"></a>

**データベースマネージャー設定パラメータとレジストリ変数を変更するには**

1. [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-parameter-group.html) コマンドを実行して、カスタムパラメータグループを作成します。

   次の必須パラメータを含めます。
   + `--db-parameter-group-name` - 作成するパラメータグループの名前。
   + `--db-parameter-group-family` - Db2 エンジンエディションとメジャーバージョン。有効な値: `db2-se-11.5`、`db2-ae-11.5`。
   + `--description` - このパラメータグループの説明。

   DB パラメータグループの作成の詳細については、「[Amazon RDS での DB パラメータグループの作成](USER_WorkingWithParamGroups.Creating.md)」を参照してください。

1. [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) コマンドを実行して、作成したカスタムパラメータグループのパラメータを変更します。

   次の必須パラメータを含めます。
   + `--db-parameter-group-name` – 作成したパラメータグループの名前。
   + `--parameters` – パラメータ名、値、およびパラメータ更新用のアプリケーションメソッドの配列。

   パラメータグループの変更の詳細については、「[Amazon RDS の DB パラメータグループのパラメータの変更](USER_WorkingWithParamGroups.Modifying.md)」を参照してください。

### RDS API
<a name="db2-modifying-parameter-group-parameters-api"></a>

**データベースマネージャー設定パラメータとレジストリ変数を変更するには**

1. [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBParameterGroup.html) 操作を使用して、カスタム DB パラメータグループを作成します。

   以下の必須パラメータを含めます。
   + `DBParameterGroupName`
   + `DBParameterGroupFamily`
   + `Description`

   DB パラメータグループの作成の詳細については、「[Amazon RDS での DB パラメータグループの作成](USER_WorkingWithParamGroups.Creating.md)」を参照してください。

1. [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBParameterGroup.html) 操作を使用して、作成したカスタムパラメータグループのパラメータを変更します。

   以下の必須パラメータを含めます。
   + `DBParameterGroupName`
   + `Parameters`

   パラメータグループの変更の詳細については、「[Amazon RDS の DB パラメータグループのパラメータの変更](USER_WorkingWithParamGroups.Modifying.md)」を参照してください。

## Db2 コマンドによるデータベース設定パラメータの変更
<a name="db2-modifying-parameters-db2-commands"></a>

Db2 コマンドでデータベース設定パラメータを変更できます。

**データベース設定パラメータを変更するには**

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

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

1. `rdsadmin.update_db_param` ストアドプロシージャを呼び出して、データベース設定パラメータを変更します。詳細については、「[rdsadmin.update\$1db\$1param](db2-sp-managing-databases.md#db2-sp-update-db-param)」を参照してください。

   ```
   db2 "call rdsadmin.update_db_param(
       'database_name', 
       'parameter_to_modify', 
       'changed_value',
       'restart_database')"
   ```

# Amazon RDS 上の Db2 データベースの EBCDIC 照合
<a name="db2-ebcdic"></a>

Amazon RDS for Db2 は、Db2 データベースの EBCDIC 照合をサポートしています。データベースの EBCDIC 照合順序は、Amazon RDS [rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database) ストアドプロシージャを使用してデータベースを作成するときのみ指定できます。

AWS マネジメントコンソール、AWS CLI、または RDS API を使用して RDS for Db2 DB インスタンスを作成する場合、データベース名を指定できます。データベース名を指定すると、Amazon RDS は `SYSTEM` のデフォルトの照合を使用してデータベースを作成します。EBCDIC 照合を使用してデータベースを作成する必要がある場合は、DB インスタンスの作成時にデータベース名を指定しないでください。

RDS for Db2 のデータベースの照合は、作成時に設定され、変更できません。

**EBCDIC 照合を使用して Db2 データベースを作成するには**

1. RDS for Db2 DB インスタンスがない場合は、DB インスタンスを作成しても、データベース名は指定しないでください。AWS マネジメントコンソール、AWS CLI、または RDS API を使用して DB インスタンスを作成してください。詳細については、「[DB インスタンスの作成](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating)」を参照してください。

1. Db2 データベースを作成し、`rdsadmin.create_database` ストアドプロシージャを呼び出して照合オプションを EBCDIC 値に設定します。詳細については、「[rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database)」を参照してください。
**重要**  
ストアドプロシージャを使用してデータベースを作成した後で、照合順序を変更することはできません。データベースで別の照合順序を使用する場合は、[rdsadmin.drop\$1database](db2-sp-managing-databases.md#db2-sp-drop-database) ストアドプロシージャを呼び出してデータベースを削除します。次に、必要な照合順序でデータベースを作成します。

# Amazon RDS for Db2 DB インスタンスのローカルタイムゾーン
<a name="db2-time-zone"></a>

Db2 を実行している Amazon RDS DB インスタンスのタイムゾーンは、デフォルトで設定されます。デフォルトは協定世界時 (UTC) です。アプリケーションのタイムゾーンを一致させるには、代わりに DB インスタンスのタイムゾーンをローカルタイムゾーンに設定できます。

DB インスタンスを最初に作成するときにタイムゾーンを設定します。DB インスタンスを作成するには、AWS マネジメントコンソール、RDS API、または AWS CLI を使用できます。詳細については、「[DB インスタンスの作成](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating)」を参照してください。

DB インスタンスがマルチ AZ 配置の一部である場合は、フェイルオーバーしても、タイムゾーンは設定したローカルタイムゾーンのままになります。

DB インスタンスは、指定した時点に復元できます。時間は、ローカルタイムゾーンで表示されます。詳細については、「[Amazon RDS の DB インスタンスを特定の時点に復元する](USER_PIT.md)」を参照してください。

DB インスタンスでローカルタイムゾーンを設定する場合は、以下の制限事項があります。
+ 既存の Amazon RDS for Db2 DB インスタンスのタイムゾーンを変更することはできません。
+ あるタイムゾーンの DB インスタンスのスナップショットを、タイムゾーンの異なる DB インスタンスに復元することはできません。
+ あるタイムゾーンのバックアップファイルを、別のタイムゾーンに復元しないことを強くお勧めします。バックアップファイルを別のタイムゾーンに復元した場合は、タイムゾーンの変更によるクエリとアプリケーションへの影響を監査する必要があります。

## 利用可能なタイムゾーン
<a name="db2-time-zone-values"></a>

タイムゾーン設定には、以下の値を使用できます。


| ゾーン | タイムゾーン | 
| --- | --- | 
|  アフリカ  |  Africa/Cairo、Africa/Casablanca、Africa/Harare、Africa/Lagos、Africa/Luanda、Africa/Monrovia、Africa/Nairobi、Africa/Tripoli、Africa/Windhoek  | 
|  南北アメリカ大陸  |  America/Araguaina、America/Argentina/Buenos\$1Aires、America/Asuncion、America/Bogota、America/Caracas、America/Chicago、America/Chihuahua、America/Cuiaba、America/Denver、America/Detroit、America/Fortaleza、America/Godthab、America/Guatemala、America/Halifax、America/Lima、America/Los\$1Angeles、America/Manaus、America/Matamoros、America/Mexico\$1City、America/Monterrey、America/Montevideo、America/New\$1York、America/Phoenix、America/Santiago、America/Sao\$1Paulo、America/Tijuana、America/Toronto  | 
|  アジア  |  Asia/Amman、Asia/Ashgabat、Asia/Baghdad、Asia/Baku、Asia/Bangkok、Asia/Beirut、Asia/Calcutta、Asia/Damascus、Asia/Dhaka、Asia/Hong\$1Kong、Asia/Irkutsk、Asia/Jakarta、Asia/Jerusalem、Asia/Kabul、Asia/Karachi、Asia/Kathmandu、Asia/Kolkata、Asia/Krasnoyarsk、Asia/Magadan、Asia/Manila、Asia/Muscat、Asia/Novosibirsk、Asia/Rangoon、Asia/Riyadh、Asia/Seoul、Asia/Shanghai、Asia/Singapore、Asia/Taipei、Asia/Tehran、Asia/Tokyo、Asia/Ulaanbaatar、Asia/Vladivostok、Asia/Yakutsk、Asia/Yerevan  | 
|  大西洋  |  Atlantic/Azores、Atlantic/Cape\$1Verde  | 
|  オーストラリア  |  Australia/Adelaide、Australia/Brisbane、Australia/Darwin、Australia/Eucla、Australia/Hobart、Australia/Lord\$1Howe、Australia/Perth、Australia/Sydney  | 
|  ブラジル  |  Brazil/DeNoronha、Brazil/East  | 
|  カナダ  |  Canada/Newfoundland、Canada/Saskatchewan  | 
|  ETC  |  Etc/GMT-3  | 
|  欧州  |  Europe/Amsterdam、Europe/Athens、Europe/Berlin、Europe/Dublin、Europe/Helsinki、Europe/Kaliningrad、Europe/London、Europe/Madrid、Europe/Moscow、Europe/Paris、Europe/Prague、Europe/Rome、Europe/Sarajevo、Europe/Stockholm  | 
|  太平洋  |  Pacific/Apia、Pacific/Auckland、Pacific/Chatham、Pacific/Fiji、Pacific/Guam、Pacific/Honolulu、Pacific/Kiritimati、Pacific/Marquesas、Pacific/Samoa、Pacific/Tongatapu、Pacific/Wake  | 
|  米国  |  US/Alaska、US/Central、US/East-Indiana、US/Eastern、US/Pacific  | 
|  UTC  |  UTC  | 

# Amazon RDS for Db2 DB インスタンス作成の前提条件
<a name="db2-db-instance-prereqs"></a>

以下は DB インスタンスを作成するための前提条件です。

**Topics**
+ [管理者アカウント](#db2-prereqs-admin-account)
+ [その他の考慮事項](#db2-prereqs-additional-considerations)

## 管理者アカウント
<a name="db2-prereqs-admin-account"></a>

DB インスタンスを作成するときは、インスタンスの管理者アカウントを指定する必要があります。Amazon RDS は、このローカルデータベース管理者アカウントに `DBADM` 権限を付与します。

管理者アカウントには、次の特性、機能、および制限があります。
+ ローカルユーザーであり、AWS アカウント ではない。
+ `SYSADM`、`SYSMAINT`、 `SYSCTRL` など、Db2 インスタンスレベルの権限は持たない。
+ Db2 インスタンスを停止または開始することはできない。
+ DB インスタンスの作成時に名前を指定した場合、Db2 データベースを削除することはできない。
+ カタログテーブルとビューを含む Db2 データベースへのフルアクセス権を持つ。
+ Amazon RDS ストアドプロシージャを使用して、ローカルユーザーとグループを作成できる。
+ 権限と特権を付与および取り消すことができる。

管理者アカウントは以下のタスクを実行できます。
+ DB インスタンスの作成、変更、または削除。
+ DB スナップショットの作成。
+ ポイントインタイム復元の開始。
+ DB スナップショットの自動バックアップの作成。
+ DB スナップショットの手動バックアップの作成。
+ 他の Amazon RDS 機能の使用。

## その他の考慮事項
<a name="db2-prereqs-additional-considerations"></a>

DB インスタンスを作成する前に、以下を考慮してください。
+ 各 Amazon RDS for Db2 DB インスタンスは、最大 50 の Db2 データベースをホストできます。詳細については、「[Amazon RDS for Db2 DB インスタンス上の複数のデータベース](db2-multiple-databases.md)」を参照してください。
+ 初期データベース名
  + DB インスタンスの作成時にデータベース名を指定しないと、Amazon RDS はデータベースを作成しません。
  + 以下の状況では、データベース名を指定しないでください。
    + `db2_compatibility_vector` パラメータを変更してください。詳細については、「[db2\$1compatibility\$1vector パラメータの設定](db2-known-issues-limitations.md#db2-known-issues-limitations-db2-compatibility-vector)」を参照してください。
+ Bring-Your-Own-License (BYOL) モデルでは、まず IBM Customer ID と IBM Site ID を含むカスタムパラメータグループを作成する必要があります。詳細については、「[Db2 の Bring-Your-Own-License (BYOL)](db2-licensing.md#db2-licensing-options-byol)」を参照してください。
+ AWS Marketplace 経由の Db2 ライセンスモデルでは、使用する特定の IBM Db2 エディションの有効な AWS Marketplace サブスクリプションが必要です。まだお持ちでない場合は、使用する IBM Db2 エディションの [Db2 サブスクリプションを AWS Marketplace で購入する](db2-licensing.md#db2-marketplace-subscribing-registering)必要があります。詳細については、「[AWS Marketplace 経由の Db2 ライセンス](db2-licensing.md#db2-licensing-options-marketplace)」を参照してください。

# Amazon RDS for Db2 DB インスタンス上の複数のデータベース
<a name="db2-multiple-databases"></a>

[rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database) ストアドプロシージャを呼び出すことで、単一の RDS for Db2 DB インスタンスに複数のデータベースを作成できます。1 つの RDS for Db2 DB インスタンスに作成できるデータベースの数は 50 に制限されています。この数には、アクティブ状態と非アクティブ状態の両方のデータベースが含まれます。

**注記**  
2024 年 11 月 15 日より前に作成された RDS for Db2 DB インスタンスに複数のデータベースを作成する場合は、DB インスタンスを再起動して、複数のデータベースのサポートを有効にする必要があります。

デフォルトでは、Amazon RDS はデータベースの作成時にデータベースをアクティブ化します。メモリリソースを最適化するために、使用頻度の低いデータベースを非アクティブ化したり、必要に応じて後でアクティブ化したりできます。詳細については、「[データベースの非アクティブ化](db2-managing-databases.md#db2-deactivating-database)」および「[データベースのアクティブ化](db2-managing-databases.md#db2-activating-database)」を参照してください。

DB インスタンスでアクティブ化されるデータベースの数は、サーバーで使用可能なメモリリソースによって異なります。メモリリソースは、DB インスタンスクラスと、データベースに設定されたメモリの量によって異なります。DB インスタンスクラスの詳細については、「[ DB インスタンスクラス](Concepts.DBInstanceClass.md)」を参照してください。RDS for Db2 データベースのメモリを更新する方法については、「[rdsadmin.update\$1db\$1param](db2-sp-managing-databases.md#db2-sp-update-db-param)」を参照してください。

一般的なデータベースタスク、オペレーティングシステムの要件、バックアップなどの他の Amazon RDS オートメーションタスクには、メモリが 2 GB に設定された DB インスタンスクラスを選択することをお勧めします。DB インスタンスクラスの変更について詳しくは、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

さらに、IBM では、アクティブなデータベースごとに最低 1 GB のメモリを推奨しています。詳細については、IBM ドキュメントの[「ディスクとメモリの要件](https://www.ibm.com/docs/en/db2/11.5?topic=servers-disk-memory-requirements)」を参照してください。

DB インスタンスが保持できるアクティブなデータベースの最大数は、次の式を使用して計算できます。

```
Active database limit = (total server memory - 2 GB) / 1 GB 
```

次の例は、db.m6i.xlarge DB インスタンスクラスを持つ DB インスタンスのアクティブなデータベースの最大数を示しています。

```
Active database limit = (total server memory - 2 GB) / 1 GB 
                      = (16 GB - 2 GB) / 1 GB 
                      = 14 databases
```

クラッシュ後に Amazon RDS がデータベースを復旧すると、以前にアクティブだったデータベースがアクティブ化されます。DB インスタンスクラスをより低いメモリ設定に変更する場合など、特定のケースでは、DB インスタンス上のすべてのデータベースをアクティブ化するのに十分なメモリがない可能性があります。このような場合、Amazon RDS はデータベースを作成された順序でアクティブ化します。

**注記**  
メモリ不足のために Amazon RDS がアクティブ化できないデータベースは、非アクティブ化された状態のままになります。

# Db2 DB インスタンスへの接続
<a name="USER_ConnectToDb2DBInstance"></a>

Amazon RDS が Amazon RDS for Db2 DB インスタンスをプロビジョニングした後、標準の SQL クライアントアプリケーションを使用して DB インスタンスに接続できます。Amazon RDS はマネージドサービスであるため、`SYSADM`、`SYSCTRL`、`SECADM`、または `SYSMAINT` としてサインインすることはできません。

IBM Db2 CLP、IBM CLPPlus、DBeaver、または IBM Db2 Data Management Console を使用して、IBM Db2 データベースエンジンを実行している DB インスタンスに接続できます。

**注記**  
RDS for Db2 DB インスタンスに十分なメモリがない場合、Db2 データベースへの接続が失敗する可能性があります。詳細については、「[データベース接続エラー](db2-troubleshooting.md#db2-database-connection-error)」を参照してください。

**Topics**
+ [Amazon RDS for Db2 DB インスタンスのエンドポイントを発見する](db2-finding-instance-endpoint.md)
+ [IBM Db2 CLP を使用して Amazon RDS for Db2 DB インスタンスに接続する](db2-connecting-with-clp-client.md)
+ [IBM CLPPlus を使用して Amazon RDS for Db2 DB インスタンスに接続する](db2-connecting-with-ibm-clpplus-client.md)
+ [DBeaver を使用して Amazon RDS for Db2 DB インスタンスに接続する](db2-connecting-with-dbeaver.md)
+ [IBM Db2 Data Management Console を使用して Amazon RDS for Db2 DB インスタンスに接続する](db2-connecting-with-ibm-data-management-console.md)
+ [Amazon RDS for Db2 のセキュリティグループの考慮事項](db2-security-groups-considerations.md)

# Amazon RDS for Db2 DB インスタンスのエンドポイントを発見する
<a name="db2-finding-instance-endpoint"></a>

各 Amazon RDS DB インスタンスにはエンドポイントがあり、各エンドポイントに DB インスタンスの DNS 名とポート番号があります。SQL クライアントアプリケーションを使用して Amazon RDS for Db2 DB インスタンスに接続するには、DB インスタンスの DNS 名とポート番号が必要です。

AWS マネジメントコンソール コンソールまたは AWS CLI を使用して DB インスタンスのエンドポイントを確認できます。

## コンソール
<a name="db2-finding-instance-endpoint-console"></a>

**RDS for Db2 DB インスタンスのエンドポイントを確認するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1.  コンソールの右上で、DB インスタンスの AWS リージョン を選択します。

1. RDS for Db2 DB インスタンスの DNS 名とポート番号を見つけます。

   1. [**データベース**] を選択して DB インスタンスを一覧表示します。

   1. 詳細を表示する RDS for Db2 DB インスタンスの名前を選択します。

   1. **接続とセキュリティ** タブで、エンドポイントをコピーします。また、ポート番号を書き留めます。DB インスタンスに接続するには、エンドポイントとポート番号の両方が必要です。  
![\[エンドポイントとポートを示す、DB インスタンスの [接続とセキュリティ] タブ。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/db2-connectivity-security.png)

## AWS CLI
<a name="db2-finding-instance-endpoint-cli"></a>

RDS for Db2 DB インスタンスのエンドポイントを確認するには、[https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) コマンドを実行します。次の例では、*database-1* を DB インスタンスの名前に置き換えます。

Linux、macOS、Unix の場合:

```
aws rds describe-db-instances \
    --db-instance-identifier database-1 \
    --query 'DBInstances[].{DBInstanceIdentifier:DBInstanceIdentifier,DBName:DBName,Endpoint:Endpoint}' \
    --output json
```

Windows の場合:

```
aws rds describe-db-instances ^
    --db-instance-identifier database-1 ^
    --query 'DBInstances[].{DBInstanceIdentifier:DBInstanceIdentifier,DBName:DBName,Endpoint:Endpoint}' ^
    --output json
```

このコマンドでは、次の例のような出力が生成されます。出力の `Address` 行には DNS 名が含まれています。

```
[
    {
        "DBInstanceIdentifier": "database-1",
        "DBName": "DB2DB",
        "Endpoint": {
            "Address": "database-1.123456789012.us-east-2.amazonaws.com",
            "Port": 50000,
            "HostedZoneId": "Z2OC4A7DETW6VH"
        }
    }
]
```

# IBM Db2 CLP を使用して Amazon RDS for Db2 DB インスタンスに接続する
<a name="db2-connecting-with-clp-client"></a><a name="db2-downloading-package"></a>

IBM Db2 CLP などのコマンドラインユーティリティを使用して、Amazon RDS for Db2 DB インスタンスに接続できます。このユーティリティは IBM Data Server Runtime Client の一部です。IBM Fix Central からクライアント****をダウンロードするには、IBM サポートの「[IBM Data Server Client Packages Version 11.5 Mod 8 Fix Pack 0](https://www.ibm.com/support/pages/node/6830885)」を参照してください。

**Topics**
+ [用語](#db2-connecting-ibm-clp-terms)
+ [クライアントをインストールする](#db2-connecting-ibm-clp-install-client)
+ [DB インスタンスに接続する](#db2-connecting-ibm-clp-connect-db-instance)
+ [RDS for Db2 DB インスタンスへの接続のトラブルシューティング](#db2-troubleshooting-connections-clp)

## 用語
<a name="db2-connecting-ibm-clp-terms"></a>

次の用語は、[RDS for Db2 DB インスタンス に接続する](#db2-connecting-ibm-clp-connect-db-instance)際に使用するコマンドの説明として役立ちます。

**catalog tcpip node**  
このコマンドは、リモートデータベースノードをローカル Db2 クライアントに登録し、クライアントアプリケーションがノードにアクセスできるようにします。ノードをカタログ化するには、サーバーのホスト名、ポート番号、通信プロトコルなどの情報を指定します。カタログ化されたノードは、1 つ以上のリモートデータベースが存在するターゲットサーバーを表します。詳細については、IBM Db2 ドキュメントの「[CATALOG TCPIP/TCPIP4/TCPIP6 NODE command](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-tcpip-node)」を参照してください。

**catalog database**  
このコマンドは、リモートデータベースをローカル Db2 クライアントに登録し、クライアントアプリケーションがデータベースにアクセスできるようにします。データベースをカタログ化するには、データベースのエイリアス、データベースが存在するノード、データベースへの接続に必要な認証タイプなどの情報を提供します。詳細については、IBM Db2 ドキュメントの「[CATALOG DATABASE command](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-database)」を参照してください。

## クライアントをインストールする
<a name="db2-connecting-ibm-clp-install-client"></a>

[downloading the package for Linux](#db2-downloading-package) の後に、ルート権限または管理者権限を使用してクライアントをインストールします。

**注記**  
クライアントを AIX または Windows にインストールするには、同じ手順に従いますが、オペレーティングシステムに応じてコマンドを変更します。

**Linux にクライアントをインストールするには**

1. **`./db2_install -f sysreq`** を実行し、**`yes`** を選択してライセンス契約に同意します。

1. クライアントをインストールする場所を選択します。

1. **`clientInstallDir/instance/db2icrt -s client` *instance\$1name* **を実行します。*instance\$1name* は、Linux の有効なオペレーティングシステムユーザーに置き換えます。Linux では、Db2 DB インスタンス名はオペレーティングシステムのユーザー名に関連付けられます。

   このコマンドは、Linux の指定ユーザーのホームディレクトリに **`sqllib`** ディレクトリを作成します。

## DB インスタンスに接続する
<a name="db2-connecting-ibm-clp-connect-db-instance"></a>

RDS for Db2 DB インスタンスに接続するには、DNS 名とポート番号が必要です。これを確認する方法の詳細については、「[エンドポイントの検索](db2-finding-instance-endpoint.md)」を参照してください。また、RDS for Db2 DB インスタンスの作成時に定義したデータベース名、マスターユーザー名、マスターパスワードも把握しておく必要があります。これを確認する方法の詳細については、「[DB インスタンスの作成](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating)」を参照してください。

**IBM Db2 CLP を使用して RDS for Db2 DB インスタンスに接続するには**

1. IBM Db2 CLP クライアントのインストール時に指定したユーザー名でサインインします。

1. RDS for Db2 DB インスタンスをカタログ化します。次の例では、*node\$1name*、*dns\$1name*、*port* をローカルカタログ内のノード名、DB インスタンスの DNS 名、ポート番号に置き換えます。

   ```
   1. db2 catalog TCPIP node node_name remote dns_name server port
   ```

   **例**

   ```
   db2 catalog TCPIP node remnode remote database-1.123456789012.us-east-1.amazonaws.com server 50000
   ```

1. `rdsadmin` データベースと自身のデータベースをカタログ化します。これにより、Amazon RDS ストアドプロシージャを使用して `rdsadmin` データベースに接続し、一部の管理タスクを実行できるようになります。詳細については、「[RDS for Db2 DB インスタンスの管理](db2-administering-db-instance.md)」を参照してください。

   次の例では、*database\$1alias*、*node\$1name*、*database\$1name* をこのデータベースのエイリアス、前のステップで定義したノード名、データベースの名前に置き換えます。`server_encrypt` は、ネットワーク経由でユーザー名とパスワードを暗号化します。

   ```
   db2 catalog database rdsadmin [ as database_alias ] at node node_name authentication server_encrypt
       
   db2 catalog database database_name [ as database_alias ] at node node_name authentication server_encrypt
   ```

   **例**

   ```
   db2 catalog database rdsadmin at node remnode authentication server_encrypt
       
   db2 catalog database testdb as rdsdb2 at node remnode authentication server_encrypt
   ```

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

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

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

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

1. クエリを実行し、結果を表示します。次の例は、作成したデータベースを選択する SQL ステートメントを示しています。

   ```
   db2 "select current server from sysibm.dual"
   ```

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

   ```
   1
       ------------------
       TESTDB
       
       1 record(s) selected.
   ```

## RDS for Db2 DB インスタンスへの接続のトラブルシューティング
<a name="db2-troubleshooting-connections-clp"></a>

次の `NULLID` エラーが表示される場合は、通常、クライアントと RDS for Db2 サーバーのバージョンが一致していないことを示しています。サポートされている Db2 クライアントバージョンについては、IBM Db2 ドキュメントの「[Supported combinations of clients, drivers and server levels](https://www.ibm.com/docs/en/db2/11.5?topic=communications-supported-combinations-clients-drivers-server-levels)」を参照してください。

```
db2 "select * from syscat.tables"
SQL0805N Package "NULLID.SQLC2O29 0X4141414141454A69" was not found.
SQLSTATE=51002
```

このエラーが表示された場合は、古い Db2 クライアントから RDS for Db2 でサポートされている Db2 サーバーバージョンにパッケージをバインドする必要があります。

**古い Db2 クライアントから新しい Db2 サーバーにパッケージをバインドするには**

1. クライアントマシン上のバインドファイルを見つけます。通常、これらのファイルは Db2 クライアントのインストールパスの **bnd** ディレクトリにあり、**.bnd** という拡張子が付いています。

1. Db2 サーバーに接続します。次の例では、*database\$1name* を Db2 サーバーの名前に置き換えます。*master\$1username* と *master\$1password* をユーザー自身の情報に置き換えます。このユーザーには `DBADM` 権限があります。

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

1. `bind` コマンドを実行して、パッケージをバインドします。

   1. クライアントマシン上のバインドファイルが存在するディレクトリに移動します。

   1. 各ファイルに対して `bind` コマンドを実行します。

      以下のオプションは必須です。
      + `blocking all` - バインドファイル内のすべてのパッケージを 1 つのデータベースリクエストにバインドします。
      + `grant public` - パッケージを実行するアクセス許可を `public` に付与します。
      + `sqlerror continue` - エラーが発生した場合でも `bind` プロセスが継続するよう指定します。

      `bind` コマンドの詳細については、IBM Db2 ドキュメントの「[BIND command](https://www.ibm.com/docs/en/db2/11.5?topic=commands-bind)」を参照してください。

1. `syscat.package` カタログビューにクエリを実行するか、`bind` コマンドの後に返されたメッセージを確認して、正常にバインドされたことを確認します。

詳細については、IBM サポートの「[DB2 v11.5 Bind File and Package Name List](https://www.ibm.com/support/pages/node/6190455)」を参照してください。

# IBM CLPPlus を使用して Amazon RDS for Db2 DB インスタンスに接続する
<a name="db2-connecting-with-ibm-clpplus-client"></a>

IBM CLPPlus などのユーティリティを使用して、Amazon RDS for Db2 DB インスタンスに接続できます。このユーティリティは IBM Data Server Runtime Client の一部です。IBM Fix Central からクライアント****をダウンロードするには、IBM サポートの「[IBM Data Server Client Packages Version 11.5 Mod 8 Fix Pack 0](https://www.ibm.com/support/pages/node/6830885)」を参照してください。

**重要**  
グラフィカルユーザーインターフェイスをサポートする macOS、Windows、または Linux with Desktop などのオペレーティングシステムで IBM CLPPlus を実行することをお勧めします。ヘッドレス Linux を実行している場合は、CLPPlus コマンドでスイッチ **-nw** を使用します。

**Topics**
+ [クライアントをインストールする](#db2-connecting-ibm-clpplus-install-client)
+ [DB インスタンスに接続する](#db2-connecting-ibm-clpplus-connect-db-instance)
+ [DB2 ストアドプロシージャから CLOB データを取得する](#db2-connecting-ibm-clpplus-retrieve-clob-data)

## クライアントをインストールする
<a name="db2-connecting-ibm-clpplus-install-client"></a>

Linux のパッケージをダウンロードしたら、クライアントをインストールします。

**注記**  
クライアントを AIX または Windows にインストールするには、同じ手順に従いますが、オペレーティングシステムに応じてコマンドを変更します。

**Linux にクライアントをインストールするには**

1. を実行します。。**`./db2_install`**

1. **`clientInstallDir/instance/db2icrt -s client` *instance\$1name* **を実行します。*instance\$1name* は、Linux の有効なオペレーティングシステムユーザーに置き換えます。Linux では、Db2 DB インスタンス名はオペレーティングシステムのユーザー名に関連付けられます。

   このコマンドは、Linux の指定ユーザーのホームディレクトリに **`sqllib`** ディレクトリを作成します。

## DB インスタンスに接続する
<a name="db2-connecting-ibm-clpplus-connect-db-instance"></a>

RDS for Db2 DB インスタンスに接続するには、DNS 名とポート番号が必要です。これを確認する方法の詳細については、「[エンドポイントの検索](db2-finding-instance-endpoint.md)」を参照してください。また、RDS for Db2 DB インスタンスの作成時に定義したデータベース名、マスターユーザー名、マスターパスワードも把握しておく必要があります。これを確認する方法の詳細については、「[DB インスタンスの作成](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating)」を参照してください。

**IBM CLPPlus を使用して RDS for Db2 DB インスタンスに接続するには**

1. コマンドの構文を確認します。次の例では、*clientDir* をクライアントがインストールされている場所に置き換えます。

   ```
   cd clientDir/bin
       ./clpplus -h
   ```

1. Db2 サーバーを設定します。次の例では、*dsn\$1name*、*database\$1name*、*endpoint*、*port* を DSN 名、データベース名、エンドポイント、RDS for Db2 DB インスタンスのポートに置き換えます。詳細については、「[Amazon RDS for Db2 DB インスタンスのエンドポイントを発見する](db2-finding-instance-endpoint.md)」を参照してください。

   ```
   db2cli writecfg add -dsn dsn_name -database database_name -host endpoint -port port -parameter "Authentication=SERVER_ENCRYPT"
   ```

1. RDS for Db2 DB インスタンスに接続します。次の例では、*master\$1username* と *dsn\$1name* をマスターユーザー名と DSN 名に置き換えます。

   ```
   ./clpplus -nw master_username@dsn_name
   ```

1. Java Shell ウィンドウが開きます。RDS for Db2 DB インスタンスのマスターパスワードを入力します。
**注記**  
Java Shell ウィンドウが開かない場合は、`./clpplus -nw` を実行して同じコマンドラインウィンドウを使用します。

   ```
   Enter password: *********
   ```

   接続が確立され、次の例のような出力が生成されます。

   ```
   Database Connection Information :
   ---------------------------------
   Hostname = database-1.abcdefghij.us-east-1.rds.amazonaws.com
   Database server = DB2/LINUXX8664  SQL110590
   SQL authorization ID = admin
   Local database alias = DB2DB
   Port = 50000
   ```

1. クエリを実行し、結果を表示します。次の例は、作成したデータベースを選択する SQL ステートメントを示しています。

   ```
   SQL > select current server from sysibm.dual;
   ```

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

   ```
   1
       --------------------
       DB2DB
       SQL>
   ```

## DB2 ストアドプロシージャから CLOB データを取得する
<a name="db2-connecting-ibm-clpplus-retrieve-clob-data"></a>

rdsadmin.db2pd\$1command などのストアドプロシージャは、最大 2 GB のデータをサポートする CLOB 列で結果を返します。ただし、DB2 CLP は CLOB 出力を 8 KB (8192 バイト) に制限し、このしきい値を超えるデータは切り捨てられます。完全な出力を取得するには、代わりに CLPPLUS を使用します。

1. タスク ID (task\$1id) の取得 

   ```
   db2 "select task_id, task_type, database_name, lifecycle, varchar(bson_to_json(task_input_params), 500) as task_params,
   cast(task_output as varchar(500)) as task_output, CREATED_AT, LAST_UPDATED_AT from table(rdsadmin.get_task_status(null,null,null))"
   ```

1. CLPPLUS コマンドを実行する

   task\$1id を取得したら、Unix プロンプトから次のコマンドを実行します (TASK\$1ID を実際の数値タスク ID に置き換えます)。

   ```
   $ (echo "select task_output from table(rdsadmin.get_task_status(task_id,null,null));" ; echo "disconnect;" ; echo "exit;") | clpplus -nw -silent masteruser/MasterUserPassword@hostname:port_num/rdsadmin
   ```

# DBeaver を使用して Amazon RDS for Db2 DB インスタンスに接続する
<a name="db2-connecting-with-dbeaver"></a>

DBeaver などのサードパーティーツールを使用して、Amazon RDS for Db2 DB インスタンスに接続できます。このユーティリティをダウンロードするには、「[DBeaver Community](https://dbeaver.io/)」を参照してください。

RDS for Db2 DB インスタンスに接続するには、DNS 名とポート番号が必要です。これを確認する方法の詳細については、「[エンドポイントの検索](db2-finding-instance-endpoint.md)」を参照してください。また、RDS for Db2 DB インスタンスの作成時に定義したデータベース名、マスターユーザー名、マスターパスワードも把握しておく必要があります。これを確認する方法の詳細については、「[DB インスタンスの作成](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating)」を参照してください。

**DBeaver を使用して RDS for Db2 DB インスタンスに接続するには**

1. 起動します。**DBeaver**

1. ツールバーの **[New Connection]** アイコンを選択し、**[Db2 for LUW]** を選択します。  
![\[DBeaver のエンジンタイプを一覧表示するメニュー。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/dbeaver-add-connection.png)

1. **[Connect to a database]** ウィンドウで、RDS for Db2 DB インスタンスの情報を入力します。

   1.  次の情報を入力します。
      + **[Host]** に、DB インスタンスの DNS 名を入力します。
      + **[Port]** に、DB インスタンスのポート番号を入力します。
      + **[Database]** に、データベースの名前を入力します。
      + **[Username]** に、DB インスタンスのデータベース管理者の名前を入力します。
      + **[Password]** に、DB インスタンスのデータベース管理者のパスワードを入力します。

   1. **[Save password]** を選択します。

   1. **[Driver Settings]** を選択します。  
![\[さまざまな接続設定が DBeaver に入力されている [データベースへの接続] ウィンドウ。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/dbeaver-connect-database.png)

1. **[Edit Driver]** ウィンドウで、追加のセキュリティプロパティを指定します。

   1. **[Driver properties]** タブを選択します。

   1. 2 つの **User Properties** を追加します。

      1. コンテキスト (右クリック) メニューを開き、**[Add new property]** を選択します。

      1. **[Property Name]** で **[encryptionAlgorithm]** を追加し、**[OK]** を選択します。

      1. **[encryptionAlgorithm]** 行を選択し、**[Value]** 列を選択して **[2]** を追加します。

      1. コンテキスト (右クリック) メニューを開き、**[Add new property]** を選択します。

      1. **[Property Name]**で **[securityMechanism]** を追加し、**[OK]** を選択します。

      1. **[securityMechanism]** 行を選択し、**[Value]** 列を選択して **[7]** を追加します。

   1. [**OK**] を選択してください。  
![\[DBeaver の [ドライバーの編集] ウィンドウの [ドライバーのプロパティ] タブ。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/dbeaver-driver-properties-tab.png)

1. **[Connect to a database]** ウィンドウで、**[Test Connection]** を選択します。コンピュータに DB2 JBDC ドライバーがインストールされていない場合、ドライバーは自動的にダウンロードされます。

1. [**OK**] を選択してください。

1. **[Finish]** を選択します。

1. **[Database Navigation]** タブで、データベースの名前を選択します。これでオブジェクトを探索できるようになりました。

これで、SQL コマンドを実行する準備ができました。

**SQL コマンドを実行して結果を表示するには**

1. 上部メニューで、**[SQL]** を選択します。SQL スクリプトパネルが開きます。

1. **[Script]** パネルに、SQL コマンドを入力します。

1. コマンドを実行するには、**[Execute SQL query]** ボタンを選択します。

1. SQL の結果パネルで、SQL クエリの結果を表示します。  
![\[DBeaver で SQL コマンドを実行し、結果を表示する方法を示すウィンドウ。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/dbeaver-sql-run-example.png)

# IBM Db2 Data Management Console を使用して Amazon RDS for Db2 DB インスタンスに接続する
<a name="db2-connecting-with-ibm-data-management-console"></a>

IBM Db2 Data Management Console を使用して Amazon RDS for Db2 DB インスタンスに接続できます。IBM Db2 Data Management Console は、複数の RDS for Db2 DB インスタンスを管理およびモニタリングできます。

**注記**  
RDS for Db2 DB インスタンスと同じ VPC およびセキュリティグループにある Amazon EC2 Linux または Windows マシンが必要です。VPC とセキュリティグループは、内部ネットワークを介して DB インスタンスへの接続を制御します。

IBM Db2 Data Management Console では、メタデータとパフォーマンスメトリクスを保存するためにリポジトリ Db2 データベースが必要ですが、RDS for Db2 のリポジトリデータベースを自動的に作成することはできません。代わりに、まずリポジトリデータベースを作成して、1 つ以上の RDS for Db2 DB インスタンスをモニタリングする必要があります。次に、IBM Db2 Data Management Console をインストールし、IBM Db2 Data Management Console を使用して RDS for Db2 DB インスタンスに接続できます。

**Topics**
+ [ステップ 1: DB インスタンスをモニタリングするためのリポジトリデータベースを作成する](#db2-creating-repo-db-monitoring-dmc)
+ [ステップ 2: IBM Db2 Data Management Console のインストールとセットアップ](#db2-install-setup-dmc)
+ [ステップ 3: リポジトリデータベースを設定し、RDS for Db2 DB インスタンスに接続する](#db2-connecting-db-instances-with-dmc)
+ [IBM Db2 Data Management Consoleの使用](#db2-using-dmc)

## ステップ 1: DB インスタンスをモニタリングするためのリポジトリデータベースを作成する
<a name="db2-creating-repo-db-monitoring-dmc"></a>

既存の適切なサイズの RDS for Db2 DB インスタンスを IBM Db2 Data Management Console のリポジトリとして使用して、他の RDS for Db2 DB インスタンスをモニタリングできます。ただし、管理者ユーザーにはバッファプールとテーブルスペースを作成する `SYSCTRL` 権限がないため、IBM Db2 Data Management Console リポジトリの作成を使用してリポジトリデータベースを作成すると失敗します。代わりに、リポジトリデータベースを作成する必要があります。このリポジトリデータベースは、RDS for Db2 DB インスタンスをモニタリングします。

リポジトリデータベースは 2 とおりの方法で作成できます。RDS for Db2 データベースを作成し、バッファプール、ユーザーテーブルスペース、およびシステム一時テーブルスペースを手動で作成できます。または、IBM Db2 Data Management Console リポジトリデータベースをホストする別の Amazon EC2 インスタンスを作成することもできます。

**Topics**
+ [バッファプール、ユーザーテーブルスペース、およびシステム一時テーブルスペースを手動で作成する](#db2-manually-creating-dmc)
+ [IBM Db2 Data Management Console リポジトリをホストする Amazon EC2 インスタンスを作成する](#db2-creating-ec2-dmc)

### バッファプール、ユーザーテーブルスペース、およびシステム一時テーブルスペースを手動で作成する
<a name="db2-manually-creating-dmc"></a>

**バッファプール、ユーザーテーブルスペース、およびシステム一時テーブルスペースを作成するには**

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

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

1. IBM Db2 Data Management Console のバッファプールを作成します。次の例では、*database\$1name* を、RDS for Db2 DB インスタンスをモニタリングするために IBM Db2 Data Management Console 用に作成したリポジトリの名前に置き換えます。

   ```
   db2 "call rdsadmin.create_bufferpool('database_name', 
        'BP4CONSOLE', 1000, 'Y', 'Y', 32768)"
   ```

1. IBM Db2 Data Management Console のユーザーテーブルスペースを作成します。次の例では、*database\$1name* を、RDS for Db2 DB インスタンスをモニタリングするために IBM Db2 Data Management Console 用に作成したリポジトリの名前に置き換えます。

   ```
   db2 "call rdsadmin.create_tablespace('database_name', 
        'TS4CONSOLE', 'BP4CONSOLE', 32768)"
   ```

1. IBM Db2 Data Management Console のシステム一時テーブルスペースを作成します。次の例では、*database\$1name* を、RDS for Db2 DB インスタンスをモニタリングするために IBM Db2 Data Management Console 用に作成したリポジトリの名前に置き換えます。

   ```
   db2 "call rdsadmin.create_tablespace('database_name',
       'TS4CONSOLE_TEMP', 'BP4CONSOLE', 32768, 0, 0, 'S')"
   ```

これで IBM Db2 Data Management Console をインストールする準備ができました。インストールとセットアップの詳細については、「[ステップ 2: IBM Db2 Data Management Console のインストールとセットアップ](#db2-install-setup-dmc)」を参照してください。

### IBM Db2 Data Management Console リポジトリをホストする Amazon EC2 インスタンスを作成する
<a name="db2-creating-ec2-dmc"></a>

IBM Db2 Data Management Console リポジトリをホストする別の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを作成できます。Amazon EC2 インスタンスを作成する方法の詳細については、「*Amazon EC2 ユーザーガイド*」の「[チュートリアル: Amazon EC2 Linux インスタンスの開始方法](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html)」を参照してください。

## ステップ 2: IBM Db2 Data Management Console のインストールとセットアップ
<a name="db2-install-setup-dmc"></a>

バッファプール、ユーザーテーブルスペース、およびシステム一時テーブルスペースを作成したら、IBM Db2 Data Management Console をインストールしてセットアップする準備が整います。

**重要**  
RDS for Db2 DB インスタンスと同じ VPC およびセキュリティグループにある Amazon EC2 Linux または Windows マシンが必要です。VPC とセキュリティグループは、内部ネットワークを介して DB インスタンスへの接続を制御します。また、IBM Db2 Data Management Console の[リポジトリデータベースを既に作成している](#db2-creating-repo-db-monitoring-dmc)必要があります。

**IBM Db2 Data Management Console をインストールしてセットアップするには**

1. IBM Support ウェブサイトの [IBM Db2 Data Management Console バージョン 3.1x リリース](https://www.ibm.com/support/pages/ibm-db2-data-management-console-version-31x-releases-new-features-and-enhancements)から IBM Db2 Data Management Console をダウンロードします。

1. IBM Db2 Data Management Console をインストールします。

1. IBM Db2 Data Management Console を開き、Amazon EC2 マシンの IP アドレスと Amazon EC2 インスタンスへの HTTP または HTTPS 接続に使用したポート番号を使用します。例えば、`http://xx.xx.xx.xx:11080` または `https://xx.xx.xx.xx.11081` を使用します。`xx.xx.xx.xx` を Amazon EC2 マシンの IP アドレスに置き換えます。`11080` と `11081` は、HTTP 接続と HTTPS 接続のデフォルトポートです。

1. (オプション) Amazon EC2 インスタンスでポート 80 または 443 を使用する場合は、Apache httpd または Nginx HTTP サーバーを使用して IBM Db2 Data Management Console ポートをポート 80 または 443 にプロキシできます。詳細については、「[Apache HTTP Server プロジェクト](https://httpd.apache.org)」および「[nginx ウェブサイト](https://nginx.org/en/)」を参照してください。

   IBM Db2 Data Management Console への接続を許可するには、セキュリティグループのインバウンドルールを編集する必要があります。プロキシを使用する場合は、TCP/IP ポート 80 または 443 を変更して、IBM Db2 Data Management Console ポートにリダイレクトします。プロキシを使用しない場合は、TCP/IP ポート 80 または 443 をデフォルトのポート 11080 (HTTP) または 11081 (HTTPS) に変更します。

これで、IBM Db2 Data Management Console にログインしてリポジトリデータベースを設定し、RDS for Db2 DB インスタンスに接続する準備が整いました。詳細については、「[リポジトリデータベースの設定と DB インスタンスへの接続](#db2-connecting-db-instances-with-dmc)」を参照してください。

## ステップ 3: リポジトリデータベースを設定し、RDS for Db2 DB インスタンスに接続する
<a name="db2-connecting-db-instances-with-dmc"></a>

リポジトリデータベースに初めて接続すると、IBM Db2 Data Management Console によってリポジトリが自動的に設定されます。リポジトリデータベースを設定したら、IBM Db2 Data Management Console にデータベースを接続できます。

RDS for Db2 DB インスタンスに接続するには、DNS 名とポート番号が必要です。これを確認する方法の詳細については、「[エンドポイントの検索](db2-finding-instance-endpoint.md)」を参照してください。また、RDS for Db2 DB インスタンスの作成時に定義したデータベース名、マスターユーザー名、マスターパスワードも把握しておく必要があります。これを確認する方法の詳細については、「[DB インスタンスの作成](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating)」を参照してください。インターネット経由で接続する場合は、データベースポートへのトラフィックを許可します。詳細については、「[DB インスタンスの作成](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating)」を参照してください。

**IBM Db2 Data Management Console を使用して RDS for Db2 DB インスタンスに接続するには**

1. インストール時に設定した認証情報を使用して IBM Db2 Data Management Console にログインします。

1. リポジトリを設定します。

   1. **[Connection and database]** セクションで、RDS for Db2 DB インスタンスの次の情報を入力します。
      + **[Host]** に、DB インスタンスの DNS 名を入力します。
      + **[Port]** に、DB インスタンスのポート番号を入力します。
      + **[Database]** に、データベースの名前を入力します。  
![\[[ホスト]、[ポート]、および [データベース] フィールドが表示されている IBM Db2 Data Management Console の [接続とデータベース] セクション。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/ibm-dmc-connection-database.png)

   1. **[Security and credential]** セクションで、RDS for Db2 DB インスタンスの次の情報を入力します。
      + **[Security type]** で、**[Encrypted user and password]** を選択します。
      + **[Username]** に、DB インスタンスのデータベース管理者の名前を入力します。
      + **[Password]** に、DB インスタンスのデータベース管理者のパスワードを入力します。

   1. **[Test connection]** を選択します。
**注記**  
接続に失敗した場合は、セキュリティグループのインバウンドルールを見てデータベースポートが開いていることを確認します。詳細については、「[Amazon RDS for Db2 のセキュリティグループの考慮事項](db2-security-groups-considerations.md)」を参照してください。

      RDS for Db2 で[バッファプール、ユーザーテーブルスペース、およびシステム一時テーブルスペースを手動で作成](#db2-manually-creating-dmc)しなかった場合、次のエラーメッセージが表示されることがあります。  
![\[操作を実行するアクセス許可がないことを示すエラーメッセージ。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/ibm-dmc-error-message.png)

      RDS for Db2 DB インスタンスをモニタリングするための、IBM Db2 Data Management Console リポジトリのバッファテーブル、テーブルスペース、およびオブジェクトを作成したことを確認します。または、Amazon EC2 Db2 DB インスタンスを使用して IBM Db2 Data Management Console リポジトリをホストし、RDS for Db2 DB インスタンスをモニタリングすることもできます。詳細については、「[ステップ 1: DB インスタンスをモニタリングするためのリポジトリデータベースを作成する](#db2-creating-repo-db-monitoring-dmc)」を参照してください。

   1. 接続を正常にテストできたら、**[Next]** を選択します。  
![\[IBM Db2 Data Management Console の [セキュリティと認証情報] セクション。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/ibm-dmc-security-credential.png)

   IBM Db2 Data Management Console が RDS for Db2 DB インスタンスでバッファプール、ユーザーテーブルスペース、およびシステム一時テーブルスペースを検出した場合、IBM Db2 Data Management Console はリポジトリデータベースを自動的に設定します。Amazon EC2 インスタンスで Db2 インスタンスをリポジトリデータベースとして使用すると、 IBM Db2 Data Management Console は自動的にバッファプールやその他のオブジェクトを作成します。

1. **[Set statistics event monitor opt-in]** ウィンドウで、**[Next]** を選択します。

1. (オプション) 新しい接続を追加します。管理とモニタリングに別の RDS for Db2 DB インスタンスを使用する場合は、非リポジトリ RDS for Db2 DB インスタンスへの接続を追加します。

   1. **[Connection and database]** セクションに、管理とモニタリングに使用する RDS for Db2 DB インスタンスの次の情報を入力します。
      + **[Connection name]**、Db2 データベース識別子を入力します。
      + **[Host]** に、DB インスタンスの DNS 名を入力します。
      + **[Port]** に、DB インスタンスのポート番号を入力します。
      + **[Database]** に、データベースの名前を入力します。  
![\[[ホスト]、[ポート]、および [データベース] フィールドが表示されている IBM Db2 Data Management Console の新しい接続の [接続とデータベース] セクション。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/ibm-dmc-new-connection-database.png)

   1. **[Security and credential]**** **セクションで、**[Enable monitoring data collection]** を選択します。

   1. RDS for Db2 DB インスタンスの次の情報を入力します。
      + **[Username]** に、DB インスタンスのデータベース管理者の名前を入力します。
      + **[Password]** に、DB インスタンスのデータベース管理者のパスワードを入力します。

   1. **[Test connection]** を選択します。

   1. 接続が正常にテストされたら、**[Save]** を選択します。  
![\[IBM Db2 Data Management Console の新しい接続の [セキュリティと認証情報] セクション。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/ibm-dmc-new-security-credential.png)

   接続が追加されると、次のようなウィンドウが表示されます。このウィンドウは、データベースが正常に設定されたことを示します。  
![\[データベースが正常に設定されたことを示す IBM Db2 Data Management Console のウィンドウ。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/ibm-dmc-configuration-success.png)

1. **[Go to Databases]** を選択します。次のようなデータベースウィンドウが表示されます。このウィンドウは、メトリクス、ステータス、接続を示すダッシュボードです。  
![\[IBM Db2 Data Management Console の [データベース] の概要ウィンドウ。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/ibm-dmc-database-view.png)

これで IBM Db2 Data Management Console の使用を開始できます。

## IBM Db2 Data Management Consoleの使用
<a name="db2-using-dmc"></a>

これで、IBM Db2 Data Management Console を使用して次のタイプのタスクを実行できます。
+ 複数の RDS for Db2 DB を管理する。
+ SQL コマンドを実行する。
+ データオブジェクトとデータベースオブジェクトを探索、作成、または変更する。
+ SQL で `EXPLAIN PLAN` ステートメントを作成する。
+ クエリを調整する。

**SQL コマンドを実行して結果を表示するには**

1. 左側のナビゲーションバーで **[SQL]** を選択します。

1. SQL コマンドを入力します。

1. **[Run all]** を選択します。

1. 結果を表示するには、**[Results]** タブを選択します。

![\[IBM Db2 Data Management Console で SQL コマンドを実行し、結果を表示する方法を示す [データベース] ウィンドウ。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/ibm-dmc-sql-run-example.png)


# Amazon RDS for Db2 のセキュリティグループの考慮事項
<a name="db2-security-groups-considerations"></a>

Amazon RDS for Db2 DB インスタンスに接続するためには、必要な IP アドレスとネットワーク設定を含むセキュリティグループに関連付ける必要があります。RDS for Db2 DB インスタンスは、デフォルトのセキュリティグループを使用することがあります。RDS for Db2 DB インスタンスの作成時に、デフォルトの設定されていないセキュリティグループを割り当てた場合は、ファイアウォールによってインターネット接続が禁止されます。新しいセキュリティグループの作成方法については、[セキュリティグループによるアクセス制御](Overview.RDSSecurityGroups.md) を参照してください。

新しいセキュリティグループを作成したら、そのセキュリティグループと関連付けるように DB インスタンスを変更します。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

SSL を使用して DB インスタンスへの接続を暗号化することで、セキュリティを高めることができます。詳細については、「[Amazon RDS for Db2 DB インスタンスでの SSL/TLS の使用](Db2.Concepts.SSL.md)」を参照してください。

# Amazon RDS for Db2 DB インスタンス接続の保護
<a name="Db2.Concepts.RestrictedDBAPrivileges"></a>

Amazon RDS for Db2 は、RDS for Db2 DB インスタンスのセキュリティを向上させる方法をサポートしています。

**Topics**
+ [Amazon RDS for Db2 DB インスタンスでの SSL/TLS の使用](Db2.Concepts.SSL.md)
+ [Amazon RDS for Db2 での Kerberos 認証の使用](db2-kerberos.md)

# Amazon RDS for Db2 DB インスタンスでの SSL/TLS の使用
<a name="Db2.Concepts.SSL"></a>

SSL は、クライアントとサーバー間のネットワーク接続を安全に保つための業界標準のプロトコルです。SSL バージョン 3.0 以降は、名前が TLS と変更されていますが、いまだに SSL と呼称されることもよくあります。Amazon RDS は、Amazon RDS for Db2 DB インスタンス向けに SSL での暗号化をサポートしています。SSL/TLS を使用して、アプリケーションクライアントと RDS for Db2 DB インスタンス間の接続を暗号化できます。SSL/TLS サポートは、RDS for Db2 のすべての AWS リージョン で提供されています。



RDS for Db2 DB インスタンスの SSL/TLS 暗号化を有効するには、その DB インスタンスに関連付けられているパラメータグループに、Db2 SSL オプションを追加します。Db2 からの要求があるため、Amazon RDS では SSL/TLS 接続のために 2 番目のポートを使用しています。こうすることで、クリアテキストと SSL 暗号化の両方の通信を、DB インスタンスと Db2 クライアント間で同時に実行できます。例えば、このポートで SSL 暗号化通信を使用して VPC 外部のリソースと通信する一方で、このポートでクリアテキスト通信を使用して VPC 内の他のリソースと通信できます。

**Topics**
+ [SSL/TLS 接続の作成](#db2-creating-ssl-connection)
+ [Db2 データベースサーバーに接続する](#db2-connecting-to-server-ssl)

## SSL/TLS 接続の作成
<a name="db2-creating-ssl-connection"></a>

SSL/TLS 接続を作成するには、認証機関 (CA) を選択し、すべての AWS リージョンの証明書バンドルをダウンロードして、カスタムパラメータグループにパラメータを追加します。

### ステップ 1: CA を選択して証明書をダウンロードする
<a name="db2-creating-ssl-connection-prereq"></a>

認証機関 (CA) を選択し、すべての AWS リージョンの証明書バンドルをダウンロードします。詳細については、「[SSL/TLS を使用した DB インスタンスまたはクラスターへの接続の暗号化](UsingWithRDS.SSL.md)」を参照してください。

### ステップ 2: カスタムパラメータグループのパラメータを更新する
<a name="db2-updating-parameters-ssl"></a>

**重要**  
RDS for Db2 に Bring-Your-Own-License (BYOL) モデルを使用している場合は、IBM Customer ID と IBM Site ID 用に作成したカスタムパラメータグループを変更します。RDS for Db2 に別のライセンスモデルを使用している場合は、手順に従ってカスタムパラメータグループにパラメータを追加します。詳細については、「[Amazon RDS for Db2 のライセンスオプション](db2-licensing.md)」を参照してください。

RDS for Db2 DB インスタンスのデフォルトのパラメータグループを変更することはできません。したがって、カスタムパラメータグループを作成して変更し、それを RDS for Db2 DB インスタンスにアタッチする必要があります。パラメータグループの詳細については、「[Amazon RDS DB インスタンスの DB パラメータグループ](USER_WorkingWithDBInstanceParamGroups.md)」を参照してください。

 次の表のパラメータ設定を使用します。


| パラメータ | 値 | 
| --- | --- | 
| DB2COMM | TCPIP,SSL-または-SSL | 
| SSL\$1SVCENAME | <any port number except the number used for the non-SSL port> | 

**カスタムパラメータグループのパラメータを更新するには**

1. [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-parameter-group.html) コマンドを実行して、カスタムパラメータグループを作成します。

   次の必須パラメータを含めます。
   + `--db-parameter-group-name` - 作成するパラメータグループの名前。
   + `--db-parameter-group-family` - Db2 エンジンエディションとメジャーバージョン。有効な値: `db2-se-11-5`、`db2-ae-11.5`。
   + `--description` - このパラメータグループの説明。

   DB パラメータグループの作成の詳細については、「[Amazon RDS での DB パラメータグループの作成](USER_WorkingWithParamGroups.Creating.md)」を参照してください。

1. [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) コマンドを実行して、作成したカスタムパラメータグループのパラメータを変更します。

   次の必須パラメータを含めます。
   + `--db-parameter-group-name` – 作成したパラメータグループの名前。
   + `--parameters` – パラメータ名、値、およびパラメータ更新用のアプリケーションメソッドの配列。

   パラメータグループの変更の詳細については、「[Amazon RDS の DB パラメータグループのパラメータの変更](USER_WorkingWithParamGroups.Modifying.md)」を参照してください。

1. パラメータグループを RDS for Db2 DB インスタンスに関連付けます。詳細については、「[Amazon RDS で DB パラメータグループを DB インスタンスに関連付ける](USER_WorkingWithParamGroups.Associating.md)」を参照してください。

## Db2 データベースサーバーに接続する
<a name="db2-connecting-to-server-ssl"></a>

Db2 データベースサーバーへの接続手順は言語によって異なります。

------
#### [ Java ]

**Java を使用して Db2 データベースサーバーに接続するには**

1. JDBC ドライバーをダウンロードします。詳細については、IBM サポートドキュメントの「[DB2 JDBC Driver Versions and Downloads](https://www.ibm.com/support/pages/db2-jdbc-driver-versions-and-downloads)」を参照してください。

1. 以下のコンテンツを使用して、シェルスクリプトファイルを作成します。このスクリプトによりは、バンドルのすべての証明書が Java KeyStore に追加されます。
**重要**  
スクリプトが `keytool` を見つけることができるように、スクリプトのパス上に存在することを確認します。Db2 クライアントを使用する場合、 `keytool` は `~sqlib/java/jdk64/jre/bin` にあります。

   ```
   #!/bin/bash
   PEM_FILE=$1
   PASSWORD=$2
   KEYSTORE=$3
   # number of certs in the PEM file
   CERTS=$(grep 'END CERTIFICATE' $PEM_FILE| wc -l)
   for N in $(seq 0 $(($CERTS - 1))); do
       ALIAS="${PEM_FILE%.*}-$N"
       cat $PEM_FILE |
       awk "n==$N { print }; /END CERTIFICATE/ { n++ }" |
       keytool -noprompt -import -trustcacerts -alias $ALIAS -keystore $KEYSTORE -storepass $PASSWORD
   done
   ```

1. シェルスクリプトを実行し、証明書バンドルを含む PEM ファイルを Java KeyStore にインポートするには、次のコマンドを実行します。*shell\$1file\$1name.sh* をシェルスクリプトファイルの名前に置き換え、*password* を Java KeyStore のパスワードに置き換えます。

   ```
    ./shell_file_name.sh global-bundle.pem password truststore.jks
   ```

1. Db2 サーバーに接続するには、次のコマンドを実行します。例の次のプレースホルダーを RDS for Db2 DB インスタンス情報に置き換えます。
   + *ip\$1address* – DB インスタンスエンドポイントの IP アドレス。
   + *port* – SSL 接続のポート番号。これは、SSL 以外のポートに使用される番号を除く任意のポート番号にすることができます。
   + *database\$1name* – DB インスタンス内のデータベースの名前。
   + *master\$1username* – DB インスタンスのマスターユーザー名。
   + *master\$1password* – DB インスタンスのマスターパスワード。

   ```
   export trustStorePassword=MyPassword
   java -cp ~/dsdriver/jdbc_sqlj_driver/linuxamd64/db2jcc4.jar \
   com.ibm.db2.jcc.DB2Jcc -url \
   "jdbc:db2://ip_address:port/database_name:\
   sslConnection=true;sslTrustStoreLocation=\
   ~/truststore.jks;\
   sslTrustStorePassword=${trustStorePassword};\
   sslVersion=TLSv1.2;\
   encryptionAlgorithm=2;\
   securityMechanism=7;" \
   -user master_username -password master_password
   ```

------
#### [ Node.js ]

**Node.js を使用して Db2 データベースサーバーに接続するには**

1. **node-ibm\$1db** ドライバーをインストールします。詳細については、 IBM Db2 ドキュメントの「[Installing the node-ibm\$1db driver on Linux and UNIX systems](https://www.ibm.com/docs/en/db2/11.5?topic=nodejs-installing-node-db-driver-linux-unix-systems)」を参照してください。

1. 次の内容に基づいて JavaScript ファイルを作成します。例の次のプレースホルダーを RDS for Db2 DB インスタンス情報に置き換えます。
   + *ip\$1address* – DB インスタンスエンドポイントの IP アドレス。
   + *master\$1username* – DB インスタンスのマスターユーザー名。
   + *master\$1password* – DB インスタンスのマスターパスワード。
   + *database\$1name* – DB インスタンス内のデータベースの名前。
   + *port* – SSL 接続のポート番号。これは、SSL 以外のポートに使用される番号を除く任意のポート番号にすることができます。

   ```
   var ibmdb = require("ibm_db");
   const hostname = "ip_address";
   const username = "master_username";
   const password = "master_password";
   const database = "database_name";
   const port = "port";
   const certPath = "/root/qa-bundle.pem";
   ibmdb.open("DRIVER={DB2};DATABASE=" + database + ";HOSTNAME=" + hostname + ";UID=" + username + ";PWD=" + password + ";PORT=" + port + ";PROTOCOL=TCPIP;SECURITY=SSL;SSLServerCertificate=" + certPath + ";", function (err, conn){
    if (err) return console.log(err);
    conn.close(function () {
    console.log('done');
    });
   });
   ```

1. JavaScript ファイルを実行するには、次のコマンドを実行します。

   ```
   node ssl-test.js
   ```

------
#### [ Python ]

**Python を使用して Db2 データベースサーバーに接続するには**

1. 以下のコンテンツを含む Python ファイルを作成します。例の次のプレースホルダーを RDS for Db2 DB インスタンス情報に置き換えます。
   + *port* – SSL 接続のポート番号。これは、SSL 以外のポートに使用される番号を除く任意のポート番号にすることができます。
   + *master\$1username* – DB インスタンスのマスターユーザー名。
   + *master\$1password* – DB インスタンスのマスターパスワード。
   + *database\$1name* – DB インスタンス内のデータベースの名前。
   + *ip\$1address* – DB インスタンスエンドポイントの IP アドレス。

   ```
   import click
   import ibm_db
   import sys
   
   port = port;
   master_user_id = "master_username" # Master id used to create your DB instance
   master_password = "master_password" # Master password used to create your DB instance
   db_name = "database_name" # If not given "db-name'
   vpc_customer_private_ip = "ip_address" # Hosts end points - Customer private IP Addressicert_path = "/root/ssl/global-bundle.pem" # cert path
   
   @click.command()        
   @click.option("--path", help="certificate path")
   def db2_connect(path):
   
       try:
           conn = ibm_db.connect(f"DATABASE={db_name};HOSTNAME={vpc_customer_private_ip};PORT={port};
               PROTOCOL=TCPIP;UID={master_user_id};PWD={master_password};SECURITY=ssl;SSLServerCertificate={path};", "", "")
           try:
               ibm_db.exec_immediate(conn, 'create table tablename (a int);')
               print("Query executed successfully")
           except Exception as e:
               print(e)
           finally:
               ibm_db.close(conn)
               sys.exit(1)
       except Exception as ex:
           print("Trying to connect...")
   
   if __name__ == "__main__":
       db2_connect()
   ```

1. 作成した Python ファイルを実行する次のシェルスクリプトを作成します。*python\$1file\$1name.py* を Python スクリプトファイルの名前に置き換えます。

   ```
   #!/bin/bash
   PEM_FILE=$1
   # number of certs in the PEM file
   CERTS=$(grep 'END CERTIFICATE' $PEM_FILE| wc -l)
   
   for N in $(seq 0 $(($CERTS - 1))); do
       ALIAS="${PEM_FILE%.*}-$N"
       cert=`cat $PEM_FILE | awk "n==$N { print }; /END CERTIFICATE/ { n++ }"`
       cat $PEM_FILE | awk "n==$N { print }; /END CERTIFICATE/ { n++ }" > $ALIAS.pem
       python3 <python_file_name.py> --path $ALIAS.pem
       output=`echo $?`
       if [ $output == 1 ]; then
           break
       fi
   done
   ```

1. 証明書バンドルを含む PEM をインポートし、シェルスクリプトを実行するには、次のコマンドを実行します。*shell\$1file\$1name.sh* をシェルスクリプトファイルの名前に置き換えます。

   ```
   ./shell_file_name.sh global-bundle.pem
   ```

------
#### [ Db2 CLP ]

**Db2 CLP を使用して Db2 データベースサーバーに接続するには**

1. Db2 CLP を使用して Db2 インスタンスに接続するには、[IBM Fix Central](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=Security+Systems&product=ibm/Tivoli/IBM+Global+Security+Kit&release=All&platform=All&function=fixId&fixids=8.0.*&source=fc) からダウンロードできる GSKit が必要です。Db2 CLP を使用するには、IBM Db2 クライアントも必要です。このクライアントは、IBM サポートの「[Download initial Version 11.5 clients and drivers](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers)」からダウンロードできます。

1. キーストアを作成します。

   ```
   gsk8capicmd_64 -keydb -create -db "directory/keystore-filename" -pw "changeThisPassword" -type pkcs12 -stash
   ```

1. 証明書のバンドルをキーストアにインポートします。

   ```
   gsk8capicmd_64 -cert -import -file global-bundle.pem -target directory/keystore-filename> -target_stashed
   ```

1. Db2 インスタンス設定を更新します。

   ```
   db2 update dbm cfg using SSL_CLNT_KEYDB keystore-filename SSL_CLNT_STASH keystore stash file immediate
   ```

1. ノードとデータベースをカタログ化します。

   ```
   db2 catalog tcpip node ssluse1 REMOTE endpoint SERVER ssl_svcename security ssl
   
   db2 catalog database testdb as ssltest at node ssluse1
   ```

1. データベースに接続します。

   ```
   db2 connect to ssltest user username using password
   ```

------

# Amazon RDS for Db2 での Kerberos 認証の使用
<a name="db2-kerberos"></a>

ユーザーが Amazon RDS for Db2 DB インスタンスに接続する際、Kerberos 認証を使用してユーザーを認証できます。この設定では、DB インスタンスは AWS Directory Service for Microsoft Active Directory と連携します (AWS Managed Microsoft AD とも言う)。次に、AWS Managed Microsoft AD ディレクトリのドメインおよびその他の情報を RDS for Db2 DB インスタンスに追加します。ユーザーが、信頼性の高いドメインに接続された RDS for Db2 DB インスタンスを使用して認証すると、認証リクエストは Directory Service で作成した AWS Managed Microsoft AD ディレクトリに転送されます。

同じディレクトリにすべての認証情報を保持することで時間と労力を節約できます。この方法により、複数の DB インスタンスの認証情報を一元的に保存および管理できます。また、ディレクトリを使用することで、セキュリティプロファイル全体を向上できます。

また、独自のオンプレミスの Microsoft Active Directory から認証情報にアクセスできます。そのためには、信頼するドメイン関係を作成して、AWS Managed Microsoft AD ディレクトリがオンプレミスの Microsoft Active Directory を信頼するようにします。これにより、ユーザーは、オンプレミスネットワークのワークロードにアクセスするときと同じ Windows シングルサインオン (SSO) を使用して、RDS for Db2 DB インスタンスにアクセスできます。

詳細については、「AWS Directory Service 管理ガイド**」の「[Directory Service とは](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html)」を参照してください。

Kerberos 認証の詳細については、以下のトピックを参照してください。

**トピック**
+ [Amazon RDS for Db2 DB インスタンスの Kerberos 認証を設定する](db2-kerberos-setting-up.md)
+ [Kerberos 認証を使用して Amazon RDS for Db2 に接続する](db2-kerberos-connecting.md)

## 利用可能なリージョンとバージョン
<a name="db2-kerberos-setting-up.RegionVersionAvailability"></a>

機能の可用性とサポートは、各データベースエンジンの特定のバージョン、および AWS リージョン によって異なります。Kerberos 認証を使用した RDS for Db2 のバージョンとリージョンの可用性の詳細については、「[Amazon RDS での Kerberos データベース認証でサポートされているリージョンと DB エンジン](Concepts.RDS_Fea_Regions_DB-eng.Feature.KerberosAuthentication.md)」を参照してください。

**注記**  
Kerberos 認証は、RDS for Db2 DB インスタンスで廃止された DB インスタンスクラスではサポートされていません。詳細については、「[Amazon RDS for Db2 インスタンスクラス](Db2.Concepts.General.InstanceClasses.md)」を参照してください。

## RDS for Db2 DB インスタンスの Kerberos 認証の概要
<a name="db2-kerberos-setting-up-overview"></a>

RDS for Db2 DB インスタンスに Kerberos 認証を設定するには、以下の一般的なステップを完了します。詳細は後で説明します。

1. AWS Managed Microsoft AD を使用して AWS Managed Microsoft AD ディレクトリを作成します。AWS マネジメントコンソール、AWS Command Line Interface (AWS CLI)、または Directory Service を使用して、ディレクトリを作成できます。詳細については、「AWS Directory Service 管理ガイド**」の「AWS Managed Microsoft AD を作成する」を参照してください。

1. マネージド IAM ポリシー `AmazonRDSDirectoryServiceAccess` を使用する AWS Identity and Access Management (IAM) ロールの作成 この IAM ロールにより Amazon RDS はディレクトリを呼び出すことができます。

   IAM ロールによるアクセスを許可するには、AWS Security Token Service (AWS STS) エンドポイントを AWS アカウント の正しい AWS リージョン でアクティベートする必要があります。AWS STS エンドポイントはすべての AWS リージョン でデフォルトでアクティブになっているため、他のアクションを実行せずに、エンドポイントを使用することができます。詳細については、「*IAM ユーザーガイド*」の「[AWS リージョンでの AWS STS のアクティブ化と非アクティブ化](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#sts-regions-activate-deactivate)」を参照してください。

1. 以下のいずれかの方法で、AWS マネジメントコンソール、AWS CLI、または RDS API を使用して、RDS for Db2 DB インスタンスを作成または変更します。
   + コンソール、[https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) コマンド、または [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) API オペレーションを使用して新しい RDS for Db2 DB インスタンスを作成します。手順については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
   + コンソール、[https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) コマンド、または [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) API オペレーションを使用して既存の RDS for Db2 DB インスタンスを変更します。手順については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。
   + コンソール、[https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) コマンド、または [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html) API オペレーションを使用して、DB スナップショットから RDS for Db2 DB インスタンスを復元します。手順については、「[DB インスタンスへの復元](USER_RestoreFromSnapshot.md)」を参照してください。
   + コンソール、[https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) コマンド、または [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html) API オペレーションを使用して、RDS for Db2 DB インスタンスを特定時点に復元します。手順については、「[Amazon RDS の DB インスタンスを特定の時点に復元する](USER_PIT.md)」を参照してください。

   DB インスタンスは、ディレクトリと同じ Amazon Virtual Private Cloud (VPC) か、別の AWS アカウント または VPC にあります。RDS for Db2 DB インスタンスの作成または変更時に、次の手順を行います。
   + ディレクトリの作成時に、生成されたドメイン識別子 (`d-*` 識別子) を指定します。
   + 作成した IAM ロール名を指定します。
   + DB インスタンスのセキュリティグループが、ディレクトリのセキュリティグループからインバウンドトラフィックを受信できることを確認します。

1. Db2 クライアントを設定し、次のポートでクライアントホストと Directory Service の間でトラフィックが流れることを確認します。
   + TCP/UDP ポート 53 – DNS
   + TCP 88 – Kerberos 認証
   + TCP 389 – LDAP
   + TCP 464 – Kerberos 認証

## ドメインの DB インスタンスの管理
<a name="db2-kerberos-managing-domain"></a>

AWS マネジメントコンソール、AWS CLI、または RDS API を使用して、DB インスタンスおよび Microsoft Active Directory との関係を管理できます。例えば、Kerberos 認証を有効化するために、Active Directory を関連付けることができます。また、Active Directory の関連付けを解除して、Kerberos 認証を無効化することもできます。さらに、DB インスタンスを外部認証する Microsoft Active Directory を別の Active Directory に変更することもできます。

例えば、[https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) CLI コマンドを実行して、次のアクションを実行できます。
+ `--domain` オプションに現在のメンバーシップのディレクトリ ID を指定して、失敗したメンバーシップに対する Kerberos 認証の有効化を再試行します。
+ `--domain` オプションに `none` を指定して、DB インスタンスの Kerberos 認証を無効にします。
+ `--domain` オプションに新しいドメインのドメイン識別子を指定して、DB インスタンスを 1 つのドメインから別のドメインに移動します。

### ドメインのメンバーシップを理解する
<a name="db2-kerberos-managing-domain.understanding"></a>

DB インスタンスを作成または変更すると、そのインスタンスはドメインのメンバーになります。ドメインメンバーシップのステータスは、コンソールで、または [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) コマンドを実行して表示できます。DB インスタンスのステータスは、以下のいずれかです。
+ `kerberos-enabled` - DB インスタンスで Kerberos 認証が有効化されました。
+ `enabling-kerberos` - AWS は、この DB インスタンスで Kerberos 認証を有効化中です。
+ `pending-enable-kerberos` - この DB インスタンスでの Kerberos 認証の有効化が保留中です。
+ `pending-maintenance-enable-kerberos` - AWS は、次の予定メンテナンスウィンドウ中に、DB インスタンスでの Kerberos 認証の有効化を試みます。
+ `pending-disable-kerberos` - この DB インスタンスでの Kerberos 認証の無効化が保留中です。
+ `pending-maintenance-disable-kerberos` - AWS は、次の予定メンテナンスウィンドウ中に、DB インスタンスでの Kerberos 認証の無効化を試みます。
+ `enable-kerberos-failed` - 設定の問題により、AWS は DB インスタンスで Kerberos 認証を有効化できませんでした。DB インスタンスを変更するコマンドを再発行する前に、設定の問題を修正します。
+ `disabling-kerberos` - AWS は、この DB インスタンスで Kerberos 認証を無効化中です。

ネットワーク接続の問題や正しくない IAM ロールのために、Kerberos 認証の有効化リクエストは失敗する可能性があります。場合によっては、DB インスタンスを作成または変更するときに、Kerberos 認証を有効にしようとすると失敗する可能性があります。その場合、正しい IAM ロールを使用していることを確認してから、DB インスタンスを変更し、ドメインに接続します。

# Amazon RDS for Db2 DB インスタンスの Kerberos 認証を設定する
<a name="db2-kerberos-setting-up"></a>

AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) を使用して、RDS for Db2 DB インスタンスの Kerberos 認証を設定します。Kerberos 認証を設定するには、次の手順に従います。

**Topics**
+ [ステップ 1: AWS Managed Microsoft AD を使用してディレクトリを作成する](#db2-kerberos-setting-up.create-directory)
+ [ステップ 2: 信頼関係を作成する](#db2-kerberos-setting-up-create-forest-trust)
+ [ステップ 3: Amazon RDS が Directory Service にアクセスするための IAM ロールを作成する](#db2-kerberos-setting-up-create-iam-role)
+ [ステップ 4: ユーザーを作成して設定する](#db2-kerberos-setting-up.create-users)
+ [ステップ 5: AWS Managed Microsoft AD で RDS for Db2 管理者グループを作成する](#db2-kerberos-setting-up-vpc-peering)
+ [ステップ 6: DB パラメータを変更する](#db2-kerberos-setting-up-modify-db-parameter)
+ [ステップ 7: RDS for Db2 DB インスタンスを作成または変更する](#db2-kerberos-setting-up-create-modify)
+ [ステップ 8: PowerShell で Active Directory グループ SID を取得する](#db2-kerberos-setting-up-retrieve-ad-group-sid)
+ [ステップ 9: RDS for Db2 DB インスタンスに SID と GroupName のマッピングを追加する](#db2-kerberos-setting-up-add-sid-group-mapping)
+ [ステップ 10: Db2 クライアントを設定する](#db2-kerberos-setting-up-create-logins)

## ステップ 1: AWS Managed Microsoft AD を使用してディレクトリを作成する
<a name="db2-kerberos-setting-up.create-directory"></a>

Directory Service は、Active Directory でフルマネージド AWS クラウド を作成します。AWS Managed Microsoft AD ディレクトリを作成すると、Directory Service が 2 つのドメインコントローラーと DNS サーバーを作成します。ディレクトリサーバーは、VPC 内の異なるサブネットで作成されます。この冗長性により、障害が発生してもディレクトリがアクセスできるようになります。

 AWS Managed Microsoft AD ディレクトリを作成すると、Directory Service がユーザーに代わって自動的に以下のタスクを実行します。
+ VPC 内で Active Directory を設定します。
+ ユーザー名 `Admin` と指定されたパスワードで、ディレクトリ管理者アカウントを作成します。このアカウントを使用してディレクトリを管理します。
**重要**  
このパスワードは必ず保管してください。Directory Service にはこのパスワードは保存されず、復元やリセットもできません。
+ ディレクトリコントローラー用セキュリティグループを作成します。セキュリティグループは、RDS for Db2 DB インスタンスとの通信を許可する必要があります。

AWS Directory Service for Microsoft Active Directory を起動すると、AWS は組織単位 (OU) を作成します。OU にはディレクトリのオブジェクトがすべて含まれています。この OU はドメインルートにあります。OU にはディレクトリを作成する際に入力した NetBIOS 名があります。ドメインルートは AWS が所有し、管理します。

`Admin` ディレクトリに作成された AWS Managed Microsoft AD アカウントには、OU に対して頻繁に実行される管理行為の権限が含まれています。
+ ユーザーを作成、更新、削除する。
+ ファイルやプリントサーバーなどのドメインにリソースを追加して、追加したリソースへのアクセス許可を OU のユーザーとグループに割り当てる。
+ 追加の OU やコンテナを作成する。
+ 権限を委譲する。
+ 削除したオブジェクトを Active Directory のごみ箱から元に戻す。
+ Directory Service で Windows PowerShell 向けの Active Directory およびドメインネームサービス (DNS) モジュールを実行する。

`Admin` アカウントには、ドメイン全体に関係するアクティビティを実行する権限もあります。
+ DNS 設定 (レコード、ゾーン、フォワーダーの追加、削除、または更新) を管理する。
+ DNS イベントログを参照する。
+ セキュリティイベントログを参照する。

**AWS Managed Microsoft AD でディレクトリを作成するには**

1. AWS マネジメントコンソール にサインインし、Directory Service コンソール ([https://console.aws.amazon.com/directoryservicev2/](https://console.aws.amazon.com/directoryservicev2/))を開きます。

1. **[ディレクトリの設定]** を選択します。

1. **[AWS Managed Microsoft AD]** を選択します。現在、Amazon RDS での使用がサポートされているのは AWS Managed Microsoft AD のオプションのみです。

1. ******[次へ]****** を選択します。

1. ******[ディレクトリ情報の入力]****** ページに、以下の情報を指定します。
   + **エディション** - 目的の要件を満たすエディションを選択します。
   + **ディレクトリ DNS 名**** **- ディレクトリの完全修飾名 (例: `corp.example.com`)。
   + **ディレクトリ NetBIOS 名**** **- (オプション) ディレクトリの短縮名 (例: `CORP`)。
   + **ディレクトリの説明** - (オプション) ディレクトリの説明。
   + **管理者パスワード**** **– ディレクトリ管理者のパスワード。ディレクトリの作成プロセスでは、ユーザー名 `Admin` とこのパスワードを使用して管理者アカウントが作成されます。

     ディレクトリ管理者のパスワードには、「admin」の単語を含めることはできません。パスワードは大文字と小文字を区別し、8-64 文字にします。また、以下の 4 つのカテゴリうち 3 つから少なくとも 1 文字を含める必要があります。
     + 小文字 (a～z) 
     + 大文字 (A～Z) 
     + 数字 (0～9) 
     + 英数字以外の文字 (\$1\$1@\$1\$1%^&\$1\$1-\$1=`\$1\$1()\$1\$1[]:;"'<>,.?/) 
     + パスワードの確認 - 管理者パスワードを再入力します。
**重要**  
このパスワードは必ず保管してください。Directory Service にはこのパスワードは保存されず、復元やリセットもできません。

1. [**Next (次へ)**] を選択します。

1. [**VPC とサブネットの選択**] ページで、以下の情報を指定します。
   + **VPC** - ディレクトリの VPC を選択します。RDS for Db2 DB インスタンスは、この同じ VPC または別の VPC で作成できます。
   + **サブネット** - ディレクトリサーバーのサブネットを選択します。2 つのサブネットは、異なるアベイラビリティーゾーンに存在している必要があります。

1. [**Next (次へ)**] を選択します。

1. ディレクトリの情報を確認します。変更が必要な場合は、[**戻る**] を選択し、変更を行います。情報が正しい場合は、[**Create directory (ディレクトリの作成)**] を選択します。  
![\[Directory Service コンソールでのディレクトリ作成時の [確認と作成] ウィンドウ。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/db2-create-ADS-directory.png)

ディレクトリが作成されるまで、数分かかります。正常に作成されると、[**Status**] 値が [**Active**] に変わります。

ディレクトリに関する情報を表示するには、**[ディレクトリ ID]** で、ディレクトリ ID を選択します。**ディレクトリ ID** 値を書き留めます。RDS for Db2 DB インスタンスを作成または変更する際に、この値が必要です。

![\[Directory Service コンソールの [ディレクトリの詳細] セクションと [ディレクトリ ID]。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/db2-ADS-directory-details.png)


## ステップ 2: 信頼関係を作成する
<a name="db2-kerberos-setting-up-create-forest-trust"></a>

AWS Managed Microsoft AD のみを使用する予定の場合は、「[ステップ 3: Amazon RDS が Directory Service にアクセスするための IAM ロールを作成する](#db2-kerberos-setting-up-create-iam-role)」に進みます。

セルフマネージド Active Directory を使用して Kerberos 認証を有効にするには、セルフマネージド Active Directory との間にフォレストの信頼関係を作成する必要があります。フォレストの信頼とは、Microsoft AD およびセルフマネージド Active Directory と、前のステップで作成した AWS Managed Microsoft AD との間の信頼関係です。信頼は、両方の Active Directory が相互に信頼する双方向にすることもできます。Directory Service を使用してフォレストの信頼を設定する方法の詳細については、「*AWS Directory Service Administration Guide*」の「[When to create a trust relationship](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_setup_trust.html)」を参照してください。

## ステップ 3: Amazon RDS が Directory Service にアクセスするための IAM ロールを作成する
<a name="db2-kerberos-setting-up-create-iam-role"></a>

Amazon RDS が Directory Service を呼び出すには、AWS アカウント にマネージド IAM ポリシー `AmazonRDSDirectoryServiceAccess` を使用する IAM ロールが必要です。このロールにより、Amazon RDS は Directory Service への呼び出しを行うことができます。

AWS マネジメントコンソール を使用して DB インスタンスを作成し、コンソールユーザーが `iam:CreateRole` アクセス許可を持っている場合、コンソールは必要な IAM ロールを自動的に作成します。この場合、ロール名は `rds-directoryservice-kerberos-access-role` です。それ以外の場合は、IAM ロールを手動で作成する必要があります。IAM ロールを作成する場合、[`Directory Service`] を選択し、それに AWS マネージドポリシー `AmazonRDSDirectoryServiceAccess` をアタッチします。

サービス用の IAM ロールを作成する方法の詳細については、「*IAM ユーザーガイド*」の「[AWS のサービスにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)」を参照してください。

**注記**  
RDS for Microsoft SQL Server の Windows 認証に使用される IAM ロールは、RDS for Db2 では使用できません。

`AmazonRDSDirectoryServiceAccess` マネージドポリシーを使用する代わりに、必要なアクセス許可を使用してポリシーを作成することもできます。これを行うには、IAM ロールに次の IAM 信頼ポリシーが必要です。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "directoryservice.rds.amazonaws.com",
          "rds.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

また、ロールには、以下の IAM ロールポリシーも必要です。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "ds:DescribeDirectories",
        "ds:AuthorizeApplication",
        "ds:UnauthorizeApplication",
        "ds:GetAuthorizedApplicationDetails"
      ],
    "Effect": "Allow",
    "Resource": "*"
    }
  ]
}
```

------

## ステップ 4: ユーザーを作成して設定する
<a name="db2-kerberos-setting-up.create-users"></a>

Active Directory Users and Computers ツールを使用してユーザーを作成できます。これは、Active Directory Domain Services および Active Directory Lightweight Directory Services ツールのいずれかです。詳細については、Microsoft ドキュメントの「[Active Directory ドメインにユーザーとコンピューターを追加する](https://learn.microsoft.com/en-us/troubleshoot/windows-server/identity/create-an-active-directory-server#add-users-and-computers-to-the-active-directory-domain)」を参照してください。この場合、ユーザーは個人またはその他のエンティティです。例えば、ドメインの一部であり、その ID がディレクトリで管理されているコンピュータなどです。

Directory Service ディレクトリにユーザーを作成するには、Directory Service ディレクトリのメンバーである Windows ベースの Amazon EC2 インスタンスに接続している必要があります。同時に、ユーザーを作成する権限を持つユーザーとしてサインインしていなければなりません。詳細については、*AWS Directory Service 管理ガイド*の「[ユーザーの作成](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups_create_user.html)」を参照してください。

## ステップ 5: AWS Managed Microsoft AD で RDS for Db2 管理者グループを作成する
<a name="db2-kerberos-setting-up-vpc-peering"></a>

RDS for Db2 は、マスターユーザー、または 2 つの Amazon RDS 予約ユーザー `rdsdb` と `rdsadmin` の Kerberos 認証をサポートしていません。代わりに、AWS Managed Microsoft AD で `masterdba` という名前の新しいグループを作成する必要があります。詳細については、Microsoft ドキュメントの「[Create a Group Account in Active Directory](https://learn.microsoft.com/en-us/windows/security/operating-system-security/network-security/windows-firewall/create-a-group-account-in-active-directory)」を参照してください。このグループに追加するユーザーには、マスターユーザー権限があります。

Kerberos 認証を有効にすると、マスターユーザーは `masterdba` ロールを失います。その結果、Kerberos 認証を無効にしない限り、マスターユーザーはインスタンスのローカルユーザーグループのメンバーシップにアクセスできなくなります。パスワードログインでマスターユーザーを引き続き使用するには、マスターユーザーと同じ名前のユーザーを AWS Managed Microsoft AD に作成します。続いて、ユーザーをグループ `masterdba` に追加します。

## ステップ 6: DB パラメータを変更する
<a name="db2-kerberos-setting-up-modify-db-parameter"></a>

AWS Managed Microsoft AD のみを使用する予定の場合は、「[ステップ 7: RDS for Db2 DB インスタンスを作成または変更するステップ 7: DB インスタンスを作成または変更する](#db2-kerberos-setting-up-create-modify)」に進みます。

セルフマネージド Active Directory を使用して Kerberos 認証を有効にするには、パラメータグループのパラメータ `rds.active_directory_configuration` を `AWS_MANAGED_AD_WITH_TRUST` に設定する必要があります。デフォルトでは、このパラメータは AWS Managed Microsoft AD を使用する場合にのみ `AWS_MANAGED_AD` に設定されます。

DB パラメータの変更については、「[パラメータグループのパラメータの変更](db2-supported-parameters.md#db2-modifying-parameter-group-parameters)」を参照してください。

## ステップ 7: RDS for Db2 DB インスタンスを作成または変更する
<a name="db2-kerberos-setting-up-create-modify"></a>

ディレクトリで使用する RDS for Db2 DB インスタンスを作成または変更します。AWS マネジメントコンソール、AWS CLI、または RDS API を使用して DB インスタンスとディレクトリを関連付けることができます。これは、次のいずれかの方法で行うことができます。
+ コンソール、[https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) コマンド、または [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) API オペレーションを使用して新しい RDS for Db2 DB インスタンスを作成します。手順については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
+ コンソール、[https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) コマンド、または [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) API オペレーションを使用して、既存の RDS for Db2 DB インスタンスを変更します。手順については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。
+ コンソール、[https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) コマンド、または [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html) API オペレーションを使用して、DB スナップショットから RDS for Db2 DB インスタンスを復元します。手順については、「[DB インスタンスへの復元](USER_RestoreFromSnapshot.md)」を参照してください。
+ コンソール、[https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) コマンド、または [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html) API オペレーションを使用して、RDS for Db2 DB インスタンスを特定時点に復元します。手順については、「[Amazon RDS の DB インスタンスを特定の時点に復元する](USER_PIT.md)」を参照してください。

Kerberos 認証は、VPC 内の RDS for Db2 DB インスタンスでのみサポートされています。DB インスタンスは、ディレクトリと同じ VPC または異なる VPC 内にあります。DB インスタンスがディレクトリと通信できるように、ディレクトリの VPC 内の出力を許可するセキュリティグループを使用する必要があります。

### コンソール
<a name="db2-kerberos-setting-up-create-modify-console"></a>

DB インスタンスを作成、変更、復元するためにコンソールを使用する場合は、**[データベース認証]** セクションの **[パスワードと Kerberos 認証]** を選択します。次に、[**ディレクトリのブラウジング**] を選択します。Directory Service を使用するには、ディレクトリを選択するか、**[ディレクトリを作成]** を選択します。

![\[Amazon RDS コンソールの [データベース認証] セクション。[パスワードと Kerberos 認証] が選択されています。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/db2-database-authentication-directory.png)


### AWS CLI
<a name="db2-kerberos-setting-up-create-modify-cli"></a>

AWS CLI を使用する場合は、DB インスタンスが、作成したディレクトリを使用できるように、以下のパラメータが必要です。
+ `--domain` パラメータには、ディレクトリの作成時に生成されたドメイン識別子 ("`d-*`" 識別子) を使用します。
+ `--domain-iam-role-name` パラメータには、マネージド IAM ポリシー `AmazonRDSDirectoryServiceAccess` を使用する作成済みのロールを使用します。

以下の例では、ディレクトリを使用するように DB インスタンスを変更します。例の、以下のプレースホルダをユーザー自身の値に置き換えます。
+ *db\$1instance\$1name* - RDS for Db2 DB インスタンスの名前。
+ *directory\$1id* - 作成した AWS Directory Service for Microsoft Active Directory ディレクトリの ID。
+ *role\$1name* - 作成した IAM ロールの名前。

```
aws rds modify-db-instance --db-instance-identifier db_instance_name --domain d-directory_id --domain-iam-role-name role_name 
```

**重要**  
Kerberos 認証を有効化するために DB インスタンスを変更する場合は、変更後に DB インスタンスを再起動します。

## ステップ 8: PowerShell で Active Directory グループ SID を取得する
<a name="db2-kerberos-setting-up-retrieve-ad-group-sid"></a>

セキュリティ ID (SID) は、セキュリティプリンシパルまたはセキュリティグループを一意に識別します。セキュリティグループまたはアカウントを Active Directory で作成すると、Active Directory は SID をグループに割り当てます。Active Directory から AD セキュリティグループの SID を取得するには、Active Directory ドメインの一部である Windows クライアントマシンで `Get-ADGroup` コマンドレットを使用します。`Identity` パラメータは、SID を取得する対象である Active Directory グループの名前を指定します。

次の例では、Active Directory グループ `adgroup1` の SID を返します。

```
C:\Users\Admin> Get-ADGroup -Identity adgroup1 | select SID

             SID
-----------------------------------------------
S-1-5-21-3168537779-1985441202-1799118680-1612
```

データベースに関連するすべてのグループに対して、このマッピングを生成する必要があります。

## ステップ 9: RDS for Db2 DB インスタンスに SID と GroupName のマッピングを追加する
<a name="db2-kerberos-setting-up-add-sid-group-mapping"></a>

前のステップで作成した SID と GroupName のマッピングを RDS for Db2 DB インスタンスに追加する必要があります。マッピングごとに、次のストアドプロシージャを呼び出します。*SID* と *group\$1name* を独自の情報に置き換えます。

```
db2 connect to rdsadmin
db2 "call rdsadmin.set_sid_group_mapping(?, 'SID','group_name')"
```

詳細については、「[rdsadmin.set\$1sid\$1group\$1mapping](db2-sp-granting-revoking-privileges.md#db2-sp-set-sid-group-mapping)」を参照してください。

タスクのステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

## ステップ 10: Db2 クライアントを設定する
<a name="db2-kerberos-setting-up-create-logins"></a>

**Db2 クライアントを設定するには**

1. ドメインを指す **/etc/krb5.conf** ファイル (または同等) を作成します。
**注記**  
Windows オペレーティングシステムの場合は、**C:\$1windows\$1krb5.ini** ファイルを作成します。

1. クライアントホストと Directory Service 間でトラフィックが流れることを確認します。以下のタスクには、Netcat などのネットワークユーティリティを使用します。

   1. ポート 53 の DNS 経由のトラフィックを確認します。

   1. ポート 53 および Kerberos の TCP/UDP 上のトラフィックを確認します。これには、Directory Service の場合ポート 88 および 464 が含まれます。

1. データベースポートを介してクライアントホストと DB インスタンス間でトラフィックが流れることを確認します。コマンド `db2` を使用して、データベースに接続してアクセスできます。

次の例は、AWS Managed Microsoft AD の /etc/krb5.conf ファイルの内容です。

```
[libdefaults]
default_realm = EXAMPLE.COM
[realms]
EXAMPLE.COM = {
kdc = example.com
admin_server = example.com
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
```

# Kerberos 認証を使用して Amazon RDS for Db2 に接続する
<a name="db2-kerberos-connecting"></a>

Kerberos 認証を使用して Amazon RDS for Db2 DB インスタンスに接続するには、次の手順に従います。

**Kerberos 認証を使用して RDS for Db2 に接続するには**

1. コマンドプロンプトで、次のコマンドを実行します。次の例では、*username* をユーザーの Microsoft Active Directory ユーザー名に置き換えます。

   ```
   kinit username
   ```

1. RDS for Db2 DB インスタンスがパブリックにアクセス可能な VPC を使用している場合、Amazon EC2 クライアントの `/etc/hosts` ファイルに DB インスタンスエンドポイントのプライベート IP アドレスを追加します。次の例では IP アドレスを取得し、それを `/etc/hosts` ファイルに追加します。

   ```
   % dig +short Db2-endpoint.AWS-Region.rds.amazonaws.com  
   ;; Truncated, retrying in TCP mode.
   ec2-34-210-197-118.AWS-Region.compute.amazonaws.com.
   34.210.197.118 
   
   % echo "34.210.197.118  Db2-endpoint.AWS-Region.rds.amazonaws.com" >> /etc/hosts
   ```

1. 次のコマンドを使用して、Active Directory に関連付けられている RDS for Db2 DB インスタンスにログインします。*database\$1name* を RDS for Db2 データベースの名前に置き換えます。

   ```
   db2 connect to database_name
   ```

# 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"
   ```

# Amazon RDS for Db2 DB インスタンスと Amazon S3 の統合
<a name="db2-s3-integration"></a>

Amazon RDS ストアドプロシージャを使用して、Amazon RDS for Db2 DB インスタンスと Amazon Simple Storage Service (Amazon S3) バケット間でファイルを転送できます。詳細については、「[Amazon RDS for Db2 ストアドプロシージャリファレンス](db2-stored-procedures.md)」を参照してください。

**注記**  
DB インスタンスと Amazon S3 バケットは同じ AWS リージョン に存在する必要があります。

RDS for Db2 が Amazon S3 と統合するには、RDS for Db2 がある Amazon S3 バケットに DB インスタンスがアクセスできる必要があります。この時点で S3 バケットがない場合、[バケット を作成します](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket-overview.html)。

**Topics**
+ [ステップ 1: IAM ポリシーを作成する](#db2-creating-iam-policy)
+ [ステップ 2: IAM ロールを作成して IAM ポリシーをアタッチする](#db2-creating-iam-role)
+ [ステップ 3: RDS for Db2 DB インスタンスに IAM ロールを追加する](#db2-adding-iam-role)

## ステップ 1: IAM ポリシーを作成する
<a name="db2-creating-iam-policy"></a>

このステップでは、Amazon S3 バケットからお客様の RDS DB インスタンスにファイルを転送するために必要なアクセス許可を持つ AWS Identity and Access Management (IAM) ポリシーを作成します。このステップは、S3 バケットが既に作成されていることを前提としています。詳細については、「*Amazon S3 ユーザーガイド*」の「[バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)」を参照してください。

ポリシーを作成する前に、次の情報を書き留めます。
+ バケットの Amazon リソースネーム (ARN)
+ ユーザーの AWS Key Management Service (AWS KMS) キーの ARN (バケットが SSE-KMS または SSE-S3 暗号化を使用している場合)

作成する IAM ポリシーには、次の情報が含まれている必要があります。*\$1amzn-s3-demo-bucket\$1* は、実際の S3 バケット名に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowS3BucketAccess",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt",
                "s3:PutObject",
                "s3:GetObject",
                "s3:AbortMultipartUpload",
                "s3:ListBucket",
                "s3:GetObjectVersion",
                "s3:ListMultipartUploadParts",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::${amzn-s3-demo-bucket}/*",
                "arn:aws:s3:::${amzn-s3-demo-bucket}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

IAM ポリシーは、AWS マネジメントコンソール または AWS Command Line Interface (AWS CLI) を使用して作成できます。

### コンソール
<a name="creating-iam-policy-console"></a>

**Amazon S3 バケットへのアクセスを Amazon RDS に許可する IAM ポリシーを作成するには**

1. AWS マネジメントコンソール にサインインして、IAM コンソール [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) を開きます。

1. ナビゲーションペインで、**[ポリシー]** を選択します。

1. **[ポリシーを作成]** を選択し、**[JSON]** を選択します。

1. サービスごとにアクションを追加します。Amazon S3 バケットから Amazon RDS にファイルを転送するには、バケットのアクセス許可とオブジェクトのアクセス許可を選択する必要があります。

1. **[リソース]** を展開します。バケットとオブジェクトのリソースを指定する必要があります。

1. [**次へ**] を選択します。

1. **[ポリシー名]** にこのポリシーの名前を入力します。

1. (オプション) **[Description (説明)]** に、ポリシーの説明を入力します。

1. [**Create policy**] (ポリシーの作成) を選択します。

### AWS CLI
<a name="creating-iam-policy-cli"></a>

**Amazon S3 バケットへのアクセスを Amazon RDS に許可する IAM ポリシーを作成するには**

1.  次の JSON ポリシードキュメントを含む JSON ファイルを作成します。*\$1amzn-s3-demo-bucket\$1* は、実際の S3 バケット名に置き換えます。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowS3BucketAccess",
               "Effect": "Allow",
               "Action": [
                   "kms:GenerateDataKey",
                   "kms:Decrypt",
                   "s3:PutObject",
                   "s3:GetObject",
                   "s3:AbortMultipartUpload",
                   "s3:ListBucket",
                   "s3:GetObjectVersion",
                   "s3:ListMultipartUploadParts",
                   "s3:GetBucketAcl",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::${amzn-s3-demo-bucket}/*",
                   "arn:aws:s3:::${amzn-s3-demo-bucket}"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListAllMyBuckets"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

------

1. [https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html) コマンドを実行します。次の例では、*iam\$1policy\$1name* と *iam\$1policy\$1file\$1name* を IAM ポリシーの名前と、ステップ 1 で作成した JSON ファイルの名前に置き換えます。

   Linux、macOS、Unix の場合:

   ```
   aws iam create-policy \
       --policy-name iam_policy_name \
       --policy-document '{
         "Version": "2012-10-17"		 	 	 		 	 	 		 	 	 ,
         "Statement": [
           {
             "Effect": "Allow",
             "Action": [
               "kms:GenerateDataKey",
               "kms:Decrypt",
               "s3:PutObject",
               "s3:GetObject",
               "s3:AbortMultipartUpload",
               "s3:ListBucket",
               "s3:DeleteObject",
               "s3:GetObjectVersion",
               "s3:ListMultipartUploadParts"
             ],
             "Resource": [
               "arn:aws:s3:::s3_bucket_name/*",
               "arn:aws:s3:::s3_bucket_name"
             ]
           }
         ]
       }'
   ```

   Windows の場合:

   ```
   aws iam create-policy ^
       --policy-name iam_policy_name ^
       --policy-document '{
         "Version": "2012-10-17"		 	 	 		 	 	 		 	 	 ,
         "Statement": [
           {
             "Effect": "Allow",
               "Action": [
                 "s3:PutObject",
                 "s3:GetObject",
                 "s3:AbortMultipartUpload",
                 "s3:ListBucket",
                 "s3:DeleteObject",
                 "s3:GetObjectVersion",
                 "s3:ListMultipartUploadParts"
               ],
               "Resource": [
                 "arn:aws:s3:::s3_bucket_name/*",
                 "arn:aws:s3:::s3_bucket_name"
               ]
           }
         ]
       }'
   ```

1. ポリシーが作成されたら、ポリシーの ARN を書き留めます。[ステップ 2: IAM ロールを作成して IAM ポリシーをアタッチする](#db2-creating-iam-role) の ARN が必要です。

IAM ポリシーの作成については、「IAM ユーザーガイド」の「[IAM ポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)」を参照してください。

## ステップ 2: IAM ロールを作成して IAM ポリシーをアタッチする
<a name="db2-creating-iam-role"></a>

このステップは、IAM ポリシーを [ステップ 1: IAM ポリシーを作成する](#db2-creating-iam-policy) で作成したことを前提としています。このステップでは、RDS for Db2 DB インスタンスの IAM ロールを作成し、ロールに IAM ポリシーをアタッチします。

AWS マネジメントコンソール または AWS CLI を使用して、DB インスタンスの IAM ロールを作成できます。

### コンソール
<a name="creating-iam-role-console"></a>

**IAM ロールを作成して IAM ポリシーをアタッチするには**

1. AWS マネジメントコンソール にサインインして、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. ナビゲーションペインで **[Roles]** (ロール) を選択します。

1. **[ロールの作成]** を選択します。

1. **[信頼されたエンティティタイプ]** で、**[AWS のサービス]** を選択します。

1. **[サービスまたはユースケース]** で、**[RDS]** を選択し、**[RDS ****- ****データベースにロールを追加]** を選択します。

1. [**次へ**] を選択します。

1. **[アクセス許可ポリシー]** で、作成した IAM ポリシーの名前を検索して選択します。

1. [**次へ**] を選択します。

1. **[ロール名]** に、ロールの名前を入力します。

1. (オプション) **[説明]** には、新しいロールの説明を入力します。

1. **[ロールの作成]** を選択します。

### AWS CLI
<a name="creating-iam-role-cli"></a>

**IAM ロールを作成して IAM ポリシーをアタッチするには**

1. 次の JSON ポリシードキュメントを含む JSON ファイルを作成します。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "rds.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. [https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html) コマンドを実行します。次の例では、*iam\$1role\$1name* と *iam\$1assume\$1role\$1policy\$1file\$1name* を IAM ロールの名前と、ステップ 1 で作成した JSON ファイルの名前に置き換えます。

   Linux、macOS、Unix の場合:

   ```
   aws iam create-role \
       --role-name iam_role_name \
       --assume-role-policy-document '{
         "Version": "2012-10-17"		 	 	 		 	 	 		 	 	 ,
         "Statement": [
           {
             "Effect": "Allow",
             "Principal": {
               "Service": "rds.amazonaws.com"
             },
             "Action": "sts:AssumeRole"
           }
         ]
       }'
   ```

   Windows の場合:

   ```
   aws iam create-role ^
       --role-name iam_role_name ^
       --assume-role-policy-document '{
         "Version": "2012-10-17"		 	 	 		 	 	 		 	 	 ,
         "Statement": [
           {
             "Effect": "Allow",
             "Principal": {
               "Service": "rds.amazonaws.com"
             },
             "Action": "sts:AssumeRole"
           }
         ]
       }'
   ```

1. ロールが作成されたら、このロールの ARN を書き留めます。[ステップ 3: RDS for Db2 DB インスタンスに IAM ロールを追加する](#db2-adding-iam-role) の ARN が必要です。

1. [https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html) コマンドを実行します。次の例では、*iam\$1policy\$1arn* を [ステップ 1: IAM ポリシーを作成する](#db2-creating-iam-policy) で作成した IAM ポリシーの ARN に置き換えます。*iam\$1role\$1name* は、先ほど作成した IAM ロールの名前に置き換えます。

   Linux、macOS、Unix の場合:

   ```
   aws iam attach-role-policy \
      --policy-arn iam_policy_arn \
      --role-name iam_role_name
   ```

   Windows の場合:

   ```
   aws iam attach-role-policy ^
      --policy-arn iam_policy_arn ^
      --role-name iam_role_name
   ```

詳細については、*IAM ユーザーガイド*の「[IAM ユーザーにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)」を参照してください。

## ステップ 3: RDS for Db2 DB インスタンスに IAM ロールを追加する
<a name="db2-adding-iam-role"></a>

このステップでは、IAM ロールを RDS for Db2 DB インスタンスに追加します。次の要件に注意してください。
+ 必須の Amazon S3 アクセス許可ポリシーがアタッチされた IAM ロールへのアクセスが許可されている必要があります。
+ RDS for Db2 DB インスタンスには、一度に 1 つの IAM ロールのみを関連付けることができます。
+ RDS for Db2 DB インスタンスは、**[使用可能]** の状態である必要があります。

IAM ロールを DB インスタンスに追加するには、AWS マネジメントコンソール または AWS CLI を使用します。

### コンソール
<a name="db2-adding-iam-role-console"></a>

**RDS for Db2 DB インスタンスに IAM ロールを追加するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**データベース** を選択します。

1. RDS for Db2 DB インスタンス名を選択します。

1. 「**接続性とセキュリティ**」 タブで、ページ下部の**IAM ロールを管理する** セクションまでスクロールダウンします。

1. **[このインスタンスに IAM ロールを追加]** で、[ステップ 2: IAM ロールを作成して IAM ポリシーをアタッチする](#db2-creating-iam-role) で作成したロールを選択します。

1. [**機能**] で、[**S3\$1INTEGRATION**] を選択します。

1. [**Add role**] を選択します。  
![\[S3_INTEGRATION 機能が DB インスタンスの IAM ロールに追加されました。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/db2-s3-integration-role.png)

### AWS CLI
<a name="db2-adding-iam-role-cli"></a>

IAM ロールを RDS for Db2 DB インスタンスに追加するには、[https://docs.aws.amazon.com/cli/latest/reference/rds/add-role-to-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/add-role-to-db-instance.html) コマンドを実行します。次の例では、*region*、*db\$1instance\$1name*、および *iam\$1role\$1arn* を、DB インスタンスが存在する AWS リージョン の名前、DB インスタンスの名前、および「[ステップ 2: IAM ロールを作成して IAM ポリシーをアタッチする](#db2-creating-iam-role)」で作成した IAM ロールの ARN に置き換えます。

Linux、macOS、Unix の場合:

```
aws rds add-role-to-db-instance \
    --region $region \
    --db-instance-identifier $db_instance_name \
    --feature-name S3_INTEGRATION \
    --role-arn $iam_role_arn \
```

Windows の場合:

```
aws rds add-role-to-db-instance ^
    --region $region \
    --db-instance-identifier db_instance_name ^
    --feature-name S3_INTEGRATION ^
    --role-arn iam_role_arn ^
```

ロールが RDS for Db2 DB インスタンスに正常に追加されたことを確認するには、[https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) コマンドを実行します。次の例では、*db\$1instance\$1name* を DB インスタンスの名前に置き換えます。

Linux、macOS、Unix の場合:

```
aws rds describe-db-instances \
    --filters "Name=db-instance-id,Values=db_instance_name" \
    --query 'DBInstances[].AssociatedRoles'
```

Windows の場合:

```
aws rds describe-db-instances ^
    --filters "Name=db-instance-id,Values=db_instance_name" ^
    --query 'DBInstances[].AssociatedRoles'
```

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

```
[
    [
        {
            "RoleArn": "arn:aws:iam::0123456789012:role/rds-db2-s3-role",
            "FeatureName": "S3_INTEGRATION",
            "Status": "ACTIVE"
        }
    ]
]
```

# Amazon RDS for Db2 へのデータの移行
<a name="db2-migrating-data-to-rds"></a>

AWS またはネイティブ Db2 ツールのいずれかを使用して、セルフマネージド Db2 データベースを Amazon RDS for Db2 に移行できます。

AWS のサービスを使用して Db2 データベースから Amazon RDS for Db2 に移行する方法については、「[AWS のサービスを使用して Db2 から Amazon RDS for Db2 にデータを移行する](db2-migration-approaches.md)」を参照してください。

ネイティブ Db2 ツールを使用して Db2 データベースから Amazon RDS for Db2 に移行する方法については、「[ネイティブ Db2 ツールを使用して Db2 から Amazon RDS for Db2 にデータを移行する](db2-native-db2-tools.md)」を参照してください。

# AWS のサービスを使用して Db2 から Amazon RDS for Db2 にデータを移行する
<a name="db2-migration-approaches"></a>

Amazon RDS では、Db2 データベースから Amazon RDS for Db2 にデータを移行するには、いくつかの方法があります。Linux、AIX、または Windows 環境から Amazon RDS for Db2 への Db2 データベースの 1 回限りの移行を実行できます。ダウンタイムを最小限に抑えるため、ほぼゼロのダウンタイムでの移行を実行できます。データを Amazon S3 に保存し、Db2 データベースに一度に 1 つのテーブルをロードすることで、データを移行できます。レプリケーションや AWS Database Migration Service を使用して同期移行を実行することもできます。

Linux ベースの Db2 データベースの 1 回限りの移行の場合、Amazon RDS はオフラインバックアップとオンラインバックアップのみをサポートします。Amazon RDS は、増分バックアップおよび Delta バックアップをサポートしていません。Linux ベースの Db2 データベースをほぼゼロのダウンタイムで移行する場合、Amazon RDS にはオンラインバックアップが必要です。ほぼゼロのダウンタイムでの移行にはオンラインバックアップを使用し、ダウンタイムに対処できる移行にはオフラインバックアップを使用することをお勧めします。

**Topics**
+ [Amazon RDS for Db2 の Linux から Linux への移行](db2-one-time-migration-linux.md)
+ [Amazon RDS for Db2 のダウンタイムがほぼゼロの Linux から Linux への移行](db2-near-zero-downtime-migration.md)
+ [Amazon RDS for Db2 の Linux から Linux への同期移行](db2-synchronous-migration-linux.md)
+ [Amazon RDS for Db2 の AIX または Windows から Linux への移行](db2-one-time-migration-aix-windows-linux.md)
+ [Amazon S3 から Amazon RDS for Db2 への Db2 データの移行](db2-migration-load-from-s3.md)
+ [AWS Database Migration Service (AWS DMS) を使用した Amazon RDS for Db2 への移行](db2-migration-amazon-dms.md)

# Amazon RDS for Db2 の Linux から Linux への移行
<a name="db2-one-time-migration-linux"></a>

この移行アプローチでは、セルフマネージド Db2 データベースを Amazon S3 バケットにバックアップします。次に、Amazon RDS ストアドプロシージャを使用して、Db2 データベースを Amazon RDS for Db2 DB インスタンスに復元します。Amazon S3 の使用の詳細については、「[Amazon RDS for Db2 DB インスタンスと Amazon S3 の統合](db2-s3-integration.md)」を参照してください。

RDS for Db2 のバックアップと復元は、IBM Db2 によってサポートされているアップグレードパスと制限に従います。詳細については、 IBM Db2 ドキュメントの「[Db2 サーバーについてサポートされているアップグレードパス](https://www.ibm.com/docs/en/db2/11.5?topic=servers-supported-upgrade-paths-db2)」と「[Db2 サーバーのアップグレード制限](https://www.ibm.com/docs/en/db2/11.5?topic=servers-upgrade-restrictions)」を参照してください。

**Topics**
+ [ネイティブ復元の使用に関する制限と推奨事項](#db2-linux-migration-limitations)
+ [データベースを Amazon S3 にバックアップする](#db2-linux-backing-up-database)
+ [デフォルトの自動ストレージグループを作成する](#db2-linux-creating-auto-storage-group)
+ [Db2 データベースの復元](#db2-linux-restoring-db2-database)

## ネイティブ復元の使用に関する制限と推奨事項
<a name="db2-linux-migration-limitations"></a>

ネイティブ復元を使用する場合は、次の制限と推奨事項が適用されます。
+ Amazon RDS は、サポートされている RDS for Db2 バージョンと一致するオンプレミスバージョンの Db2 の移行のみをサポートします。サポートされているバージョンの詳細については、「[Amazon RDS Db2 インスタンスのアップグレード管理](Db2.Concepts.VersionMgmt.Supported.md)」を参照してください。
+ Amazon RDS では、ネイティブ復元にオフラインおよびオンラインのバックアップのみがサポートされています。Amazon RDS は、増分バックアップまたは Delta バックアップをサポートしていません。
+ RDS for Db2 DB インスタンスがあるリージョンとは異なる AWS リージョンのAmazon S3 バケットから復元することはできません。
+ Amazon S3 では、Amazon S3 バケットにアップロードするファイルのサイズが 5 TB に制限されます。データベースバックアップファイルが 5 TB を超える場合は、バックアップファイルを小さいファイルに分割します。
+ Amazon RDS は、非 fenced 外部ルーチン、増分復元、または Delta 復元をサポートしていません。
+ 暗号化したソースデータベースから復元することはできませんが、暗号化された Amazon RDS DB インスタンスには復元できます。

復元プロセスは、設定によって異なります。

`USE_STREAMING_RESTORE` を `TRUE` に設定すると、Amazon RDS は復元中に S3 バケットから直接バックアップをストリーミングします。ストリーミングはストレージ要件を大幅に削減します。バックアップのサイズまたは元のデータベースのサイズのうち、いずれか大きい方のサイズ以上のストレージスペースをプロビジョニングするだけで済みます。

`USE_STREAMING_RESTORE` を `FALSE` に設定すると、Amazon RDS はまず RDS for Db2 DB インスタンスにバックアップをダウンロードし、次にバックアップを抽出します。抽出には追加のストレージスペースが必要です。バックアップのサイズと元のデータベースのサイズの合計以上のストレージスペースをプロビジョニングする必要があります。

復元されたデータベースの最大サイズは、サポートされているデータベースの最大サイズから、復元プロセス中の一時ストレージに必要なスペースを引いた値に等しくなります。

## データベースを Amazon S3 にバックアップする
<a name="db2-linux-backing-up-database"></a>

Amazon S3 でデータベースをバックアップするには、次の AWS コンポーネントが必要です。
+ **バックアップファイルを保存する Amazon S3 バケット: Amazon RDS に移行するバックアップファイルをアップロードします。ダウンタイムに対処できる移行には、オフラインバックアップを使用することをお勧めします。S3 バケットが既にある場合はそのバケットを使用できます。S3 バケットがない場合は、「*Amazon S3 ユーザーガイド*」の「[バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)」を参照してください。
**注記**  
データベースが大きく、S3 バケットへの転送に時間がかかる場合は、 AWS Snow Family デバイスを注文して、AWS にバックアップの実行を依頼できます。ファイルをデバイスにコピーして Snow ファミリーチームに返すと、チームはバックアップしたイメージを S3 バケットに転送します。詳細については、「[AWS Snow Family ドキュメント](https://docs.aws.amazon.com/snowball/)」を参照してください。
+ **S3 バケットにアクセスするための IAM ロール: IAM ロールが既にある場合は、そのロールを使用できます。ロールがない場合は、「[ステップ 2: IAM ロールを作成して IAM ポリシーをアタッチする](db2-s3-integration.md#db2-creating-iam-role)」を参照してください。
+ **IAM ロールにアタッチされた信頼関係とアクセス許可を持つ IAM ポリシー: 詳細については、「[ステップ 1: IAM ポリシーを作成する](db2-s3-integration.md#db2-creating-iam-policy)」を参照してください。
+ **RDS for Db2 DB インスタンスに追加された IAM ロール: 詳細については、「[ステップ 3: RDS for Db2 DB インスタンスに IAM ロールを追加する](db2-s3-integration.md#db2-adding-iam-role)」を参照してください。

## デフォルトの自動ストレージグループを作成する
<a name="db2-linux-creating-auto-storage-group"></a>

ソースデータベースにはデフォルトの自動ストレージグループが必要です。データベースにデフォルトの自動ストレージグループがない場合は、作成する必要があります。

**デフォルトの自動ストレージグループを作成するには**

1. ソースデータベースに接続します。次の例では、*source\$1database* をデータベースの名前に置き換えます。

   ```
   db2 connect to source_database 
   ```

1. 自動ストレージグループを作成し、デフォルトとして設定します。次の例では、*storage\$1path* をストレージグループが配置されている場所への絶対パスに置き換えます。

   ```
   db2 "create stogroup IBMSTOGROUP ON storage_path set as default"
   ```

1. バックエンドプロセスを終了します。

   ```
   db2 terminate
   ```

1. データベースを非アクティブ化し、すべてのデータベースサービスを停止します。次の例では、*source\$1database* を、ストレージグループを作成したデータベースの名前に置き換えます。

   ```
   db2 deactivate db source_database
   ```

1. データベースをバックアップします。次の例では、*source\$1database* を、ストレージグループを作成したデータベースの名前に置き換えます。*file\$1system\$1path* を、データベースをバックアップする絶対パスに置き換えます。

   ```
   db2 backup database source_database to file_system_path 
   ```

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

Amazon S3 でデータベースをバックアップし、自動ストレージグループを作成したら、Db2 データベースを RDS for Db2 DB インスタンスに復元できます。

**Db2 データベースを Amazon S3 バケットから RDS for Db2 DB インスタンスに復元するには**

1. RDS for Db2 DB インスタンスに接続します。詳細については、「[Db2 DB インスタンスへの接続](USER_ConnectToDb2DBInstance.md)」を参照してください。

1. (オプション) データベースが最適な設定で構成されていることを確認するには、[rdsadmin.show\$1configuration](db2-sp-managing-databases.md#db2-sp-show-configuration) を呼び出して次のパラメータの値を確認します。
   + `RESTORE_DATABASE_NUM_BUFFERS`
   + `RESTORE_DATABASE_PARALLELISM`
   + `RESTORE_DATABASE_NUM_MULTI_PATHS`
   + `USE_STREAMING_RESTORE`

   必要に応じて、[rdsadmin.set\$1configuration](db2-sp-managing-databases.md#db2-sp-set-configuration) を使用してこれらの値を変更します。これらのパラメータを適切に設定することで、大量のデータを含むデータベースを復元する際のパフォーマンスが大幅に向上します。ほとんどの移行シナリオでは、ストレージ要件が軽減され、復元速度が向上するため、`USE_STREAMING_RESTORE` を `TRUE` に設定することをお勧めします。

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

# Amazon RDS for Db2 のダウンタイムがほぼゼロの Linux から Linux への移行
<a name="db2-near-zero-downtime-migration"></a>

この移行アプローチでは、 Linux ベース Db2 データベースを単一のセルフマネージド Db2 データベース (ソース) から Amazon RDS for Db2 に移行します。このアプローチにより、アプリケーションまたはユーザーの停止またはダウンタイムが最小限に抑えられるか、まったく発生しません。このアプローチでは、データベースをバックアップし、ログの再生で復元します。これにより、進行中のオペレーションの中断を防ぎ、データベースの高可用性を実現できます。

RDS for Db2 は、ほぼゼロのダウンタイムでの移行を達成できるように、ログの再生による復元を実装しています。このアプローチでは、セルフマネージド Linux ベース Db2 データベースのバックアップを作成し、RDS for Db2 サーバーに復元します。Amazon RDS ストアドプロシージャでは、後続のトランザクションログを適用してデータベースを最新の状態にします。

**Topics**
+ [ほぼゼロのダウンタイムでの移行の制限と推奨事項](#db2-near-zero-downtime-migration-limitations)
+ [データベースを Amazon S3 にバックアップする](#db2-near-zero-downtime-backing-up-database)
+ [デフォルトの自動ストレージグループを作成する](#db2-near-zero-migration-creating-auto-storage-group)
+ [Db2 データベースの移行](#db2-migrating-db2-database)

## ほぼゼロのダウンタイムでの移行の制限と推奨事項
<a name="db2-near-zero-downtime-migration-limitations"></a>

ほぼゼロのダウンタイムでの移行の使用には、次の制限と推奨事項が適用されます。
+ Amazon RDS では、移行のダウンタイムをほぼゼロにするために、オンラインバックアップが必要です。これは、アーカイブされたトランザクションログをアップロードすると、Amazon RDS によってデータベースがロールフォワード保留状態のままになるためです。詳細については、「[Db2 データベースの移行](#db2-migrating-db2-database)」を参照してください。
+ RDS for Db2 DB インスタンスがあるリージョンとは異なる AWS リージョンのAmazon S3 バケットから復元することはできません。
+ Amazon S3 では、S3 バケットにアップロードするファイルのサイズが 5 TB に制限されます。データベースバックアップファイルが 5 TB を超える場合は、バックアップファイルを小さいファイルに分割します。
+ Amazon RDS は、非 fenced 外部ルーチン、増分復元、または Delta 復元をサポートしていません。
+ 暗号化したソースデータベースから復元することはできませんが、暗号化された Amazon RDS DB インスタンスには復元できます。

復元プロセスは、設定によって異なります。

`USE_STREAMING_RESTORE` を `TRUE` に設定すると、Amazon RDS は復元中に S3 バケットから直接バックアップをストリーミングします。ストリーミングはストレージ要件を大幅に削減します。バックアップのサイズまたは元のデータベースのサイズのうち、いずれか大きい方のサイズ以上のストレージスペースをプロビジョニングするだけで済みます。

`USE_STREAMING_RESTORE` を `FALSE` に設定すると、Amazon RDS はまず RDS for Db2 DB インスタンスにバックアップをダウンロードし、次にバックアップを抽出します。抽出には追加のストレージスペースが必要です。バックアップのサイズと元のデータベースのサイズの合計以上のストレージスペースをプロビジョニングする必要があります。

復元されたデータベースの最大サイズは、サポートされているデータベースの最大サイズから、復元プロセス中の一時ストレージに必要なスペースを引いた値に等しくなります。

## データベースを Amazon S3 にバックアップする
<a name="db2-near-zero-downtime-backing-up-database"></a>

Amazon S3 でデータベースをバックアップするには、次の AWS コンポーネントが必要です。
+ **バックアップファイルを保存する Amazon S3 バケット: Amazon RDS に移行するバックアップファイルをアップロードします。Amazon RDS では、移行のダウンタイムをほぼゼロにするために、オンラインバックアップが必要です。S3 バケットが既にある場合はそのバケットを使用できます。S3 バケットがない場合は、「*Amazon S3 ユーザーガイド*」の「[バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)」を参照してください。
**注記**  
データベースが大きく、S3 バケットへの転送に時間がかかる場合は、 AWS Snow Family デバイスを注文して、AWS にバックアップの実行を依頼できます。ファイルをデバイスにコピーして Snow ファミリーチームに返すと、チームはバックアップしたイメージを S3 バケットに転送します。詳細については、「[AWS Snow Family ドキュメント](https://docs.aws.amazon.com/snowball/)」を参照してください。
+ **S3 バケットにアクセスするための IAM ロール: AWS Identity and Access Management (IAM) ロールが既にある場合は、そのロールを使用できます。ロールがない場合は、「[ステップ 2: IAM ロールを作成して IAM ポリシーをアタッチする](db2-s3-integration.md#db2-creating-iam-role)」を参照してください。
+ **IAM ロールにアタッチされた信頼関係とアクセス許可を持つ IAM ポリシー: 詳細については、「[ステップ 1: IAM ポリシーを作成する](db2-s3-integration.md#db2-creating-iam-policy)」を参照してください。
+ **RDS for Db2 DB インスタンスに追加された IAM ロール: 詳細については、「[ステップ 3: RDS for Db2 DB インスタンスに IAM ロールを追加する](db2-s3-integration.md#db2-adding-iam-role)」を参照してください。

## デフォルトの自動ストレージグループを作成する
<a name="db2-near-zero-migration-creating-auto-storage-group"></a>

ソースデータベースにはデフォルトの自動ストレージグループが必要です。データベースにデフォルトの自動ストレージグループがない場合は、作成する必要があります。

**デフォルトの自動ストレージグループを作成するには**

1. ソースデータベースに接続します。次の例では、*source\$1database* をデータベースの名前に置き換えます。

   ```
   db2 connect to source_database 
   ```

1. 自動ストレージグループを作成し、デフォルトとして設定します。次の例では、*storage\$1path* をストレージグループが配置されている場所への絶対パスに置き換えます。

   ```
   db2 "create stogroup IBMSTOGROUP ON storage_path set as default"
   ```

1. バックエンドプロセスを終了します。

   ```
   db2 terminate
   ```

## Db2 データベースの移行
<a name="db2-migrating-db2-database"></a>

ほぼゼロのダウンタイムでの移行をセットアップしたら、Db2 データベースを Amazon S3 バケットから RDS for Db2 DB インスタンスに移行できます。

**Amazon S3 バケットから RDS for Db2 DB インスタンスへのバックアップファイルのダウンタイムをほぼゼロにするには**

1. ソースデータベースのオンラインバックアップを実行します。詳細については、IBM Db2 ドキュメントの「[BACKUP DATABASE command](https://www.ibm.com/docs/en/db2/11.5?topic=commands-backup-database)」をご参照ください。

1. データベースのバックアップを Amazon S3 バケットにコピーします。Amazon S3 の使用の詳細については、「[Amazon Simple Storage Service ユーザーガイド](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)」を参照してください。

1. RDS for Db2 DB インスタンスの *master\$1username* と *master\$1password* を使用して `rdsadmin` サーバーに接続します。

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

1. (オプション) データベースが最適な設定で構成されていることを確認するには、[rdsadmin.show\$1configuration](db2-sp-managing-databases.md#db2-sp-show-configuration) を呼び出して次のパラメータの値を確認します。
   + `RESTORE_DATABASE_NUM_BUFFERS`
   + `RESTORE_DATABASE_PARALLELISM`
   + `RESTORE_DATABASE_NUM_MULTI_PATHS`
   + `USE_STREAMING_RESTORE`

   必要に応じて、[rdsadmin.set\$1configuration](db2-sp-managing-databases.md#db2-sp-set-configuration) を使用してこれらの値を変更します。これらのパラメータを適切に設定することで、大量のデータを含むデータベースを復元する際のパフォーマンスが大幅に向上します。ほとんどの移行シナリオでは、ストレージ要件が軽減され、復元速度が向上するため、`USE_STREAMING_RESTORE` を `TRUE` に設定することをお勧めします。

1. `rdsadmin.restore_database` を呼び出して、RDS for Db2 サーバーでバックアップを復元します。`backup_type` を `ONLINE` に設定します。詳細については、「[rdsadmin.restore\$1database](db2-sp-managing-databases.md#db2-sp-restore-database)」を参照してください。

1. ソースサーバーから S3 バケットにアーカイブログをコピーします。詳細については、IBM Db2 ドキュメントに記載の「[Archive logging](https://www.ibm.com/docs/en/db2/11.5?topic=logging-archive)」を参照してください。

1. `rdsadmin.rollforward_database` を呼び出して、アーカイブログを必要な回数だけ適用します。データベースを `ROLL-FORWARD PENDING` 状態に保つには、`complete_rollforward` を `FALSE` に設定します。詳細については、「[rdsadmin.rollforward\$1database](db2-sp-managing-databases.md#db2-sp-rollforward-database)」を参照してください。

1. すべてのアーカイブログを適用したら、`rdsadmin.complete_rollforward` を呼び出してデータベースをオンラインにします。詳細については、「[rdsadmin.complete\$1rollforward](db2-sp-managing-databases.md#db2-sp-complete-rollforward)」を参照してください。

1. データベースのアプリケーションエンドポイントを更新するか、DNS エンドポイントを更新して RDS for Db2 サーバーにトラフィックをリダイレクトして、アプリケーション接続を RDS for Db2 サーバーに切り替えます。RDS for Db2 データベースエンドポイントを使用して、セルフマネージド Db2 データベースで Db2 自動クライアント再ルーティング機能を使用することもできます。詳細については、 IBM Db2 ドキュメントの「[Automatic client reroute description and setup](https://www.ibm.com/docs/en/db2/11.5?topic=reroute-configuring-automatic-client)」を参照してください。

1. (オプション) ソースデータベースをシャットダウンします。

# Amazon RDS for Db2 の Linux から Linux への同期移行
<a name="db2-synchronous-migration-linux"></a>

この移行アプローチでは、セルフマネージド Db2 データベースと Amazon RDS for Db2 DB インスタンスとの間のレプリケーションを設定します。セルフマネージドデータベースに加えられた変更は、ほぼリアルタイムで RDS for Db2 DB インスタンスにレプリケートされます。このアプローチにより、継続的な可用性が実現し、移行プロセス中のダウンタイムが最小限に抑えられます。

# Amazon RDS for Db2 の AIX または Windows から Linux への移行
<a name="db2-one-time-migration-aix-windows-linux"></a>

この移行アプローチでは、ネイティブ Db2 ツールを使用して、セルフマネージド Db2 データベースを Amazon S3 バケットにバックアップします。ネイティブ Db2 ツールには、 `export` ユーティリティ、 `db2move` システムコマンド、または `db2look` システムコマンドが含まれます。Db2 データベースは、セルフマネージド型または Amazon Elastic Compute Cloud (Amazon EC2) のいずれかです。AIX または Windows システムから Amazon S3 バケットにデータを移行できます。次に、Db2 クライアントを使用して、S3 バケットから Amazon RDS for Db2 データベースにデータを直接ロードします。ダウンタイムは、データベースのサイズによって異なります。Amazon S3 の使用の詳細については、「[Amazon RDS for Db2 DB インスタンスと Amazon S3 の統合](db2-s3-integration.md)」を参照してください。

**Db2 データベースを RDS for Db2 に移行するには**

1. データベースをバックアップする準備をします。セルフマネージド Db2 システムでバックアップを保持するのに十分なストレージ量を設定します。

1. データベースをバックアップします。

   1. [db2look システムコマンド](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2look-db2-statistics-ddl-extraction-tool)を実行して、すべてのオブジェクトのデータ定義言語 (DDL) ファイルを抽出します。

   1. [Db2 エクスポートユーティリティ](https://www.ibm.com/docs/en/db2/11.5?topic=utility-exporting-data)、[db2move システムコマンド ](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2move-database-movement-tool)、または [CREATE EXTERNAL TABLE ステートメント](https://www.ibm.com/docs/en/db2/11.5?topic=statements-create-table-external)を実行して、Db2 テーブルデータを Db2 システムのストレージにアンロードします。

1. バックアップを Amazon S3 バケットに移動します。詳細については、「[Amazon RDS for Db2 DB インスタンスと Amazon S3 の統合](db2-s3-integration.md)」を参照してください。
**注記**  
データベースが大きく、S3 バケットへの転送に時間がかかる場合は、 AWS Snow Family デバイスを注文して、AWS にバックアップの実行を依頼できます。ファイルをデバイスにコピーして Snow ファミリーチームに返すと、チームはバックアップしたイメージを S3 バケットに転送します。詳細については、「[AWS Snow Family ドキュメント](https://docs.aws.amazon.com/snowball/)」を参照してください。

1. Db2 クライアントを使用して、S3 バケットから RDS for Db2 データベースにデータを直接ロードします。詳細については、「[Amazon S3 による移行](db2-migration-load-from-s3.md)」を参照してください。

# Amazon S3 から Amazon RDS for Db2 への Db2 データの移行
<a name="db2-migration-load-from-s3"></a>

この移行アプローチでは、まず 1 つのテーブルから Amazon S3 バケットに配置するデータファイルにデータを保存します。次に、[LOAD コマンド](https://www.ibm.com/docs/en/db2/11.5?topic=commands-load)を使用して、そのデータファイルから Amazon RDS for Db2 データベースのテーブルにデータをロードします。Amazon S3 の使用の詳細については、「[Amazon RDS for Db2 DB インスタンスと Amazon S3 の統合](db2-s3-integration.md)」を参照してください。

**Topics**
+ [Amazon S3 にデータを保存する](#db2-migration-load-from-s3-saving-data-file)
+ [RDS for Db2 テーブルへのデータのロード](#db2-migration-load-from-s3-into-db-table)

## Amazon S3 にデータを保存する
<a name="db2-migration-load-from-s3-saving-data-file"></a>

単一のテーブルから Amazon S3 にデータを保存するには、データベースユーティリティを使用して、データベース管理システム (DBMS) から CSV ファイルにデータを抽出します。次に、各ファイルを Amazon S3 にアップロードします。

Amazon S3 にデータファイルを保存するには、次の AWS コンポーネントが必要です。
+ *バックアップファイルを保存する Amazon S3 バケット*: S3 バケットが既にある場合は、そのバケットを使用できます。S3 バケットがない場合は、「*Amazon S3 ユーザーガイド*」の「[バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)」を参照してください。
+ **S3 バケットにアクセスするための IAM ロール: IAM ロールが既にある場合は、そのロールを使用できます。ロールがない場合は、「[ステップ 2: IAM ロールを作成して IAM ポリシーをアタッチする](db2-s3-integration.md#db2-creating-iam-role)」を参照してください。
+ **IAM ロールにアタッチされた信頼関係とアクセス許可を持つ IAM ポリシー: 詳細については、「[ステップ 1: IAM ポリシーを作成する](db2-s3-integration.md#db2-creating-iam-policy)」を参照してください。
+ **RDS for Db2 DB インスタンスに追加された IAM ロール: 詳細については、「[ステップ 3: RDS for Db2 DB インスタンスに IAM ロールを追加する](db2-s3-integration.md#db2-adding-iam-role)」を参照してください。

## RDS for Db2 テーブルへのデータのロード
<a name="db2-migration-load-from-s3-into-db-table"></a>

データファイルを Amazon S3 に保存した後、これらのファイルから RDS for Db2 DB インスタンスの個々のテーブルにデータをロードできます。

**Db2 テーブルデータを 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. 保存したファイルが保存されている Amazon S3 バケットを指すストレージアクセスエイリアスをカタログ化します。次のステップで使用するこのエイリアスの名前を書き留めます。同じ Amazon S3 バケットに保存されているデータファイルから複数のテーブルをロードする予定の場合、このステップを 1 回だけ実行する必要があります。

   次の例では、*jorge\$1souza* という名前のユーザーに *amzn-s3-demo-bucket* という名前のバケットへのアクセスを許可する *my\$1s3\$1alias* という名前のエイリアスをカタログ化します。

   ```
   db2 "call rdsadmin.catalog_storage_access(?, 'my_s3_alias', 'amzn-s3-demo-bucket', 'USER', 'jorge_souza')"
   ```

   このストアドプロシージャの詳細については、「[rdsadmin.catalog\$1storage\$1access](db2-sp-managing-storage-access.md#db2-sp-catalog-storage-access)」を参照してください。

1. Amazon S3 バケットを指すストレージアクセスエイリアスを使用して、`LOAD` コマンドを実行します。
**注記**  
`LOAD` コマンドがエラーを返す場合は、Amazon S3 の VPC ゲートウェイエンドポイントを作成し、セキュリティグループにアウトバウンドルールを追加する必要がある場合があります。詳細については、「[ファイル I/O エラー](db2-troubleshooting.md#db2-file-input-output-error)」を参照してください。

   次の例では、*my\$1s3\$1datafile.csv* という名前のデータファイルから *my\$1db2\$1table *という名前のテーブルにデータをロードします。この例では、データファイルが *my\$1s3\$1alias* という名前のエイリアスが指す Amazon S3 バケットにあることを前提としています。

   ```
   db2 "load from db2remote://my_s3_alias//my_s3_datafile.csv of DEL insert into my_db2_table";
   ```

   次の例では、*my\$1table1\$1export.ixf* という名前のデータファイルから *my\$1db2\$1table *という名前のテーブルに LOB をロードします。この例では、データファイルが *my\$1s3\$1alias* という名前のエイリアスが指す Amazon S3 バケットにあることを前提としています。

   ```
   db2 "call sysproc.admin_cmd('load from "db2remote://my_s3_alias//my_table1_export.ixf" of ixf
           lobs from "db2remote://my_s3_alias//" xml from "db2remote://my_s3_alias//"
           modified by lobsinfile implicitlyhiddeninclude identityoverride generatedoverride periodoverride transactionidoverride
           messages on server
           replace into "my_schema"."my_db2_table"
                                  nonrecoverable
           indexing mode incremental allow no access')"
   ```

   RDS for Db2 DB インスタンスのテーブルにロードする Amazon S3 バケット内のデータファイルごとに、このステップを繰り返します。

   `LOAD` コマンドの詳細については、「[LOAD コマンド](https://www.ibm.com/docs/en/db2/11.5?topic=commands-load)」を参照してください。

# AWS Database Migration Service (AWS DMS) を使用した Amazon RDS for Db2 への移行
<a name="db2-migration-amazon-dms"></a>

AWS DMS を 1 回限りの移行に使用し、Linux、Unix (AIX など)、Windows の Db2 から Amazon RDS for Db2 に同期できます。詳細については、「[What is AWS Database Migration Service?](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)」を参照してください。

# ネイティブ Db2 ツールを使用して Db2 から Amazon RDS for Db2 にデータを移行する
<a name="db2-native-db2-tools"></a>

複数のネイティブ Db2 ツール、ユーティリティ、およびコマンドを使用して、Db2 データベースから Amazon RDS for Db2 データベースにデータを直接移動できます。これらのネイティブ Db2 ツールを使用するには、クライアントマシンを RDS for Db2 DB インスタンスに接続できる必要があります。詳細については、「[クライアントマシンを Amazon RDS for Db2 DB インスタンスに接続する](db2-connecting-client-rds.md)」を参照してください。

**注記**  
データを移動するもう 1 つの方法は、まず Amazon S3 バケットに保存してから、`LOAD` コマンドを使用して、そのデータを RDS for Db2 データベースのテーブルに転送することです。この方法は、RDS for Db2 と S3 間のネットワーク接続が良好であるため、大量のデータを移行する場合に最適なパフォーマンスを提供します。詳細については、「[Amazon S3 から Amazon RDS for Db2 への Db2 データの移行](db2-migration-load-from-s3.md)」を参照してください。


| ツール名 | ユースケース | 制限 | 
| --- | --- | --- | 
|  [db2look](db2-native-db2-tools-db2look.md)  |  セルフマネージド Db2 データベースから RDS for Db2 データベースにメタデータをコピーする。  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/db2-native-db2-tools.html)  | 
|  [IMPORT コマンド](db2-native-db2-tools-import.md)  |  小さなテーブルとラージオブジェクト (LOB) を含むテーブルをクライアントマシンから RDS for Db2 DB インスタンスに移行する。  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/db2-native-db2-tools.html)  | 
|  [INGEST ユーティリティ](db2-native-db2-tools-ingest.md)   |  クライアントマシンでラージオブジェクト (LOB) がない**ファイルやパイプから RDS for Db2 DB インスタンスにデータを継続的にストリーミングする。`INSERT` および `MERGE` オペレーションをサポートする。  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/db2-native-db2-tools.html)  | 
|  [INSERT コマンド](db2-native-db2-tools-insert.md)  |  セルフマネージド Db2 データベースから RDS for Db2 データベースに小さなテーブルのデータをコピーする。  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/db2-native-db2-tools.html)  | 
|  [LOAD CLIENT コマンド](db2-native-db2-tools-load.md)  |  ラージオブジェクト (LOB) のない**小さなテーブルをクライアントマシンから RDS for Db2 DB インスタンスに移行する。  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/db2-native-db2-tools.html)  | 

# クライアントマシンを Amazon RDS for Db2 DB インスタンスに接続する
<a name="db2-connecting-client-rds"></a>

ネイティブ Db2 ツールのいずれかを使用して Db2 データベースから Amazon RDS for Db2 データベースにデータを移動するには、まずクライアントマシンを RDS for Db2 DB インスタンスに接続する必要があります。

以下のいずれかのクライアントマシンを使用できます。
+ Linux、Windows、または macOS 上の Amazon Elastic Compute Cloud (Amazon EC2) インスタンス このインスタンスは、RDS for Db2 DB インスタンス、AWS Cloud9 または AWS CloudShell と同じ仮想プライベートクラウド (VPC) にある必要があります。
+ Amazon EC2 インスタンスのセルフマネージド Db2 インスタンス。インスタンスは同じ VPC 内にある必要があります。
+ Amazon EC2 インスタンスのセルフマネージド Db2 インスタンス。VPC ピアリングが有効になっている場合は、インスタンスが別の VPC にあってもかまいません。詳細については、「*Amazon Virtual Private Cloud ピアリング接続ガイド*」の「[Create a VPC peering connection](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html)」を参照してください。
+ セルフマネージド環境で Linux、Windows、または macOS を実行しているローカルマシン。RDS for Db2 へのパブリック接続があるか、セルフマネージド Db2 インスタンスと AWS 間の VPN 接続を有効にする必要があります。

クライアントマシンを RDS for Db2 DB インスタンスに接続するには、IBM Db2 Data Management Console を使用してクライアントマシンにログインします。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」および「[IBM Db2 Data Management Console](db2-connecting-with-ibm-data-management-console.md)」を参照してください。

AWS Database Migration Service (AWS DMS) を使用して、データベースに対してクエリを実行し、SQL 実行プランを実行し、データベースをモニタリングできます。詳細については、「AWS Database Migration Service ユーザーガイド**」の「[What is AWS Database Migration Service?](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)」を参照してください。

クライアントマシンを RDS for Db2 DB インスタンスに正常に接続したら、ネイティブ Db2 ツールを使用してデータをコピーできます。詳細については、「[ネイティブ Db2 ツールを使用して Db2 から Amazon RDS for Db2 にデータを移行する](db2-native-db2-tools.md)」を参照してください。

# db2look を使用して Db2 から Amazon RDS for Db2 にデータベースメタデータをコピーする
<a name="db2-native-db2-tools-db2look"></a>

`db2look` は、データ定義言語 (DDL) ファイル、オブジェクト、認証、設定、WLM、およびデータベースレイアウトを抽出するネイティブ Db2 ツールです。`db2look` を使用して、セルフマネージド Db2 データベースから Amazon RDS for Db2 データベースにデータベースメタデータをコピーできます。詳細については、IBM Db2 ドキュメントの「[Mimicking databases using db2look](https://www.ibm.com/docs/en/db2/11.5?topic=tools-db2look)」を参照してください。

**データベースメタデータをコピーするには**

1. セルフマネージド Db2 システムで `db2look` ツールを実行し、DDL ファイルを抽出します。次の例では、*database\$1name* を Db2 データベースの名前に置き換えます。

   ```
   db2look -d database_name -e -l -a -f -wlm -cor -createdb -printdbcfg -o db2look.sql
   ```

1. クライアントマシンがソース (セルフマネージド Db2) データベースと RDS for Db2 DB インスタンスにアクセスできる場合は、リモートインスタンスに直接アタッチすることで、クライアントマシンで `db2look.sql` ファイルを作成できます。次に、リモートのセルフマネージド Db2 インスタンスをカタログ化します。

   1. ノードをカタログ化します。次の例では、*dns\$1ip\$1address* と *port* を、DNS 名または IP アドレス、セルフマネージド Db2 データベースのポート番号に置き換えます。

      ```
      db2 catalog tcpip node srcnode REMOTE dns_ip_address server port
      ```

   1. データベースをカタログ化します。次の例では、*source\$1database\$1name* と *source\$1database\$1alias* を、セルフマネージド Db2 データベースの名前と、このデータベースに使用するエイリアスに置き換えます。

      ```
      db2 catalog database source_database_name as source_database_alias at node srcnode \ 
          authentication server_encrypt
      ```

   1. ソースデータベースにアタッチします。次の例では、*source\$1database\$1alias*、*user\$1id*、*user\$1password* を、前のステップで作成したエイリアスと、セルフマネージド Db2 データベースのユーザー ID とパスワードに置き換えます。

      ```
      db2look -d source_database_alias -i user_id -w user_password -e -l -a -f -wlm \
          -cor -createdb -printdbcfg -o db2look.sql
      ```

1. クライアントマシンからリモートのセルフマネージド Db2 データベースにアクセスできない場合は、`db2look.sql` ファイルをクライアントマシンにコピーします。 次に、RDS for Db2 DB インスタンスをカタログ化します。

   1. ノードをカタログ化します。次の例では、*dns\$1ip\$1address* と *port* を、DNS 名または IP アドレスと、RDS for Db2 DB インスタンスのポート番号に置き換えます。

      ```
      db2 catalog tcpip node remnode REMOTE dns_ip_address server port
      ```

   1. データベースをカタログ化します。次の例では、*rds\$1database\$1name* と *rds\$1database\$1alias* を、RDS for Db2 データベースの名前と、このデータベースに使用するエイリアスに置き換えます。

      ```
      db2 catalog database rds_database_name as rds_database_alias at node remnode \ 
          authentication server_encrypt
      ```

   1. RDS for Db2 を管理する管理データベースをカタログ化します。このデータベースを使用してデータを保存することはできません。

      ```
      db2 catalog database rdsadmin as rdsadmin at node remnode authentication server_encrypt
      ```

1. バッファプールとテーブルスペースを作成します。管理者には、バッファプールまたはテーブルスペースを作成する権限がありません。ただし、Amazon RDS ストアドプロシージャを使用して作成することができます。

   1. `db2look.sql` ファイル内のバッファプールとテーブルスペースの名前と定義を見つけます。

   1. RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して Amazon RDS に接続します。次の例では、*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)"
      ```

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

   1. 追加するバッファプールまたはテーブルスペースごとに、ステップ c または d を繰り返します。

   1. 接続を終了します。

      ```
      db2 terminate
      ```

1.  テーブルとオブジェクトを作成します。

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

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

   1. `db2look.sql` ファイルを実行します。

      ```
      db2 -tvf db2look.sql
      ```

   1. 接続を終了します。

      ```
      db2 terminate
      ```

# IMPORT コマンドを使用してクライアントマシンから Amazon RDS for Db2 にデータをインポートする
<a name="db2-native-db2-tools-import"></a>

クライアントマシンで `IMPORT` コマンドを使用して、Amazon RDS for Db2 サーバーにデータをインポートできます。

**重要**  
`IMPORT` コマンドメソッドは、小さなテーブルやラージオブジェクト (LOB) を含むテーブルを移行する場合に便利です。`IMPORT` コマンドは、`INSERT` および `DELETE` のログ記録オペレーションのため、`LOAD` ユーティリティよりも低速です。クライアントマシンと RDS for Db2 間のネットワーク帯域幅が制限されている場合は、別の移行アプローチを使用することをお勧めします。詳細については、「[ネイティブ Db2 ツールを使用して Db2 から Amazon RDS for Db2 にデータを移行する](db2-native-db2-tools.md)」を参照してください。

**RDS for Db2 サーバーにデータをインポートするには**

1. IBM Db2 Data Management Console を使用してクライアントマシンにログインします。詳細については、「[IBM Db2 Data Management Console を使用して Amazon RDS for Db2 DB インスタンスに接続する](db2-connecting-with-ibm-data-management-console.md)」を参照してください。

1. クライアントマシン上の RDS for Db2 データベースをカタログ化します。

   1. ノードをカタログ化します。次の例では、*dns\$1ip\$1address* と *port* を、DNS 名または IP アドレス、セルフマネージド Db2 データベースのポート番号に置き換えます。

      ```
      db2 catalog tcpip node srcnode REMOTE dns_ip_address server port
      ```

   1. データベースをカタログ化します。次の例では、*source\$1database\$1name* と *source\$1database\$1alias* を、セルフマネージド Db2 データベースの名前と、このデータベースに使用するエイリアスに置き換えます。

      ```
      db2 catalog database source_database_name as source_database_alias at node srcnode \
          authentication server_encrypt
      ```

1. ソースデータベースにアタッチします。次の例では、*source\$1database\$1alias*、*user\$1id*、*user\$1password* を、前のステップで作成したエイリアスと、セルフマネージド Db2 データベースのユーザー ID とパスワードに置き換えます。

   ```
   db2look -d source_database_alias -i user_id -w user_password -e -l -a -f -wlm \
       -cor -createdb -printdbcfg -o db2look.sql
   ```

1. セルフマネージド Db2 システムで ` EXPORT` コマンドを使用してデータファイルを生成します。次の例では、*directory* を、データファイルが存在するクライアントマシン上のディレクトリに置き換えます。*file\$1name* と *table\$1name* をデータファイルの名前とテーブルの名前に置き換えます。

   ```
   db2 "export to /directory/file_name.txt of del lobs to /directory/lobs/ \
       modified by coldel\| select * from table_name"
   ```

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

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

1. `IMPORT` コマンドを使用して、クライアントマシン上のファイルからリモート RDS for Db2 データベースにデータをインポートします。詳細については、IBM Db2 ドキュメントの「[IMPORT command](https://www.ibm.com/docs/en/db2/11.5?topic=commands-import)」を参照してください。次の例では、*directory* と *file\$1name* を、データファイルが存在するクライアントマシン上のディレクトリとデータファイルの名前に置き換えます。*SCHEMA\$1NAME* と *TABLE\$1NAME* をスキーマとテーブルの名前に置き換えます。

   ```
   db2 "IMPORT from /directory/file_name.tbl OF DEL LOBS FROM /directory/lobs/ \
       modified by coldel\| replace into SCHEMA_NAME.TABLE_NAME"
   ```

1. 接続を終了します。

   ```
   db2 terminate
   ```

# LOAD コマンドを使用してクライアントマシンから Amazon RDS for Db2 にデータをインポートする
<a name="db2-native-db2-tools-load"></a>

`LOAD CLIENT` コマンドを使用して、クライアントマシン上のファイルから RDS for Db2 サーバーにデータをロードできます。RDS for Db2 サーバーへの SSH 接続は存在しないため、セルフマネージド Db2 サーバーまたは Db2 クライアントマシンのいずれかで `LOAD CLIENT` コマンドを使用できます。

**重要**  
`LOAD CLIENT` コマンドメソッドは、小さなテーブルの移行に便利です。クライアントと RDS for Db2 間のネットワーク帯域幅が制限されている場合は、別の移行アプローチを使用することをお勧めします。詳細については、「[ネイティブ Db2 ツールを使用して Db2 から Amazon RDS for Db2 にデータを移行する](db2-native-db2-tools.md)」を参照してください。  
データファイルにラージオブジェクトファイル名への参照が含まれている場合、ラージオブジェクト (LOB) は Db2 サーバー上に存在する必要があるため、`LOAD` コマンドは機能しません。クライアントマシンから RDS for Db2 サーバーに LOB をロードしようとすると、SQL3025N エラーが発生します。代わりに [IMPORT コマンド](db2-native-db2-tools-import.md)を使用します。

**RDS for Db2 サーバーにデータをロードするには**

1. IBM Db2 Data Management Console を使用してクライアントマシンにログインします。詳細については、「[IBM Db2 Data Management Console を使用して Amazon RDS for Db2 DB インスタンスに接続する](db2-connecting-with-ibm-data-management-console.md)」を参照してください。

1. クライアントマシン上の RDS for Db2 データベースをカタログ化します。

   1. ノードをカタログ化します。次の例では、*dns\$1ip\$1address* と *port* を、DNS 名または IP アドレス、セルフマネージド Db2 データベースのポート番号に置き換えます。

      ```
      db2 catalog tcpip node srcnode REMOTE dns_ip_address server port
      ```

   1. データベースをカタログ化します。次の例では、*source\$1database\$1name* と *source\$1database\$1alias* を、セルフマネージド Db2 データベースの名前と、このデータベースに使用するエイリアスに置き換えます。

      ```
      db2 catalog database source_database_name as source_database_alias at node srcnode \
          authentication server_encrypt
      ```

1. ソースデータベースにアタッチします。次の例では、*source\$1database\$1alias*、*user\$1id*、*user\$1password* を、前のステップで作成したエイリアスと、セルフマネージド Db2 データベースのユーザー ID とパスワードに置き換えます。

   ```
   db2look -d source_database_alias -i user_id -w user_password -e -l -a -f -wlm \
       -cor -createdb -printdbcfg -o db2look.sql
   ```

1. セルフマネージド Db2 システムで `EXPORT` コマンドを使用して、データファイルを生成します。次の例では、*directory* を、データファイルが存在するクライアントマシン上のディレクトリに置き換えます。*file\$1name* と *TABLE\$1NAME* をデータファイルの名前とテーブルの名前に置き換えます。

   ```
   db2 "export to /directory/file_name.txt of del modified by coldel\| \
       select * from TPCH.TABLE_NAME"
   ```

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

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

1. `LOAD` コマンドを使用して、クライアントマシン上のファイルからリモート RDS for Db2 データベースにデータをロードします。詳細については、IBM Db2 ドキュメントの「[LOAD command](https://www.ibm.com/docs/en/db2/11.5?topic=commands-load)」を参照してください。次の例では、*directory* を、データファイルが存在するクライアントマシン上のディレクトリに置き換えます。*file\$1name* と *TABLE\$1NAME* をデータファイルの名前とテーブルの名前に置き換えます。

   ```
   db2 "LOAD CLIENT from /directory/file_name.txt \
       modified by coldel\| replace into TPCH.TABLE_NAME \
       nonrecoverable without prompting"
   ```

1. 接続を終了します。

   ```
   db2 terminate
   ```

# INSERT コマンドを使用して Db2 から Amazon RDS for Db2 にデータをインポートする
<a name="db2-native-db2-tools-insert"></a>

`INSERT` コマンドを使用して、セルフマネージド Db2 サーバーから Amazon RDS for Db2 データベースにデータを挿入できます。この移行アプローチでは、リモート RDS for Db2 DB インスタンスのニックネームを使用します。セルフマネージド Db2 データベース (ソース) は、RDS for Db2 データベース (ターゲット) に接続できる必要があります。

**重要**  
`INSERT` コマンドメソッドは、小さなテーブルの移行に便利です。セルフマネージド Db2 データベースと RDS for Db2 データベース間のネットワーク帯域幅が制限されている場合は、別の移行アプローチを使用することをお勧めします。詳細については、「[ネイティブ Db2 ツールを使用して Db2 から Amazon RDS for Db2 にデータを移行する](db2-native-db2-tools.md)」を参照してください。

**セルフマネージド Db2 データベースから RDS for Db2 データベースにデータをコピーするには**

1. セルフマネージド Db2 インスタンスで RDS for Db2 DB インスタンスをカタログ化します。

   1. ノードをカタログ化します。次の例では、*dns\$1ip\$1address* と *port* を、DNS 名または IP アドレス、セルフマネージド Db2 データベースのポート番号に置き換えます。

      ```
      db2 catalog tcpip node remnode REMOTE dns_ip_address SERVER port
      ```

   1. データベースをカタログ化します。次の例では、*rds\$1database\$1name* を RDS for Db2 DB インスタンスのデータベースの名前に置き換えます。

      ```
      db2 catalog database rds_database_name as remdb at node remnode \
          authentication server_encrypt
      ```

1. セルフマネージド Db2 インスタンスでフェデレーションを有効にします。次の例では、*source\$1database\$1name* をセルフマネージド Db2 インスタンスのデータベースの名前に置き換えます。

   ```
   db2 update dbm cfg using FEDERATED YES source_database_name
   ```

1. RDS for Db2 DB インスタンスでテーブルを作成します。

   1. ノードをカタログ化します。次の例では、*dns\$1ip\$1address* と *port* を、DNS 名または IP アドレス、セルフマネージド Db2 データベースのポート番号に置き換えます。

      ```
      db2 catalog tcpip node srcnode REMOTE dns_ip_address server port
      ```

   1. データベースをカタログ化します。次の例では、*source\$1database\$1name* と *source\$1database\$1alias* を、セルフマネージド Db2 データベースの名前と、このデータベースに使用するエイリアスに置き換えます。

      ```
      db2 catalog database source_database_name as source_database_alias at node srcnode \
          authentication server_encrypt
      ```

1. ソースデータベースにアタッチします。次の例では、*source\$1database\$1alias*、*user\$1id*、*user\$1password* を、前のステップで作成したエイリアスと、セルフマネージド Db2 データベースのユーザー ID とパスワードに置き換えます。

   ```
   db2look -d source_database_alias -i user_id -w user_password -e -l -a -f -wlm \
       -cor -createdb -printdbcfg -o db2look.sql
   ```

1. フェデレーションを設定し、セルフマネージド Db2 インスタンスの RDS for Db2 データベーステーブルのニックネームを作成します。

   1. ローカルデータベースに接続します。次の例では、*source\$1database\$1name* をセルフマネージド Db2 インスタンスのデータベースの名前に置き換えます。

      ```
      db2 connect to source_database_name
      ```

   1.  Db2 データソースにアクセスするためのラッパーを作成します。

      ```
      db2 create wrapper drda
      ```

   1. フェデレーションデータベースでデータソースを定義します。次の例では、*admin* と *admin\$1password* をセルフマネージド Db2 インスタンスの認証情報に置き換えます。*rds\$1database\$1name* を RDS for Db2 DB インスタンスのデータベースの名前に置き換えます。

      ```
      db2 "create server rdsdb2 type DB2/LUW version '11.5.9.0' \
          wrapper drda authorization "admin" password "admin_password" \
          options( dbname 'rds_database_name', node 'remnode')"
      ```

   1. 2 つのデータベースのユーザーをマッピングします。次の例では、*master\$1username* と *master\$1password* を RDS for Db2 DB インスタンスの認証情報に置き換えます。

      ```
      db2 "create user mapping for user server rdsdb2 \
          options (REMOTE_AUTHID 'master_username', REMOTE_PASSWORD 'master_password')"
      ```

   1. RDS for Db2 サーバーへの接続を確認します。

      ```
      db2 set passthru rdsdb2
      ```

   1. リモート RDS for Db2 データベースのテーブルのニックネームを作成します。次の例では、*NICKNAME* と *TABLE\$1NAME* をテーブルのニックネームとテーブルの名前に置き換えます。

      ```
      db2 create nickname REMOTE.NICKNAME for RDSDB2.TABLE_NAME.NICKNAME
      ```

1. リモート RDS for Db2 データベースのテーブルにデータを挿入します。セルフマネージド Db2 インスタンスのローカルテーブルの `select` ステートメントでニックネームを使用します。次の例では、*NICKNAME* と *TABLE\$1NAME* をテーブルのニックネームとテーブルの名前に置き換えます。

   ```
   db2 "INSERT into REMOTE.NICKNAME select * from RDS2DB2.TABLE_NAME.NICKNAME"
   ```

# INGEST ユーティリティを使用した Db2 から Amazon RDS for Db2 へのデータのインポート
<a name="db2-native-db2-tools-ingest"></a>

`INGEST` ユーティリティを使用して、クライアントマシン上のファイルとパイプからターゲットの Amazon RDS for Db2 DB インスタンスにデータを継続的にストリーミングできます。`INGEST` ユーティリティは、`INSERT` および `MERGE` オペレーションをサポートします。詳細については、IBM Db2 ドキュメントの「[Ingest utility](https://www.ibm.com/docs/en/db2/11.1?topic=reference-ingest-utility)」を参照してください。

`INGEST` ユーティリティはニックネームをサポートしているため、このユーティリティを使用して、セルフマネージド Db2 データベースから RDS for Db2 データベースにデータを転送できます。このアプローチは、2 つのデータベース間にネットワーク接続が存在する限り機能します。

**重要**  
`INGEST` ユーティリティはラージオブジェクト (LOB) はサポートしていません。代わりに [`IMPORT` コマンド](db2-native-db2-tools-import.md)を使用します。

`INGEST` ユーティリティの `RESTARTABLE` 機能を使用するには、RDS for Db2 データベースで次のコマンドを実行します。

```
db2 "call sysproc.sysinstallobjects(‘INGEST’,‘C’,NULL,NULL)"
```

# Amazon RDS for Db2 フェデレーション
<a name="db2-federation"></a>

Amazon RDS for Db2 データベースをフェデレーテッドデータベースとして使用できます。RDS for Db2 のフェデレーションを設定すると、RDS for Db2 データベースから複数のデータベースのデータにアクセスしてクエリを実行できます。フェデレーションにより、RDS for Db2 データベースにデータを移行したり、データを 1 つのデータベースに統合したりする必要がなくなります。

RDS for Db2 データベースをフェデレーティッドデータベースとして使用することで、データを異なるデータベースに保持しながら、すべての RDS for Db2 機能に引き続きアクセスし、さまざまな AWS のサービス を活用できます。同じタイプの異なるデータベースを接続する同種フェデレーションと、異なるタイプの異なるデータベースを接続する異種フェデレーションの両方を設定できます。

まず、RDS for Db2 の Db2 データベースをリモートデータベースに接続します。その後、接続されているすべてのデータベースに対してクエリを実行できます。例えば、RDS for Db2 データベースのテーブルとリモート Db2 on z/OS データベースのテーブルを結合する SQL JOIN ステートメントを実行できます。

**Topics**
+ [同種フェデレーション](#db2-federation-homogeneous)
+ [異種フェデレーション](#db2-federation-heterogeneous)

## 同種フェデレーション
<a name="db2-federation-homogeneous"></a>

RDS for Db2 データベースと次の Db2 製品ファミリーの間で同種フェデレーションを設定できます。
+ Linux、UNIX、Windows (LUW) 用の Db2 
+ Db2 iSeries
+ Db2 for z/OS

RDS for Db2 同種フェデレーションは、次のアクションをサポートしていません。
+ RDS for Db2 ホストデータベースにノードディレクトリとリモートデータベースをセットアップするための `CATALOG` コマンドの実行
+ z/OS で Db2 にフェデレーションするときにワークロードバランシング (WLB) を設定する
+ IBM データサーバードライバー設定ファイルの設定 (`db2dsdriver.cfg`)

RDS for Db2 同種フェデレーションには、次の要件があります。
+ `UNFENCED` モードで DRDA ラッパーを作成する必要があります。そうしないと、フェデレーションは RDS for Db2 では機能しません。
+ RDS for Db2 ホストデータベースからリモートホストデータベースへの送受信トラフィックを許可する必要があります。詳細については、「[セキュリティグループを作成して VPC 内の DB インスタンスへのアクセスを提供する](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup)」を参照してください。

**Topics**
+ [ステップ 1: DRDA ラッパーとフェデレーティッドサーバーを作成する](#db2-federation-homogeneous-create)
+ [ステップ 2: ユーザーマッピングを作成する](#db2-federation-homogeneous-map)
+ [ステップ 3: 接続を確認する](#db2-federation-homogeneous-check)

### ステップ 1: DRDA ラッパーとフェデレーティッドサーバーを作成する
<a name="db2-federation-homogeneous-create"></a>

同種フェデレーションの場合は、DRDA ラッパーとフェデレーテッドサーバーを作成します。リモートホストへの接続では、`HOST`、`PORT`、および `DBNAME` を使用します。

リモート Db2 データベースのタイプに基づいて、次のいずれかの方法を選択します。
+ **Db2 for Linux、UNIX、および Windows (LUX) データベース** – 次の SQL コマンドを実行します。次の例では、*server\$1name* をフェデレーションに使用するサーバーの名前に置き換えます。*db2\$1version* をリモート Db2 データベースのバージョンに置き換えます。*username* と *password* を接続先のリモート Db2 データベースの認証情報に置き換えます。*db\$1name*、*dns\$1name*、および *port* を、接続先のリモート Db2 データベースの適切な値に置き換えます。

  ```
  create wrapper drda options(DB2_FENCED 'N');
  create server server_name type DB2/LUW wrapper drda version 'db2_version' authorization "master_username" password "master_password" options (add DBNAME 'db_name',add HOST 'dns_name',add PORT 'port');
  ```

  **例**

  ```
  create wrapper drda options(DB2_FENCED 'N');
  create server SERVER1 type DB2/LUW wrapper drda version '11.5' authorization "sysuser" password "******" options (add DBNAME 'TESTDB2',add HOST 'ip-123-45-67-899.us-west-1.compute.internal',add PORT '25010');
  ```
+ **Db2 iSeries** – 次の SQL コマンドを実行します。次の例では、*rapper\$1name* と *library\$1name* を DRDA ラッパーの名前と [ラッパーライブラリファイル](https://www.ibm.com/docs/en/db2/11.5?topic=wrapper-db2-library-files)に置き換えます。*server\$1name* をフェデレーションに使用するサーバーの名前に置き換えます。*db2\$1version* をリモート Db2 データベースのバージョンに置き換えます。*username* と *password* を接続先のリモート Db2 データベースの認証情報に置き換えます。*dns\$1name*、*port*、および *db\$1name* を、接続先のリモート Db2 データベースの適切な値に置き換えます。

  ```
  create wrapper wrapper_name library 'library name' options(DB2_FENCED 'N');
  create server server_name type db2/mvs version db2_version wrapper wrapper_name authorization "sername" password "password" options (HOST 'dns_name', PORT 'port', DBNAME 'db_name');
  ```

  **例**

  ```
  create wrapper WRAPPER1 library 'libdb2drda.so' options(DB2_FENCED 'N');
  create server SERVER1 type db2/mvs version 11 wrapper WRAPPER1 authorization "sysuser" password "******" options (HOST 'test1.123.com', PORT '446', DBNAME 'STLEC1');
  ```
+ **Db2 for z/OS** – 次の SQL コマンドを実行します。次の例では、*rapper\$1name* と *library\$1name* を DRDA ラッパーの名前と [ラッパーライブラリファイル](https://www.ibm.com/docs/en/db2/11.5?topic=wrapper-db2-library-files)に置き換えます。*server\$1name* をフェデレーションに使用するサーバーの名前に置き換えます。*db2\$1version* をリモート Db2 データベースのバージョンに置き換えます。*username* と *password* を接続先のリモート Db2 データベースの認証情報に置き換えます。*dns\$1name*、*port*、および *db\$1name* を、接続先のリモート Db2 データベースの適切な値に置き換えます。

  ```
  create wrapper wrapper_name library 'library_name' options(DB2_FENCED 'N');
  create server server_name type db2/mvs version db2_version wrapper wrapper_name authorization "username" password "password" options (HOST 'dns_name', PORT 'port', DBNAME 'db_name');
  ```

  **例**

  ```
  create wrapper WRAPPER1 library 'libdb2drda.so' OPTIONS(DB2_FENCED 'N');
  create server SERVER1 type db2/mvs version 11 wrapper WRAPPER1 authorization "sysuser" password "******" options (HOST 'test1.123.com', PORT '446', DBNAME 'STLEC1');
  ```

### ステップ 2: ユーザーマッピングを作成する
<a name="db2-federation-homogeneous-map"></a>

次の SQL コマンドを実行することによってユーザーマッピングを作成し、フェデレーテッドサーバーをデータソースサーバーに関連付けます。次の例では、*server\$1name* を、操作を実行するリモートサーバーの名前に置き換えます。これは、[ステップ 1](#db2-federation-homogeneous-create) で作成したサーバーです。*username* と *password* をこのリモートサーバーの認証情報に置き換えます。

```
create user mapping for user server server_name options (REMOTE_AUTHID 'username', REMOTE_PASSWORD 'password');
```

詳細については、IBM Db2 ドキュメントの「[ユーザーマッピング](https://www.ibm.com/docs/en/db2/11.5?topic=systems-user-mappings)」を参照してください。

### ステップ 3: 接続を確認する
<a name="db2-federation-homogeneous-check"></a>

接続を確認することによって、フェデレーションの設定が成功したことを確認します。セッションを開いて、SET PASSTHRU コマンドを使用してネイティブ SQL コマンドをリモートデータソースに送信してから、リモートデータサーバーにテーブルを作成します。

1. セッションを開いたり閉じたりして、SQL をデータソースに送信します。次の例では、*server\$1name* をステップ 1 でフェデレーションのために作成したサーバーの名前に置き換えます。

   ```
   set passthru server_name;
   ```

1. 新しいテーブルを作成します。次の例では、 *column\$1name*、*data\$1type*、*value* をテーブルの適切な項目に置き換えます。

   ```
   create table table_name ( column_name data_type(value), column_name data_type(value);
   ```

    詳細については、IBM Db2 ドキュメントの「[CREATE TABLE statement](https://www.ibm.com/docs/en/db2-event-store/2.0.0?topic=statements-create-table)」を参照してください。

1. インデックスを作成し、行の値をテーブルに挿入して、接続をリセットします。接続をリセットすると、接続は切断されますが、バックエンドプロセスは保持されます。次の例では、*index\$1name*、*table\$1name*、*column\$1name*、および *columnx\$1value* を情報に置き換えます。

   ```
   create index index_name on table_name(column_name);
   insert into table_name values(column1_value,column2_value,column3_value);
   insert into table_name values(column1_value,column2_value,column3_value);
   set passthru reset;
   
   connect reset;
   ```

1. リモート Db2 データベースに接続し、リモートサーバーのニックネームを作成し、操作を実行します。リモート Db2 データベースのデータへのアクセスが完了したら、接続をリセットして終了します。次の例では、*database\$1name* をリモート Db2 データベースの名前に置き換えます。*nickname* を名前に置き換えます。*server\$1name* と *table\$1name* を、操作を実行するサーバーのリモートサーバーとテーブルの名前に置き換えます。*username* をリモートサーバーの情報に置き換えます。*sql\$1command* を、リモートサーバーで実行する操作に置き換えます。

   ```
   connect to database_name;
   create nickname nickname for server_name."username"."table_name";
   select sql_command from nickname;
   connect reset;
   terminate;
   ```

**例**

次の例では、フェデレーテッドサーバー `testdb10` での操作を許可するパススルーセッションを作成します。

次に、データ型が異なる 3 つの列を持つテーブル `t1` を作成します。

次に、この例では、テーブル `t1` の 3 つの列にインデックス `i1_t1` を作成します。その後、これら 3 つの列の値を持つ 2 つの行を挿入し、切断します。

最後に、この例はリモート Db2 データベース `testdb2` に接続し、フェデレーテッドサーバー `testdb10` にテーブル ` t1` のニックネームを作成します。これにより、そのデータソースのユーザー名 `TESTUSER` でニックネームが作成されます。SQL コマンドは、テーブル `t1` からすべてのデータを出力します。この例では、セッションを切断して終了します。

```
set passthru testdbl0;

create table t1 ( c1 decimal(13,0), c2 char(200), c3 int);

create index i1_t1 on t1(c3);
insert into t1 values(1,'Test',1);
insert into t1 values(2,'Test 2',2);
connect reset;

connect to testdb2;
create nickname remote_t1 for testdbl0."TESTUSER"."T1";
select * from remote_t1;
connect reset;
terminate;
```

## 異種フェデレーション
<a name="db2-federation-heterogeneous"></a>

RDS for Db2 データベースと Oracle や Microsoft SQL Server などの他のデータソースとの間で異種フェデレーションを設定できます。Db2 LUW がサポートするデータソースの完全なリストについては、IBM サポートサイトの「[Db2 LUW V11.5 にバンドルされたフェデレーションのデータソースサポートマトリックス](https://www.ibm.com/support/pages/data-source-support-matrix-federation-bundled-db2-luw-v115)」を参照してください。

RDS for Db2 異種フェデレーションは、以下の項目をサポートしていません。
+ 他のデータソースのネイティブラッパー
+ 他のデータソースの JDBC ラッパー
+ これらのデータソースは RDS for Db2 にクライアントソフトウェアをインストールする必要があるため、Sybase、Informix、および Teradata データソースへのフェデレーション

RDS for Db2 異種フェデレーションには、次の要件があります。
+ RDS for Db2 は ODBC ラッパーメソッドのみをサポートしています。
+ ラッパーの明示的な定義を作成する場合は、オプション `DB2_FENCED` を `'N'` に設定する必要があります。ODBC の有効なラッパーオプションのリストについては、IBM Db2 ドキュメントの「[ODBC オプション](https://www.ibm.com/docs/en/db2/11.5?topic=options-odbc)」を参照してください。
+ RDS for Db2 ホストデータベースからリモートホストデータベースへの送受信トラフィックを許可する必要があります。詳細については、「[セキュリティグループを作成して VPC 内の DB インスタンスへのアクセスを提供する](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup)」を参照してください。

Oracle へのフェデレーションの詳細については、IBM サポートサイトの「[Db2 フェデレーションと ODBC ドライバーを使用して Oracle にクエリする方法](https://www.ibm.com/support/pages/node/6431133)」を参照してください。

フェデレーションをサポートするデータソースの詳細については、IBM サポートサイトの「[Db2 LUW V11.5 にバンドルされたフェデレーションのデータソースサポートマトリックス](https://www.ibm.com/support/pages/node/957245)」を参照してください。

**Topics**
+ [ステップ 1: ODBC ラッパーを作成する](#db2-federation-heteogenous-define-wrapper)
+ [ステップ 2: フェデレーテッドサーバーを作成する](#db2-federation-heterogeneous-create)
+ [ステップ 3: ユーザーマッピングを作成する](#db2-federation-heterogeneous-map)
+ [ステップ 4: 接続を確認する](#db2-federation-heterogeneous-check)

### ステップ 1: ODBC ラッパーを作成する
<a name="db2-federation-heteogenous-define-wrapper"></a>

次のコマンドを実行してラッパーを作成します。

```
db2 "create wrapper odbc options( module '/home/rdsdb/sqllib/federation/odbc/lib/libodbc.so')"
```

### ステップ 2: フェデレーテッドサーバーを作成する
<a name="db2-federation-heterogeneous-create"></a>

次のコマンドを実行して、ふぇでれ―テッドサーバーを作成します。次の例では、*server\$1name* をフェデレーションに使用するサーバーの名前に置き換えます。*wrapper\$1type* を適切なラッパーに置き換えます。*db\$1version* をリモートデータベースのバージョンに置き換えます。*dns\$1name*、*port*、および *sservice\$1name* を、接続先のリモートデータベースの適切な値に置き換えます。

```
db2 "create server server_name type wrapper_type version db_version options (HOST 'dns_name', PORT 'port', SERVICE_NAME 'service_name')“
```

ラッパータイプの詳細については、IBM サポートサイトの「[Db2 LUW V11.5 にバンドルされたフェデレーションのデータソースサポートマトリックス](https://www.ibm.com/support/pages/node/957245)」を参照してください。

**例**

次の例では、リモート Oracle データベース用のフェデレーテッドサーバーを作成します。

```
db2 "create server server1 type oracle_odbc version 12.1 options (HOST 'test1.amazon.com', PORT '1521', SERVICE_NAME 'pdborcl.amazon.com')“
```

### ステップ 3: ユーザーマッピングを作成する
<a name="db2-federation-heterogeneous-map"></a>

次の SQL コマンドを実行することによってユーザーマッピングを作成し、フェデレーテッドサーバーをデータソースサーバーに関連付けます。次の例では、*server\$1name* を、操作を実行するリモートサーバーの名前に置き換えます。これは、[ステップ 2](#db2-federation-heterogeneous-create) で作成したサーバーです。*username* と *password* をこのリモートサーバーの認証情報に置き換えます。

```
create user mapping for user server server_name options (REMOTE_AUTHID 'username', REMOTE_PASSWORD 'password');
```

詳細については、IBM Db2 ドキュメントの「[ユーザーマッピング](https://www.ibm.com/docs/en/db2/11.5?topic=systems-user-mappings)」を参照してください。

### ステップ 4: 接続を確認する
<a name="db2-federation-heterogeneous-check"></a>

接続を確認することによって、フェデレーションの設定が成功したことを確認します。セッションを開いて、SET PASSTHRU コマンドを使用してネイティブ SQL コマンドをリモートデータソースに送信してから、リモートデータサーバーにテーブルを作成します。

1. セッションを開いたり閉じたりして、SQL をデータソースに送信します。次の例では、*server\$1name* を[ステップ 2 ](#db2-federation-heterogeneous-create)でフェデレーション用に作成したサーバーの名前に置き換えます。

   ```
   set passthru server_name;
   ```

1. 新しいテーブルを作成します。次の例では、 *column\$1name*、*data\$1type*、*value* をテーブルの適切な項目に置き換えます。

   ```
   create table table_name ( column_name data_type(value), column_name data_type(value);
   ```

    詳細については、IBM Db2 ドキュメントの「[CREATE TABLE statement](https://www.ibm.com/docs/en/db2-event-store/2.0.0?topic=statements-create-table)」を参照してください。

1. インデックスを作成し、行の値をテーブルに挿入して、接続をリセットします。接続をリセットすると、接続は切断されますが、バックエンドプロセスは保持されます。次の例では、*index\$1name*、*table\$1name*、*column\$1name*、および *columnx\$1value* を情報に置き換えます。

   ```
   create index index_name on table_name(column_name);
   insert into table_name values(column1_value,column2_value,column3_value);
   insert into table_name values(column1_value,column2_value,column3_value);
   set passthru reset;
   
   connect reset;
   ```

1. リモート Db2 データベースに接続し、リモートサーバーのニックネームを作成し、操作を実行します。リモート Db2 データベースのデータへのアクセスが完了したら、接続をリセットして終了します。次の例では、*database\$1name* をリモート Db2 データベースの名前に置き換えます。*nickname* を名前に置き換えます。*server\$1name* と *table\$1name* を、操作を実行するサーバーのリモートサーバーとテーブルの名前に置き換えます。*username* をリモートサーバーの情報に置き換えます。*sql\$1command* を、リモートサーバーで実行する操作に置き換えます。

   ```
   connect to database_name;
   create nickname nickname for server_name."username"."table_name";
   select sql_command from nickname;
   connect reset;
   terminate;
   ```

**例**

次の例では、フェデレーテッドサーバー `testdb10` での操作を許可するパススルーセッションを作成します。

次に、データ型が異なる 3 つの列を持つテーブル `t1` を作成します。

次に、この例では、テーブル `t1` の 3 つの列にインデックス `i1_t1` を作成します。その後、これら 3 つの列の値を持つ 2 つの行を挿入し、切断します。

最後に、この例はリモート Db2 データベース `testdb2` に接続し、フェデレーテッドサーバー `testdb10` にテーブル ` t1` のニックネームを作成します。これにより、そのデータソースのユーザー名 `TESTUSER` でニックネームが作成されます。SQL コマンドは、テーブル `t1` からすべてのデータを出力します。この例では、セッションを切断して終了します。

```
set passthru testdbl0;

create table t1 ( c1 decimal(13,0), c2 char(200), c3 int);

create index i1_t1 on t1(c3);
insert into t1 values(1,'Test',1);
insert into t1 values(2,'Test 2',2);
connect reset;

connect to testdb2;
create nickname remote_t1 for testdbl0."TESTUSER"."T1";
select * from remote_t1;
connect reset;
terminate;
```

# Amazon RDS for Db2 のレプリカの使用
<a name="db2-replication"></a>

RDS for Db2 は、リードスケーリングとディザスタリカバリ機能を提供するレプリカデータベースの作成をサポートしています。レプリカは、読み取りワークロードをオフロードするための読み取り専用レプリカと、クロスリージョンディザスタリカバリ用のスタンバイレプリカの 2 つのモードで作成できます。RDS for Db2 は、IBM Db2 高可用性ディザスタリカバリ (HADR) をレプリケーションに使用します。詳細については、IBM Db2 ドキュメントの「[High availability disaster recovery (HADR)](https://www.ibm.com/docs/en/db2/11.5?topic=server-high-availability-disaster-recovery-hadr)」を参照してください。

*Db2 レプリカ*データベースは、プライマリデータベースの物理コピーです。読み取り専用モードの Db2 レプリカは、*リードレプリカ*と呼ばれます。スタンバイモードの Db2 レプリカは、*スタンバイレプリカ*と呼ばれます。Db2 では、レプリカに対する書き込みは許可されませんが、レプリカを昇格させて書き込み可能にすることができます。昇格させたレプリカには、昇格をリクエストした時点までにレプリケートされたデータが含まれます。詳細については、「[リードレプリカをスタンドアロン DB インスタンスに昇格させる](USER_ReadRepl.Promote.md)」を参照してください。

RDS for Db2 レプリカの機能と動作の概要については、「[DB エンジンのリードレプリカ間の違い](USER_ReadRepl.Overview.Differences.md)」を参照してください。

## 読み取り専用レプリカとスタンバイレプリカ
<a name="db2-read-replicas.overview.modes"></a>

Db2 レプリカを作成または変更する場合、次のモードのいずれかにすることができます。

**読み取り専用モード**。  
これがデフォルトです。HADR は、ソースデータベースからすべてのリードレプリカデータベースに変更を送信し、適用します。読み取り専用レプリカの場合、Db2 環境変数 `DB2_HADR_ROS` は `ON` に設定されます。レプリカデータベースの読み取りクエリの分離レベルは `Uncommitted Read` です。詳細については、IBM Db2 ドキュメントの「[Isolation level on the active standby database](https://www.ibm.com/docs/en/db2/11.5?topic=standby-isolation-level-active-database)」を参照してください。  
すべての DB エンジンに適用されるリードレプリカの一般的な情報については、「[DB インスタンスのリードレプリカの操作](USER_ReadRepl.md)」を参照してください。Db2 HADR の詳細については、IBM Db2 ドキュメントの「[High availability disaster recovery (HADR)](https://www.ibm.com/docs/en/db2/11.5?topic=server-high-availability-disaster-recovery-hadr)」を参照してください。

 **スタンバイ**  
スタンバイレプリカでは、Db2 環境変数 `DB2_HADR_ROS` を `OFF` に設定し、レプリカデータベースがユーザー接続を受け付けないようにします。スタンバイレプリカの主な用途は、クロスリージョンのディザスタリカバリです。  
スタンバイレプリカは、読み取り専用のワークロードを処理できません。スタンバイレプリカにはアーカイブログがありません。

1 つのソース DB インスタンスから最大 3 つのリードレプリカを作成できます。同じソース DB インスタンスに対して、読み取り専用 DB レプリカとスタンバイ DB レプリカを組み合わせて作成できます。レプリカを作成したら、レプリカモードを変更できます。詳細については、「[RDS for Db2 レプリカモードの変更](db2-replicas-changing-replica-mode.md)」を参照してください。

レプリカを作成する前に、すべての要件を満たしていることを確認してください。詳細については、「[RDS for Db2 レプリカの要件と考慮事項](db2-read-replicas.limitations.md)」を参照してください。

## データベースのアクティブ化
<a name="db2-read-replicas.overview.database-activations"></a>

Db2 HADR はデータベースレベルで設定します。レプリカを作成すると、RDS が完全に管理する `rdsadmin` を含むすべての Db2 データベースに HADR が設定されます。Db2 レプリカを作成する前に、すべてのデータベースを明示的にアクティブ化する必要があります。そうしないと、レプリカの作成は失敗し、Amazon RDS でイベントが発生します。DB インスタンスに 1 つ以上のレプリカがある場合、`rdsadmin.activate_database` または `rdsadmin.deactivate_database` ストアドプロシージャを使用して DB インスタンスのデータベースをアクティブ化または非アクティブ化することはできません。詳細については、「[RDS for Db2 のデータベースのストアドプロシージャ](db2-sp-managing-databases.md)」を参照してください。

## HADR 設定
<a name="db2-read-replicas.overview.hadr-configurations"></a>

データベースに接続して `db2 get db cfg` を実行すると、データベースのすべての HADR 設定を表示できます。

## アーカイブログの保持
<a name="db2-read-replicas.overview.log-retention"></a>

Amazon RDS は、以下の条件が満たされると、プライマリ DB インスタンスからログを消去します。
+ ログは 2 時間以上経過している。
+ アーカイブログに設定した保持時間が経過している。
+ アーカイブログは、すべてのレプリカ DB インスタンスに正常にレプリケートされている。この条件は、同じ AWS リージョン内の DB インスタンスと、クロスリージョンの DB インスタンスの両方に適用されます。

アーカイブログの保持時間の設定については、「[rdsadmin.set\$1archive\$1log\$1retention](db2-sp-managing-databases.md#db2-sp-set-archive-log-retention)」を参照してください。

Amazon RDS は、各データベースを個別にチェックしてクリーンアップします。データベースが HADR 接続を失った場合や、接続に関する情報が利用できない場合、Amazon RDS はデータベースをスキップし、アーカイブログを消去しません。

## Db2 レプリケーション中の停止
<a name="db2-read-replicas.overview.outages"></a>

リードレプリカを作成すると、Amazon RDS はソース DB インスタンスの DB スナップショットを取得し、レプリケーションを開始します。DB スナップショットオペレーションが始まると、ソース DB インスタンスでごく短時間の I/O 停止が発生します。通常、I/O 停止は約 1 秒続きます。ただし、ソース DB インスタンスがマルチ AZ 配置の場合、ソース DB インスタンスでは I/O 停止が発生しません。マルチ AZ 配置では、スナップショットがセカンダリ DB インスタンスから取得されるためです。

DB スナップショットが Db2 レプリカになります。Amazon RDS は、サービスを中断することなく、ソースデータベースとレプリカに必要なパラメータとアクセス許可を設定します。同様に、レプリカを削除する場合も、停止は発生しません。

# RDS for Db2 レプリカの要件と考慮事項
<a name="db2-read-replicas.limitations"></a>

Db2 レプリカの要件は、ライセンスとバージョニング、バックアップと復元に関する考慮事項、レプリケーションの動作、一般的な運用上の考慮事項のいくつかのカテゴリに分類されます。Db2 レプリカを作成する前に、以下の要件と考慮事項をよく確認してください。

## RDS for Db2 レプリカのバージョンとライセンスの要件
<a name="db2-read-replicas.limitations.versions-and-licenses"></a>

RDS for Db2 レプリカを作成する前に、バージョンとライセンスモデルに関する次の情報を確認してください。
+ **サポートされるバージョン** – すべての Db2 11.5 バージョンは、レプリカ DB インスタンスをサポートしています。

  ソース DB インスタンスとレプリカ DB インスタンスは、同じメジャーバージョンを使用する必要があります。Db2 レプリカはマイナーバージョンアップグレードをサポートしていますが、メジャーバージョンアップグレードはサポートしていません。DB インスタンスのアップグレードに関する情報については、「[DB インスタンスのエンジンバージョンのアップグレード](USER_UpgradeDBInstance.Upgrading.md)」を参照してください。
**注記**  
ソース DB インスタンスをアップグレードすると、すべてのレプリカが自動的にアップグレードされ、バージョンの互換性が維持されます。
+ **有効なライセンスモデルとレプリカモード** – Db2 の Advanced Edition (AE) と Standard Edition (SE) のどちらも、Bring Your Own License (BYOL) モデルと Db2 ライセンス (AWS Marketplace モデル経由) の両方で、読み取り専用モードまたはスタンバイモードでレプリカを作成できます。
+ **カスタムパラメータグループ** – レプリカのカスタムパラメータグループを指定する必要があります。

  BYOL モデルを使用するレプリカの場合、このカスタムパラメータグループには IBM Site ID と IBM Customer ID を含める必要があります。詳細については、「[Db2 の Bring-Your-Own-License (BYOL) の IBM ID](db2-licensing.md#db2-prereqs-ibm-info)」を参照してください。レプリカのカスタムパラメータグループは、AWS マネジメントコンソール、AWS CLI、または RDS API を使用して指定できます。
+ **vCPU の数**は、レプリカモードとライセンスモデルによって異なります。
  + **スタンバイレプリカ**は、DB インスタンスのサイズに関係なく、常に 2 つの vCPU を使用します。
    + **BYOL モデル** – AWS License Manager の設定は RDS for Db2 DB インスタンスが 2 つの vCPU を使用することを示します。
    + **AWS Marketplace モデル経由の Db2 ライセンス** – 請求には 2 つの vCPU のライセンスコストが反映されます。
  + **読み取り専用レプリカ**は、DB インスタンスサイズと同じ vCPU 数を使用します。
    + **BYOL モデル** – AWS License Manager 設定は、RDS for Db2 DB インスタンスが DB インスタンスサイズに一致する同じ数の vCPU を使用することを示しています。
    + **AWS Marketplace モデル経由の Db2 ライセンス** – 請求書には、DB インスタンスサイズに一致する同じ数の vCPU ライセンスコストが反映されます。

## RDS for Db2 レプリカのバックアップと復元に関する考慮事項
<a name="db2-read-replicas.limitations.backups"></a>

レプリカバックアップの動作は、プライマリデータベースバックアップとは異なります。次のバックアップと復元の要件を検討してください。
+ RDS for Db2 レプリカのスナップショットを作成したり、自動バックアップを有効にしたりするには、必ずバックアップ保持期間を手動で設定してください。自動バックアップは、デフォルトでは有効になっていません。
+ レプリカのバックアップを復元するときは、バックアップが実行された時刻ではなく、データベース時刻に復元することになります。データベース時刻は、バックアップのデータにトランザクションが最後に適用された時刻を指します。レプリカはプライマリよりも数分または数時間遅れることがあるため、この違いは重要です。複数のデータベースがある場合、RDS for Db2 は最も早いデータベース時間を使用します。

  違いを確認するには、AWS CLI の [describe-db-snapshots](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshots.html) コマンドを実行するか、RDS API の [DescribeDBSnapshots](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshots.html) オペレーションを呼び出します。`SnapshotDatabaseTime` 値と `OriginalSnapshotCreateTime` 値を比較します。`SnapshotDatabaseTime` 値は、レプリカバックアップのデータベース時刻です。`OriginalSnapshotCreateTime` 値は、プライマリデータベースに最後に適用されたトランザクションです。

バックアップおよびバックアップを復元する方法については、「[RDS for Db2 レプリカのバックアップの使用](db2-read-replicas.backups.md)」を参照してください。

## RDS for Db2 レプリカのレプリケーションに関する考慮事項
<a name="db2-read-replicas.limitations.replication"></a>

Db2 レプリカは、特定の制限と動作を持つ HADR テクノロジーを使用します。次のレプリケーションに関する考慮事項を確認してください。
+ レプリケーションは、RDS for Db2 DB インスタンスのすべてのデータベースに Db2 HADR を使用します。
+ レプリケーションは `LOAD` コマンドをサポートしていません。ソース DB インスタンスから `LOAD` コマンドを実行すると、不整合なデータが返されます。
+ RDS for Db2 は、以下の項目をレプリケートしません。
  + ストレージアクセス。ストレージアクセスに依存する、外部テーブルなどのデータに注意してください。
  + ログに記録されない非インライン LOB。
  + 外部ストアドプロシージャのバイナリ (C または Java)。
+ スタンバイレプリカの場合、RDS for Db2 は以下の項目をレプリケートします。
  + マスターユーザーを除くローカルユーザー
  + データベース設定パラメータ
+ 読み取り専用レプリカの場合、RDS for Db2 は以下の項目をレプリケートします。
  + マスターユーザーを除くローカルユーザー
  + SID グループマッピング

## RDS for Db2 レプリカに関するその他の考慮事項
<a name="db2-read-replicas.limitations.miscellaneous"></a>

Db2 レプリカには、追加の運用上の考慮事項が適用されます。以下の項目を確認します。
+ RDS for Db2 は、データベース設定をレプリカにレプリケートします。RDS for Db2 は、レプリカの昇格時に、各データベースを非アクティブ化およびアクティブ化します。
+ RDS for Db2 は、(マスターユーザーではなく) ローカルユーザーと SID グループマッピングをレプリカにレプリケートします。レプリカのマスターユーザーは変更できます。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。
+ すべてのデータベースはアクティブ状態である必要があります。データベースのアクティブ化については、「[RDS for Db2 のデータベースのストアドプロシージャ](db2-sp-managing-databases.md)」を参照してください。
+ レプリカを作成する前に、データベースを作成、削除、復元、またはロールフォワードするすべてのストアドプロシージャを完了する必要があります。これらのストアドプロシージャについては、「[RDS for Db2 のデータベースのストアドプロシージャ](db2-sp-managing-databases.md)」を参照してください。
+ レプリカが作成されると、Amazon RDS はソース DB インスタンスのすべてのデータベースについて、データベースレベルのパラメータ `blocknonlogged` を `YES` に設定します。ソースレプリカが再びスタンドアロンインスタンスになると、Amazon RDS は値を `NO` に戻します。詳細については、IBM Db2 ドキュメントの「[blocknonlogged - Block creation of tables that allow non-logged activity configuration parameter](https://www.ibm.com/docs/en/db2/11.1?topic=dcp-blocknonlogged-block-creation-tables-that-allow-non-logged-activity)」を参照してください。
+ レプリカが作成されると、Amazon RDS はソース DB インスタンスのすべてのデータベースについて、データベースレベルのパラメータ `logindexbuild` を `YES` に設定します。ソースレプリカが再びスタンドアロンインスタンスになると、Amazon RDS は値を `NO` に戻します。詳細については、IBM Db2 ドキュメントの「[logindexbuild - Log index pages created configuration parameter](https://www.ibm.com/docs/en/db2/11.1?topic=parameters-logindexbuild-log-index-pages-created)」を参照してください。

# RDS for Db2 レプリカの作成の準備
<a name="db2-read-replicas.Configuration"></a>

RDS for Db2 レプリカを作成する前に、レプリケーションを成功させるために以下のタスクを完了する必要があります。これらのタスクは、一般的な問題を防ぎ、最適なパフォーマンスを確保するのに役立ちます。

## タスク 1: 自動バックアップの有効化
<a name="db2-read-replicas.configuration.autobackups"></a>

DB インスタンスがソース DB インスタンスとして機能するには、ソース DB インスタンスで自動バックアップを有効にする必要があります。これは、すべてのレプリカ作成オペレーションの前提条件です。この手順の実行方法については、「[自動バックアップの有効化](USER_WorkingWithAutomatedBackups.Enabling.md)」を参照してください。

Db2 レプリカに固有のバックアップについては、「[RDS for Db2 レプリカのバックアップの使用](db2-read-replicas.backups.md)」を参照してください。

## タスク 2: コンピューティングとストレージのリソース計画
<a name="db2-read-replicas.configuration.planning-resources"></a>

ソース DB インスタンスとそのレプリカのサイズが、運用負荷に合わせる上でコンピューティングとストレージの観点から適切に設定されていることを確認してください。レプリカのコンピューティング、ネットワーク、またはストレージがリソースの容量に達すると、レプリカはソースからの変更の受信または適用を停止します。レプリカのパフォーマンスとリソース使用率のモニタリングについては、「[リードレプリケーションのモニタリング](USER_ReadRepl.Monitoring.md)」を参照してください。

RDS for Db2 が、ソース DB インスタンスとそのレプリカの間におけるレプリカの高遅延を軽減するために介入することはありません。レプリカの遅延が大きい場合は、トラブルシューティングのガイダンスについて「[Db2 レプリケーション遅延のモニタリング](db2-troubleshooting-replicas.md#db2-troubleshooting-replicas-lag)」を参照してください。

レプリカのストレージや CPU リソースは、そのソースや他のレプリカとは独立して変更することができます。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## タスク 3: データベースを準備する
<a name="db2-read-replicas.configuration.activate-databases"></a>

レプリカを作成する前に、次の点に基づいてデータベースの準備が整っていることを確認します。
+ DB インスタンスにすべての必要なデータベースが含まれていることを確認してください。レプリカの作成後は、DB インスタンス内のデータベースを作成、削除、またはネイティブ復元することはできません。[rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database)、[rdsadmin.drop\$1database](db2-sp-managing-databases.md#db2-sp-drop-database)、または [rdsadmin.restore\$1database](db2-sp-managing-databases.md#db2-sp-restore-database) ストアドプロシージャへのすべての呼び出しは失敗します。
+ DB インスタンス内のすべてのデータベースはアクティブ状態です。データベースが非アクティブ状態の場合、レプリカの作成は失敗します。データベースのアクティブ化については、「[RDS for Db2 のデータベースのストアドプロシージャ](db2-sp-managing-databases.md)」を参照してください。

## 次のステップ
<a name="db2-read-replicas-configuration-next-steps"></a>

すべての準備タスクを完了したら、Db2 レプリカを作成する準備が整います。
+ 読み取り専用レプリカを作成するには、「[リードレプリカの作成](USER_ReadRepl.Create.md)」を参照してください。
+ スタンバイレプリカを作成するには、「[スタンバイ Db2 レプリカの作成](db2-read-replicas.creating-in-standby-mode.md)」を参照してください。

# スタンバイモードでの RDS for Db2 レプリカの作成
<a name="db2-read-replicas.creating-in-standby-mode"></a>

デフォルトでは、Db2 レプリカは読み取り専用モードで作成されます。ディザスタリカバリの目的で、スタンバイモードでレプリカを作成できます。スタンバイレプリカはユーザー接続を受け入れませんが、クロスリージョンシナリオでより高速なフェイルオーバー機能を提供します。

スタンバイレプリカを作成する前に、準備タスクが完了していることを確認してください。詳細については、「[RDS for Db2 レプリカの作成の準備](db2-read-replicas.Configuration.md)」を参照してください。スタンバイレプリカを作成したら、レプリカモードを変更できます。詳細については、「[RDS for Db2 レプリカモードの変更](db2-replicas-changing-replica-mode.md)」を参照してください。

スタンバイレプリカを作成するには、AWS マネジメントコンソール、AWS CLI、または RDS API を使用できます。読み取り専用レプリカの作成については、「[リードレプリカの作成](USER_ReadRepl.Create.md)」を参照してください。

## コンソール
<a name="db2-read-replicas.creating-in-standby-mode.console"></a>

**ソース RDS for Db2 DB インスタンスからスタンバイレプリカを作成するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**データベース** を選択します。

1. スタンバイレプリカのソースとして使用する RDS for Db2 DB インスタンスを選択します。

1. **アクション**で**レプリカの作成**を選択します。

1. **[レプリカモード]**で、**[スタンバイ]**を選択します。

1. 使用する設定を選択します。**[DB インスタンス識別子]** に、スタンバイレプリカの名前を入力します。必要に応じて他の設定を変更します。

1. **[リージョン]** で、スタンバイレプリカを起動する AWS リージョンを選択します。

1. インスタンスサイズとストレージタイプを選択します。スタンバイレプリカでもソース DB インスタンスと同じ DB インスタンスクラスとストレージタイプを使用することをお勧めします。

1. **[マルチ AZ 配置]** で **[スタンバイインスタンスを作成]** を選択し、スタンバイレプリカのフェイルオーバーをサポートするために、別のアベイラビリティーゾーンにレプリカのスタンバイを作成します。

1. 使用する他の設定を選択します。

1. **レプリカの作成**を選択します。

**[データベース]** ページで、スタンバイレプリカにロールとして **[レプリカ]** が割り当てられます。

## AWS CLI
<a name="db2-read-replicas.creating-in-standby-mode.cli"></a>

スタンバイモードで Db2 レプリカを作成するには、AWS CLI コマンド [create-db-instance-read-replica](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html) で `--replica-mode` を `mounted` に設定します。

**Example**  
Linux、macOS、Unix の場合:  

```
aws rds create-db-instance-read-replica \
    --db-instance-identifier my_standby_replica \
    --source-db-instance-identifier my_db_instance \
    --replica-mode mounted
```
Windows の場合:  

```
aws rds create-db-instance-read-replica ^
    --db-instance-identifier my_standby_replica ^
    --source-db-instance-identifier my_db_instance ^
    --replica-mode mounted
```

## RDS API
<a name="db2-read-replicas.creating-in-standby-mode.api"></a>

スタンバイモードで Db2 レプリカを作成するには、RDS API オペレーション [CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html) で `ReplicaMode=mounted` を指定します。

# RDS for Db2 レプリカモードの変更
<a name="db2-replicas-changing-replica-mode"></a>

既存の Db2 レプリカのレプリカモードは、読み取り専用モードとスタンバイモードの間で変更できます。この柔軟性により、読み取りワークロードやディザスタリカバリのニーズの変化する要件に基づいてレプリカ設定を適応させることができます。

以下のシナリオでは、レプリカモードを変更することができます。
+ **読み取り専用からスタンバイ** – 読み取り容量が不要になったが、ディザスタリカバリ機能を維持したい場合
+ **読み取り専用へのスタンバイ** – レポートまたは分析ワークロードの読み取り容量を追加する必要がある場合

レプリカモードを変更する前に、次の条件が満たされていることを確認してください。
+ レプリカは使用可能な状態です。
+ レプリカでアクティブなメンテナンスオペレーションが実行されていません。
+ DB インスタンスを変更するために必要なアクセス許可があります。

変更には数分かかる場合があります。オペレーション中、DB インスタンスのステータスは **modifying** に変わります。ステータス変更の詳細については、「[ Amazon RDS DB インスタンスのステータスの表示](accessing-monitoring.md#Overview.DBInstance.Status)」を参照してください。読み取り専用モードからスタンバイモードに変更すると、レプリカはすべてのアクティブな接続を切断します。

**重要**  
レプリカモードを変更するとサービスが一時的に中断されるため、メンテナンスウィンドウ中に変更を計画して、アプリケーションへの影響を最小限に抑えます。

レプリカモードは、AWS マネジメントコンソール、AWS CLI、または RDS API を使用して変更できます。

## コンソール
<a name="db2-replicas-changing-replica-mode-console"></a>

**Db2 レプリカのレプリカモードを変更するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**データベース** を選択します。

1. 変更するレプリカデータベースを選択します。

1. **[Modify]** (変更) を選択します。

1. **[レプリカモード]** では、目的のモードを選択します。
   + **読み取り専用** – 読み取りワークロード用
   + **スタンバイ** — ディザスタリカバリ用

1. 変更する他の設定を選択します。

1. [**Continue**] を選択します。

1. [**変更のスケジューリング**] で、[**すぐに適用**] を選択します。

1. [**DB インスタンスの変更**] を選択します。

1. 変更が完了したら、**[データベース]** ページでレプリカモードの変更を確認します。変更が完了すると、レプリカのステータスが **[利用可能]** と表示されます。

## AWS CLI
<a name="db2-replicas-changing-replica-mode-cli"></a>

Db2 レプリカを読み取り専用モードからスタンバイモードに変更するには、AWS CLI コマンド [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) で `--replica-mode` を `mounted` に設定します。Db2 レプリカをスタンバイモードから読み取り専用モードに変更するには、`--replica-mode` を `open-read-only` に設定します。

次の例では、レプリカを読み取り専用モードからスタンバイモードに変更します。

**Example**  
Linux、macOS、Unix の場合:  

```
aws rds modify-db-instance \
    --db-instance-identifier my_db2_replica \
    --replica-mode mounted
```
Windows の場合:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my_db2_replica ^
    --replica-mode mounted
```

次の例では、レプリカをスタンバイモードから読み取り専用モードに変更します。

**Example**  
Linux、macOS、Unix の場合:  

```
aws rds modify-db-instance \
    --db-instance-identifier my_db2_replica \
    --replica-mode open-read-only
```
Windows の場合:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my_db2_replica ^
    --replica-mode open-read-only
```

## RDS API
<a name="db2-replicas-changing-replica-mode-api"></a>

Db2 レプリカを読み取り専用モードからスタンバイモードに変更するには、[ModifyDBInstance](AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) で `ReplicaMode=mounted` に設定します。Db2 レプリカをスタンバイモードから読み取り専用モードに変更するには、`ReplicaMode=open-read-only` に設定します。

以下は、レプリカモードを読み取り専用からスタンバイに変更するための API コールの例です。

```
{
    "DBInstanceIdentifier": "my_db2_replica",
    "ReplicaMode": "mounted",
    "ApplyImmediately": true
}
```

以下は、レプリカモードをスタンバイモードから読み取り専用モードに変更するための API コールの例です。

```
{
    "DBInstanceIdentifier": "my_db2_replica",
    "ReplicaMode": "open-read-only",
    "ApplyImmediately": true
}
```

レプリカモードの違いについては、「[Amazon RDS for Db2 のレプリカの使用](db2-replication.md)」を参照してください。レプリカの問題のトラブルシューティングについては、「[RDS for Db2 レプリケーションの問題のトラブルシューティング](db2-troubleshooting-replicas.md)」を参照してください。

# RDS for Db2 レプリカのバックアップの使用
<a name="db2-read-replicas.backups"></a>

プライマリデータベースと同様に、RDS for Db2 レプリカのバックアップを作成および復元できます。ただし、レプリカバックアップの仕組み、特に復元のタイミングとバックアップの保持設定には重要な違いがあります。

RDS for Db2 は、レプリカの自動バックアップと手動スナップショットの両方をサポートしています。RDS for Db2 はポイントインタイムリストアをサポートしていません。RDS バックアップの詳細については、「[データのバックアップ、復元、エクスポート](CHAP_CommonTasks.BackupRestore.md)」を参照してください。

## レプリカバックアップの主な違い
<a name="db2-read-replicas-backups-overview"></a>

レプリカバックアップは、いくつかの重要な点でプライマリデータベースバックアップとは異なります。
+ 自動バックアップは、レプリカではデフォルトで有効になっていません。
+ 復元オペレーションでは、バックアップの作成時間ではなくデータベース時間を使用します。
+ レプリカの遅延は、復元された実際のデータに影響を与える可能性があります。レプリカ遅延のモニタリングの詳細については、「[Db2 レプリケーション遅延のモニタリング](db2-troubleshooting-replicas.md#db2-troubleshooting-replicas-lag)」を参照してください。

## RDS for Db2 レプリカの自動バックアップの有効化
<a name="db2-read-replicas.backups.turning-on"></a>

プライマリデータベースとは異なり、RDS for Db2 レプリカでは、自動バックアップがデフォルトで有効になっていません。自動バックアップを有効にするには、バックアップ保持期間を手動で設定する必要があります。バックアップ保持期間を 0 以外の正の値に設定することで自動バックアップを有効にします。

### コンソール
<a name="db2-read-replicas.backups.turning-on-console"></a>

**自動バックアップをすぐに有効にするには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択し、変更する DB インスタンスを選択します。

1. **[Modify]** (変更) を選択します。

1. **[バックアップ保持期間]** で、ゼロ以外の正の値 (3 日など) を選択します。

1. **[続行]** を選択します。

1. **[すぐに適用]** を選択します。

1. **[DB インスタンスを変更]** を選択して変更を保存し、自動バックアップを有効にします。

### AWS CLI
<a name="db2-read-replicas.backups.turning-on-cli"></a>

自動バックアップを有効にするには、AWS CLI の [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) コマンドを使用します。

以下のパラメータを含めます。
+ `--db-instance-identifier`
+ `--backup-retention-period`
+ `--apply-immediately` 、、または `--no-apply-immediately`

次の例では、バックアップ保持期間を 3 日に設定して、自動バックアップを有効にします。変更はすぐに適用されます。

**Example**  
Linux、macOS、Unix の場合:  

```
aws rds modify-db-instance \
    --db-instance-identifier my_db_instance  \
    --backup-retention-period 3 \
    --apply-immediately
```
Windows の場合:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my_db_instance  ^
    --backup-retention-period 3 ^
    --apply-immediately
```

### RDS API
<a name="db2-read-replicas.backups.turning-on-api"></a>

自動バックアップを有効にするには、以下の必須パラメータを指定して RDS API の [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) オペレーションを使用します。
+ `DBInstanceIdentifier`
+ `BackupRetentionPeriod`

## RDS for Db2 レプリカのバックアップの復元
<a name="db2-read-replicas.backups.restoring"></a>

RDS for Db2 レプリカのバックアップは、プライマリデータベースのバックアップを復元するのと同じ方法で復元できます。詳細については、「[DB インスタンスへの復元](USER_RestoreFromSnapshot.md)」を参照してください。

レプリカバックアップを復元する際の最も重要な考慮事項は、特にレプリカラグが存在する場合、データベース時間とバックアップ作成時間の違いを理解することです。

レプリケーションの遅延をモニタリングし、バックアップに期待されるデータが含まれていることを確認できます。ReplicaLag メトリクスについては、「[Amazon RDS の Amazon CloudWatch メトリクス](rds-metrics.md)」をご参照ください。

### タイミングの違いについて
<a name="db2-read-replicas-backups-restoring-timing"></a>

レプリカバックアップを復元する場合、復元する時点を決定する必要があります。データベース時刻は、バックアップのデータにトランザクションが最後に適用された時刻を指します。レプリカのバックアップを復元するときは、バックアップが完了した時刻ではなく、データベース時刻に復元することになります。レプリカはプライマリデータベースよりも数分または数時間遅れることがあるため、この違いは重要です。したがって、レプリカバックアップのデータベース時間は、スナップショットの作成時間よりもはるかに早い場合があります。

データベース時刻と作成時刻の違いを確認するには、AWS CLI の [describe-db-snapshots](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshots.html) コマンドを実行するか、RDS API の [DescribeDBSnapshots](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshots.html) オペレーションを呼び出します。`SnapshotDatabaseTime` 値と `OriginalSnapshotCreateTime` 値を比較します。`SnapshotDatabaseTime` 値は、レプリカバックアップのすべてのデータベースのうち、最も早いデータベース時刻です。`OriginalSnapshotCreateTime` 値は、プライマリデータベースに最後に適用されたトランザクションです。レプリケーション遅延は複数のデータベースで異なる場合があり、データベース時刻はこれら 2 つの時刻の間になる可能性があることに注意してください。

次の AWS CLI の例は、2 つの時刻の差を示しています。

Linux、macOS、Unix の場合:

```
aws rds describe-db-snapshots \
    --db-instance-identifier my_db2_replica \
    --db-snapshot-identifier my_replica_snapshot
```

Windows の場合:

```
aws rds describe-db-snapshots ^
    --db-instance-identifier my_db2_replica ^
    --db-snapshot-identifier my_replica_snapshot
```

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

```
{
    "DBSnapshots": [
        {
            "DBSnapshotIdentifier": "my_replica_snapshot",
            "DBInstanceIdentifier": "my_db2_replica", 
            "SnapshotDatabaseTime": "2022-07-26T17:49:44Z",
            ...
            "OriginalSnapshotCreateTime": "2021-07-26T19:49:44Z"
        }
    ]
}
```

# RDS for Db2 レプリケーションの問題のトラブルシューティング
<a name="db2-troubleshooting-replicas"></a>

このトピックでは、RDS for Db2 レプリケーションの一般的な問題について説明し、読み取り専用レプリカとスタンバイレプリカの両方のトラブルシューティングガイダンスを提供します。以下のトラブルシューティング情報を確認するだけでなく、Db2 レプリカを作成する前に、[要件と考慮事項](db2-read-replicas.limitations.md)に従って[準備手順](db2-read-replicas.Configuration.md)を完了していることを確認してください。

## レプリカ作成の失敗
<a name="db2-troubleshooting-replicas-creation"></a>



レプリカの作成は、いくつかの理由で失敗することがあります。
+ **非アクティブなデータベース** – レプリカを作成する前に、ソース DB インスタンス上のすべてのデータベースがアクティブである必要があります。

  データベースのアクティブ化については、「[RDS for Db2 のデータベースのストアドプロシージャ](db2-sp-managing-databases.md)」を参照してください。
+ **自動バックアップがない** – ソース DB インスタンスで自動バックアップが有効になっている必要があります。

  バックアップの有効化については、「[RDS for Db2 レプリカの自動バックアップの有効化](db2-read-replicas.backups.md#db2-read-replicas.backups.turning-on)」を参照してください。
+ **パラメータグループの問題** – レプリカにはカスタムパラメータグループが必要です。BYOL ライセンスの場合、パラメータグループには IBM Site ID と IBM Customer ID を含める必要があります。

  詳細については、「[Db2 の Bring-Your-Own-License (BYOL) の IBM ID](db2-licensing.md#db2-prereqs-ibm-info)」を参照してください。

## Db2 レプリケーション遅延のモニタリング
<a name="db2-troubleshooting-replicas-lag"></a>

Amazon CloudWatch のレプリケーションラグをモニタリングするには、Amazon RDS `ReplicaLag` メトリクスを表示します。レプリケーションのラグタイムについては、「[リードレプリケーションのモニタリング](USER_ReadRepl.Monitoring.md)」および「[Amazon RDS の Amazon CloudWatch メトリクス](rds-metrics.md)」を参照してください。レプリカの遅延の CloudWatch アラームの設定については、「[Amazon CloudWatch を使用した Amazon RDS メトリクスのモニタリング](monitoring-cloudwatch.md)」を参照してください。

読み取り専用レプリカの場合、遅延時間が長すぎるときは、`MON_GET_HADR` テーブルをクエリしてレプリカ DB インスタンスのステータスをチェックします。

スタンバイレプリカの場合、遅延時間が長すぎるときは、`MON_GET_HADR` テーブルをクエリしてソース DB インスタンスのステータスをチェックします。レプリカ DB インスタンスはユーザー接続を受け付けないため、レプリカ DB インスタンスをクエリしないでください。

レプリケーションの遅延が高い一般的な原因には、次のようなものがあります。
+ レプリカのコンピューティングリソースが不十分
+ ソースとレプリカ間のネットワーク接続の問題
+ ソースデータベースでの書き込みアクティビティが高い
+ レプリカのストレージパフォーマンスの制限

レプリケーションの遅延が大きい場合は、レプリカリソースのスケーリングを検討してください。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## Db2 レプリケーションエラー
<a name="db2-troubleshooting-replicas-triggers"></a>

Db2 レプリケーションは、さまざまな理由でエラー状態になることがあります。次のアクションを実行します。
+ イベントと DB インスタンスの状態をモニタリングして、DB インスタンスがレプリケートされていることを確認してください。

  詳細については、「[Amazon RDS イベント通知の操作](USER_Events.md)」を参照してください。
+ Amazon RDS コンソールで Db2 レプリカの診断ログを確認します。ログで、HADR メッセージのエラーを探します。ログシーケンス番号とプライマリシーケンス番号を比較します。

  Db2 診断ログへのアクセスと解釈については、「[Amazon RDS for Db2 データベースのログファイル](USER_LogAccess.Concepts.Db2.md)」を参照してください。Db2 HADR の設定とトラブルシューティングの詳細については、「[Amazon RDS for Db2 のレプリカの使用](db2-replication.md)」を参照してください。

レプリケーションエラーが解決しない場合は、レプリカを再作成する必要がある場合があります。

## 接続の問題
<a name="db2-troubleshooting-replicas-connections"></a>

レプリカに接続できない場合は、レプリカモードに関する次の情報を確認してください。
+ **スタンバイレプリカ** – 設計上、ユーザー接続は受け付けません。読み込みワークロードには読み取り専用レプリカを使用します。
+ **読み取り専用レプリカ** – セキュリティグループ設定、ネットワーク ACL、パラメータグループ設定を確認します。

  詳細については、「*Amazon VPC ユーザーガイド*」の「[セキュリティグループを使用して AWS リソースへのトラフィックを制御する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)」、「*Amazon VPC ユーザーガイド*」の「[ネットワークアクセスコントロールリストを使用してサブネットのトラフィックを制御する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)」、および「[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。

## パフォーマンスの問題
<a name="db2-troubleshooting-replicas-performance"></a>

レプリカのパフォーマンスが低い場合は、次の提案を確認してください。
+ レプリカに適切なコンピューティングリソースとストレージリソースがあることを確認します。
+ Amazon CloudWatch で `ReplicaLag` メトリクスをモニタリングします。
+ レプリカ DB インスタンスクラスをスケールアップすることを検討してください。

リソースまたはインスタンスクラスの変更方法については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

レプリケーション遅延のモニタリングの詳細については、「[レプリケーションラグのモニタリング](USER_ReadRepl.Monitoring.md#USER_ReadRepl.Monitoring.Lag)」と「[Amazon RDS の Amazon CloudWatch メトリクス](rds-metrics.md)」を参照してください。レプリカの遅延の CloudWatch アラームの設定については、「[Amazon CloudWatch を使用した Amazon RDS メトリクスのモニタリング](monitoring-cloudwatch.md)」を参照してください。

# RDS for Db2 DB インスタンスのオプション
<a name="Db2.Options"></a>

以下は、Db2 DB エンジンを実行する Amazon RDS インスタンスで使用できるオプションまたは追加機能を示しています。これらのオプションを有効にするには、カスタムオプショングループにオプションを追加して、そのオプショングループを DB インスタンスに関連付けます。オプショングループの操作方法の詳細については、「[オプショングループを使用する](USER_WorkingWithOptionGroups.md)」を参照してください。

Amazon RDS では、以下の Db2 用オプションがサポートされています。


| オプション | オプション ID | 
| --- | --- | 
|  [Db2 監査ログ記録](Db2.Options.Audit.md)  |  `DB2_AUDIT`  | 

# Db2 監査ログ記録
<a name="Db2.Options.Audit"></a>

Amazon RDS では、Db2 監査プラグインを使用して、データベースへのユーザーのログオンやデータベースに対して実行されたクエリなどのデータベースアクティビティを記録します。RDS は、完了した監査ログを Amazon S3 バケットにアップロードします。この際、指定された AWS Identity and Access Management (IAM) ロールを使用します。

**Topics**
+ [Db2 監査ログのセットアップ](#db2-audit-setting-up)
+ [Db2 監査ログ記録の管理](#db2-audit-managing)
+ [監査ログの表示](#db2-audit-viewing-logs)
+ [監査ログ記録のトラブルシューティング](#db2-audit-troubleshooting)

## Db2 監査ログのセットアップ
<a name="db2-audit-setting-up"></a>

Amazon RDS for Db2 データベースの監査ログを有効にするには、RDS for Db2 DB インスタンスで `DB2_AUDIT` オプションを有効にします。次に、監査ポリシーを設定して、特定のデータベースの機能を有効にします。RDS for Db2 DB インスタンスでオプションを有効にするには、`DB2_AUDIT` オプションのオプション設定を行います。そのためには、Amazon S3 バケットの Amazon リソースネーム (ARN) と、バケットへのアクセス許可を持つ IAM ロールを指定します。

RDS for Db2 データベースの Db2 監査ログを設定するには、次のステップを実行します。

**Topics**
+ [ステップ 1: Amazon S3 バケットを作成する](#db2-audit-create-s3-bucket)
+ [ステップ 2: IAM ポリシーを作成する](#db2-audit-create-iam-policy)
+ [ステップ 3: IAM ロールを作成して IAM ポリシーをアタッチする](#db2-audit-create-iam-role)
+ [ステップ 4: Db2 監査ログ記録のオプショングループを設定する](#db2-audit-configure-options-group)
+ [ステップ 5: 監査ポリシーを設定する](#db2-audit-configure-audit-policy)
+ [ステップ 6: 監査設定を確認する](#db2-audit-check-config-status)

### ステップ 1: Amazon S3 バケットを作成する
<a name="db2-audit-create-s3-bucket"></a>

まだ作成していない場合は、Amazon RDS が RDS for Db2 データベースの監査ログファイルをアップロードできる Amazon S3 バケットを作成します。監査ファイルのターゲットとして使用する S3 バケットには、以下の制限が適用されます。
+ RDS for Db2 DB インスタンスと同じ AWS リージョン にある必要があります。
+ 公開することは禁止されています。
+ バケット所有者は IAM ロール所有者でもある必要があります。

S3 バケットを作成するには、「**Amazon S3 ユーザーガイド」の「[バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)」を参照してください。

監査ログ記録を有効にすると、Amazon RDS は DB インスタンスから次の場所にログを自動的に送信します。
+ DB インスタンスレベルのログ – `bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/`
+ データベースレベルのログ – `bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/db_name/`

バケットの Amazon リソースネーム (ARN) をメモします。この情報は、後続のステップを完了するために必要です。

### ステップ 2: IAM ポリシーを作成する
<a name="db2-audit-create-iam-policy"></a>

DB インスタンスから Amazon S3 バケットに監査ログファイルを転送するために必要なアクセス許可を持つ IAM ポリシーを作成します。このステップは、S3 バケットがあることを前提としています。

ポリシーを作成する前に、次の情報を集めます。
+ バケットの ARN。
+ AWS Key Management Service (AWS KMS) キーの ARN (バケットが SSE-KMS 暗号化を使用している場合)

以下のアクセス許可を含む IAM ポリシーを作成します。

```
"s3:ListBucket",
 "s3:GetBucketAcl",
 "s3:GetBucketLocation",
 "s3:PutObject",
 "s3:ListMultipartUploadParts",
 "s3:AbortMultipartUpload",
 "s3:ListAllMyBuckets"
```

**注記**  
Amazon RDS では、同じ AWS アカウント が S3 バケットと RDS for Db2 DB インスタンスの両方を所有していることを確認するために、内部での `s3:ListAllMyBuckets` アクションが必要です。

バケットが SSE-KMS 暗号化を使用している場合は、IAM ロールと AWS KMS キー用に次のアクセス許可も含めてください。

IAM ロールのポリシーに以下のアクセス許可を含めます。

```
"kms:GenerateDataKey",
 "kms:Decrypt"
```

AWS KMS キーのキーポリシーに以下のアクセス許可を含めます。*111122223333* をアカウント番号に置き換え、*AROA123456789EXAMPLE* を IAM ロール名に置き換えます。

```
{
  "Sid": "Allow RDS role to use the key",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:sts::111122223333:assumed-role/AROA123456789EXAMPLE/RDS-Db2Audit",
      "arn:aws:iam::111122223333:role/AROA123456789EXAMPLE"
    ]
  },
  "Action": [
    "kms:GenerateDataKey",
    "kms:Decrypt"
  ],
  "Resource": "*"
}
```

IAM ポリシーは、AWS マネジメントコンソール または AWS Command Line Interface (AWS CLI) を使用して作成できます。

#### コンソール
<a name="db2-audit-create-iam-policy-console"></a>

**Amazon S3 バケットへのアクセスを Amazon RDS に許可する IAM ポリシーを作成するには**

1. AWS マネジメントコンソール にサインインして、IAM コンソール [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) を開きます。

1. ナビゲーションペインで、**[ポリシー]** を選択します。

1. **[ポリシーを作成]** を選択し、**[JSON]** を選択します。

1. **[アクションを追加]** で、「**S3**」でフィルタリングします。アクセス **ListBucket**、**GetBucketAcl**、**GetBucketLocation** を追加します。

1. **[リソースを追加]** で、**[追加]** を選択します。**[リソースタイプ]** で、**[バケット]** を選択し、バケットの名前を入力します。**[リソースを追加]** を選択します。

1. **[新しいステートメントを追加]** を選択します。

1. **[アクションを追加]** で、「**S3**」でフィルタリングします。アクセス **PutObject**、**ListMultipartUploadParts**、**AbortMultipartUpload** を追加します。

1. **[リソースを追加]** で、**[追加]** を選択します。**[リソースタイプ]** で、**[オブジェクト]** を選択し、*バケット名/\$1* を入力します。**[リソースを追加]** を選択します。

1. **[新しいステートメントを追加]** を選択します。

1. **[アクションを追加]** で、「**S3**」でフィルタリングします。アクセス **ListAllMyBuckets** を追加します。

1. **[リソースを追加]** で、**[追加]** を選択します。**[リソースタイプ]** には、**[すべてのリソース]** を選択します。**[リソースを追加]** を選択します。

1. 独自の KMS キーを使用してデータを暗号化する場合:

   1. **[新しいステートメントを追加]** を選択します。

   1. **[アクションを追加]** で、「KMS」でフィルタリングします。アクセス **GenerateDataKey**、**Decrypt** を追加します。

   1. **[リソースを追加]** で、**[追加]** を選択します。**[リソースタイプ]** には、**[すべてのリソース]** を選択します。**[リソースを追加]** を選択します。

1. [**次へ**] を選択します。

1. **[ポリシー名]** にこのポリシーの名前を入力します。

1. (オプション) **[Description (説明)]** に、ポリシーの説明を入力します。

1. [**Create policy**] (ポリシーの作成) を選択します。

#### AWS CLI
<a name="db2-audit-create-iam-policy-cli"></a>

**Amazon S3 バケットへのアクセスを Amazon RDS に許可する IAM ポリシーを作成するには**

1. [https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-policy.html) コマンドを実行します。次の例では、*iam\$1policy\$1name* と *amzn-s3-demo-bucket* を IAM ポリシーの名前とターゲットの Amazon S3 バケットの名前に置き換えます。

   Linux、macOS、Unix の場合:

   ```
   aws iam create-policy \
       --policy-name iam_policy_name \
       --policy-document '{
           "Version": "2012-10-17",		 	 	 
           "Statement": [
               {
                   "Sid": "Statement1",
                   "Effect": "Allow",
                   "Action": [
                       "s3:ListBucket",
                       "s3:GetBucketAcl",
                       "s3:GetBucketLocation"
                   ],
                   "Resource": [
                       "arn:aws:s3:::amzn-s3-demo-bucket"
                   ]
               },
               {
                   "Sid": "Statement2",
                   "Effect": "Allow",
                   "Action": [
                       "s3:PutObject",
                       "s3:ListMultipartUploadParts",
                       "s3:AbortMultipartUpload"
                   ],
                   "Resource": [
                       "arn:aws:s3:::amzn-s3-demo-bucket/*"
                   ]
               },
               {
                   "Sid": "Statement3",
                   "Effect": "Allow",
                   "Action": [
                       "s3:ListAllMyBuckets"
                   ],
                   "Resource": [
                       "*"
                   ]
               },
               {
                   "Sid": "Statement4",
                   "Effect": "Allow",
                   "Action": [
                       "kms:GenerateDataKey",
                       "kms:Decrypt"
                   ],
                   "Resource": [
                       "*"
                   ]
               }
           ]
     }'
   ```

   Windows の場合:

   ```
   aws iam create-policy ^
       --policy-name iam_policy_name ^
       --policy-document '{
           "Version": "2012-10-17",		 	 	 
           "Statement": [
               {
                   "Sid": "Statement1",
                   "Effect": "Allow",
                   "Action": [
                       "s3:ListBucket",
                       "s3:GetBucketAcl",
                       "s3:GetBucketLocation"
                   ],
                   "Resource": [
                       "arn:aws:s3:::amzn-s3-demo-bucket"
                   ]
               },
               {
                   "Sid": "Statement2",
                   "Effect": "Allow",
                   "Action": [
                       "s3:PutObject",
                       "s3:ListMultipartUploadParts",
                       "s3:AbortMultipartUpload"
                   ],
                   "Resource": [
                       "arn:aws:s3:::amzn-s3-demo-bucket/*"
                   ]
               },
               {
                   "Sid": "Statement3",
                   "Effect": "Allow",
                   "Action": [
                       "s3:ListAllMyBuckets"
                   ],
                   "Resource": [
                       "*"
                   ]
               },
               {
                   "Sid": "Statement4",
                   "Effect": "Allow",
                   "Action": [
                       "kms:GenerateDataKey",
                       "kms:Decrypt"
                   ],
                   "Resource": [
                       "*"
                   ]
               }
           ]
     }'
   ```

1. ポリシーが作成されたら、ポリシーの ARN を書き留めます。[ステップ 3: IAM ロールを作成して IAM ポリシーをアタッチする](#db2-audit-create-iam-role) の ARN が必要です。

IAM ポリシーの作成については、「IAM ユーザーガイド」の「[IAM ポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)」を参照してください。

### ステップ 3: IAM ロールを作成して IAM ポリシーをアタッチする
<a name="db2-audit-create-iam-role"></a>

このステップは、IAM ポリシーを「[ステップ 2: IAM ポリシーを作成する](#db2-audit-create-iam-policy)」で作成したことを前提としています。このステップでは、RDS for Db2 DB インスタンスの IAM ロールを作成し、ロールに IAM ポリシーをアタッチします。

コンソールまたは AWS CLI を使用して、DB インスタンスの IAM ロールを作成できます。

#### コンソール
<a name="db2-audit-create-iam-role-console"></a>

**IAM ロールを作成して IAM ポリシーをアタッチするには**

1. AWS マネジメントコンソール にサインインして、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. ナビゲーションペインで **[Roles]** (ロール) を選択します。

1. **[ロールの作成]** を選択します。

1. **[信頼されたエンティティタイプ]** で、**[AWS のサービス]** を選択します。

1. **[サービスまたはユースケース]** で、**[RDS]** を選択し、**[RDS - データベースにロールを追加]** を選択します。

1. [**次へ**] を選択します。

1. **[アクセス許可ポリシー]** で、作成した IAM ポリシーの名前を検索して選択します。

1. [**次へ**] を選択します。

1. **[ロール名]** に、ロールの名前を入力します。

1. (オプション) **[説明]** には、新しいロールの説明を入力します。

1. **[ロールの作成]** を選択します。

#### AWS CLI
<a name="db2-audit-create-iam-role-cli"></a>

**IAM ロールを作成して IAM ポリシーをアタッチするには**

1. [https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html) コマンドを実行します。次の例では、*iam\$1role\$1name* を IAM ロールの名前に置き換えます。

   Linux、macOS、Unix の場合:

   ```
   aws iam create-role \
       --role-name iam_role_name \
       --assume-role-policy-document '{
         "Version": "2012-10-17",		 	 	 
         "Statement": [
           {
             "Effect": "Allow",
             "Principal": {
               "Service": "rds.amazonaws.com"
             },
             "Action": "sts:AssumeRole"
           }
         ]
       }'
   ```

   Windows の場合:

   ```
   aws iam create-role ^
       --role-name iam_role_name ^
       --assume-role-policy-document '{
         "Version": "2012-10-17",		 	 	 
         "Statement": [
           {
             "Effect": "Allow",
             "Principal": {
               "Service": "rds.amazonaws.com"
             },
             "Action": "sts:AssumeRole"
           }
         ]
       }'
   ```

1. ロールが作成されたら、このロールの ARN を書き留めます。この ARN は次のステップ「[ステップ 4: Db2 監査ログ記録のオプショングループを設定する](#db2-audit-configure-options-group)」で必要になります。

1. [https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html) コマンドを実行します。次の例では、*iam\$1policy\$1arn* を [ステップ 2: IAM ポリシーを作成する](#db2-audit-create-iam-policy) で作成した IAM ポリシーの ARN に置き換えます。*iam\$1role\$1name* は、先ほど作成した IAM ロールの名前に置き換えます。

   Linux、macOS、Unix の場合:

   ```
   aws iam attach-role-policy \
      --policy-arn iam_policy_arn \
      --role-name iam_role_name
   ```

   Windows の場合:

   ```
   aws iam attach-role-policy ^
      --policy-arn iam_policy_arn ^
      --role-name iam_role_name
   ```

詳細については、*IAM ユーザーガイド*の「[IAM ユーザーにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)」を参照してください。

### ステップ 4: Db2 監査ログ記録のオプショングループを設定する
<a name="db2-audit-configure-options-group"></a>

Db2 監査ログ記録オプションを RDS for Db2 DB インスタンスに追加するプロセスは次のとおりです。

1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

1. すべての必須オプションを追加して構成します。

1. オプショングループを DB インスタンスに関連付けます。

Db2 監査ログ記録オプションを追加した後に DB インスタンスを再起動する必要はありません。オプショングループがアクティブになった時点で、監査を作成して監査ログを S3 バケットに保存できるようになります。

**DB インスタンスのオプショングループに Db2 監査ログ記録を追加して設定するには**

1. 次のいずれかを選択します。
   + 既存のオプショングループを使用します。
   + カスタムの DB オプショングループを作成し、そのオプショングループを使用します。詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに **[DB2\$1AUDIT]** オプションを追加し、オプション設定を構成します。オプションの追加方法の詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。
   + **[IAM\$1ROLE\$1ARN]** に、「[ステップ 3: IAM ロールを作成して IAM ポリシーをアタッチする](#db2-audit-create-iam-role)」で作成した IAM ロールの ARN を入力します。
   + **[S3\$1BUCKET\$1ARN]** に、Db2 監査ログに使用する S3 バケットの ARN を入力します。バケットは RDS for Db2 DB インスタンスと同じリージョンにある必要があります。入力した IAM ロールに関連付けられたポリシーでは、このリソースで必要なオペレーションが許可されている必要があります。

1. 新規または既存の DB インスタンスに、DB オプショングループを適用します。次のいずれかを選択します。
   + 新しい DB インスタンスを作成する場合は、インスタンスを起動するときにオプショングループを適用します。
   + 既存の DB インスタンスで、インスタンスを変更し、新しいオプショングループをアタッチして、オプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

### ステップ 5: 監査ポリシーを設定する
<a name="db2-audit-configure-audit-policy"></a>

RDS for Db2 DB データベースの監査ポリシーを設定するには、RDS for Db2 インスタンスのマスターユーザー名とマスターパスワードを使用して `rdsadmin` データベースに接続します。次に、データベースの DB 名と該当するパラメータ値を使用して、`rdsadmin.configure_db_audit` ストアドプロシージャを呼び出します。

次の例では、データベースに接続し、AUDIT、CHECKING、OBJMAINT、SECMAINT、SYSADMIN、VALIDATE のカテゴリを持つ監査ポリシーを `testdb` に対して設定します。ステータス値 `BOTH` は成功と失敗をログに記録します。`ERROR TYPE` はデフォルトで `NORMAL` です。このストアドプロシージャを使用する方法の詳細については、「[rdsadmin.configure\$1db\$1audit](db2-sp-managing-audit-policies.md#db2-sp-configure-db-audit)」を参照してください。

```
db2 "connect to rdsadmin user master_user using master_password"
db2 "call rdsadmin.configure_db_audit('testdb', 'ALL', 'BOTH', ?)"
```

### ステップ 6: 監査設定を確認する
<a name="db2-audit-check-config-status"></a>

監査ポリシーが正しく設定されていることを確認するには、監査設定のステータスを確認します。

設定を確認するには、RDS for Db2 DB インスタンスのマスターユーザー名とマスターパスワードを使用して、`rdsadmin` データベースに接続します。次に、データベースの DB 名を使用して次の SQL ステートメントを実行します。次の例では、DB 名は *testdb* です。

```
db2 "select task_id, task_type, database_name, lifecycle,
    varchar(bson_to_json(task_input_params), 500) as task_params,
    cast(task_output as varchar(500)) as task_output
    from table(rdsadmin.get_task_status(null,'testdb','CONFIGURE_DB_AUDIT'))"
    
Sample Output
 
TASK_ID              TASK_TYPE            DATABASE_NAME       LIFECYCLE
-------------------- -------------------- --------------- -------------
                   2  CONFIGURE_DB_AUDIT            DB2DB       SUCCESS

... continued ...
TASK_PARAMS                                
-------------------------------------------------------- 
{ "AUDIT_CATEGORY" : "ALL", "CATEGORY_SETTING" : "BOTH" }            

... continued ...
                                        TASK_OUTPUT
---------------------------------------------------
2023-12-22T20:27:03.029Z Task execution has started.

2023-12-22T20:27:04.285Z Task execution has completed successfully.
```

## Db2 監査ログ記録の管理
<a name="db2-audit-managing"></a>

Db2 監査ログ記録を設定したら、特定のデータベースの監査ポリシーを変更したり、データベースレベルまたは DB インスタンス全体の監査ログ記録を無効にしたりできます。ログファイルがアップロードされる Amazon S3 バケットを変更することもできます。

**Topics**
+ [Db2 監査ポリシーの変更](#db2-audit-modifying-policy)
+ [ログファイルの場所の変更](#db2-audit-modifying-location)
+ [Db2 監査ログ記録の無効化](#db2-audit-disabling)

### Db2 監査ポリシーの変更
<a name="db2-audit-modifying-policy"></a>

特定の RDS for Db2 データベースの監査ポリシーを変更するには、`rdsadmin.configure_db_audit` ストアドプロシージャを実行します。このストアドプロシージャでは、監査ポリシーのカテゴリ、カテゴリ設定、エラータイプの設定を変更できます。詳細については、「[rdsadmin.configure\$1db\$1audit](db2-sp-managing-audit-policies.md#db2-sp-configure-db-audit)」を参照してください。

### ログファイルの場所の変更
<a name="db2-audit-modifying-location"></a>

ログファイルがアップロードされる Amazon S3 バケットを変更するには、次のいずれかを実行します。
+ RDS for Db2 DB インスタンスにアタッチされている現在のオプショングループを変更する – 新しいバケットを指すように `DB2_AUDIT` オプションの `S3_BUCKET_ARN` 設定を更新します。また、アタッチされたオプショングループの `IAM_ROLE_ARN` 設定で指定された IAM ロールにアタッチされた IAM ポリシーを必ず更新してください。この IAM ポリシーで、必要なアクセス許可を新しいバケットに提供する必要があります。IAM ポリシーのアクセス許可の詳細については、「[IAM ポリシーを作成する](#db2-audit-create-iam-policy)」を参照してください。
+ RDS for Db2 DB インスタンスを別のオプショングループにアタッチする – DB インスタンスを変更して、アタッチされているオプショングループを変更します。新しいオプショングループが、正しい `S3_BUCKET_ARN` および `IAM_ROLE_ARN` 設定で設定されていることを確認します。`DB2_AUDIT` オプションこれらの設定方法については、「[オプショングループを設定する](#db2-audit-configure-options-group)」を参照してください。

オプショングループを変更する場合は、変更をすぐに適用してください。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

### Db2 監査ログ記録の無効化
<a name="db2-audit-disabling"></a>

Db2 監査ログ記録を無効にするには、次のいずれかを実行します。
+ RDS for Db2 DB インスタンスの監査ログ記録を無効にする – DB インスタンスを変更し、`DB2_AUDIT` オプションを持つオプショングループをそのインスタンスから削除します。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。
+ 特定のデータベースの監査ログ記録を無効にする – 監査ログ記録を停止し、データベースの DB 名で `rdsadmin.disable_db_audit` を呼び出して監査ポリシーを削除します。詳細については、「[rdsadmin.disable\$1db\$1audit](db2-sp-managing-audit-policies.md#db2-sp-disable-db-audit)」を参照してください。

  ```
  db2 "call rdsadmin.disable_db_audit(
      'db_name',
      ?)"
  ```

## 監査ログの表示
<a name="db2-audit-viewing-logs"></a>

Db2 監査ログ記録を有効にしてから、Amazon S3 バケットの監査データを表示するまで少なくとも 1 時間待ちます。Amazon RDS は、RDS for Db2 DB インスタンスから次の場所にログを自動的に送信します。
+ DB インスタンスレベルのログ – `bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/`
+ データベースレベルのログ – `bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/db_name/`

次の Amazon S3 コンソールのスクリーンショット例は、RDS for Db2 DB インスタンスレベルのログファイルのフォルダのリストを示しています。

![\[[オブジェクト] タブが選択された Amazon S3 コンソール。RDS for Db2 DB インスタンスレベルのログファイルのフォルダのリストが表示されています。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/db2-instance-level-audit-logs.png)


次の Amazon S3 コンソールのスクリーンショット例は、RDS for Db2 DB インスタンスのデータベースレベルのログファイルを示しています。

![\[[オブジェクト] タブが選択された Amazon S3 コンソール。RDS for Db2 DB インスタンスのデータベースレベルのログファイルが表示されています。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/db2-database-level-audit-logs.png)


## 監査ログ記録のトラブルシューティング
<a name="db2-audit-troubleshooting"></a>

次の情報を使用して、Db2 監査ログ記録で発生する一般的な問題をトラブルシューティングします。

### 監査ポリシーを設定できない
<a name="db2-audit-troubleshooting-policy-config"></a>

ストアドプロシージャ `rdsadmin.configure_db_audit` を呼び出すとエラーが返される場合、`DB2_AUDIT` オプションを持つオプショングループが RDS for Db2 DB インスタンスに関連付けられていない可能性があります。DB インスタンスを変更してオプショングループを追加し、ストアドプロシージャを再度呼び出してください。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

### Amazon S3 バケットにデータがない
<a name="db2-audit-troubleshooting-missing-data"></a>

Amazon S3 バケットにログ記録データがない場合は、以下を確認してください。
+ Amazon S3 バケットが RDS for Db2 DB インスタンスと同じリージョンにある。
+ `IAM_ROLE_ARN` オプション設定で指定したロールに、Amazon S3 バケットにログをアップロードするために必要なアクセス許可が設定されている。詳細については、「[IAM ポリシーを作成する](#db2-audit-create-iam-policy)」を参照してください。
+ RDS for Db2 DB インスタンスに関連付けられたオプション設定 `IAM_ROLE_ARN` と `S3_BUCKET_ARN` の ARN が正しい。詳細については、「[オプショングループを設定する](#db2-audit-configure-options-group)」を参照してください。

監査ログ記録設定のタスクステータスを確認するには、データベースに接続して SQL ステートメントを実行します。詳細については、「[監査設定を確認する](#db2-audit-check-config-status)」を参照してください。

イベントをチェックして、ログが欠落している理由の詳細を確認することもできます。イベントを表示する方法については、「[Amazon RDS コンソールでのログ、イベント、およびストリーミングの表示](logs-events-streams-console.md)」を参照してください。

# Amazon RDS for Db2 の外部ストアドプロシージャ
<a name="db2-external-stored-procedures"></a>

外部ルーチンを作成し、外部ストアドプロシージャとして Amazon RDS for Db2 データベースに登録できます。現在、RDS for Db2 は外部ストアドプロシージャ用の Java ベースのルーチンのみをサポートしています。

## Java ベースの外部ストアドプロシージャ
<a name="db2-external-stored-procedures-java"></a>

Java ベースの外部ストアドプロシージャは、外部ストアドプロシージャとして RDS for Db2 データベースに登録する外部 Java ルーチンです。

**Topics**
+ [Java ベースの外部ストアドプロシージャの制限](#db2-external-stored-procedures-java-limitations)
+ [Java ベースの外部ストアドプロシージャの設定](#db2-external-stored-procedures-java-configuring)

### Java ベースの外部ストアドプロシージャの制限
<a name="db2-external-stored-procedures-java-limitations"></a>

外部ルーチンを開発する前に、次の制限を考慮してください。

外部ルーチンを作成するには、Db2 が提供する Java 開発キット (JDK) を必ず使用してください。詳細については、「[Java software support for Db2 database products](https://www.ibm.com/docs/en/db2/11.5?topic=servers-java-software-support-db2-database-products)」を参照してください。

Java プログラムは `/tmp` ディレクトリにのみファイルを作成でき、Amazon RDS はこれらのファイルに対する実行権限や Set User ID (SUID) 権限の有効化をサポートしていません。また、Java プログラムはソケットシステム呼び出し、または次のシステム呼び出しを使用することはできません。
+ \$1sysctl
+ acct
+ afs\$1syscall
+ bpf
+ capset
+ chown
+ chroot
+ create\$1module
+ delete\$1module
+ fanotify\$1init
+ fanotify\$1mark
+ finit\$1module
+ fsconfig
+ fsopen
+ fspick
+ get\$1kernel\$1syms
+ getpmsg
+ init\$1module
+ mount
+ move\$1mount
+ nfsservctl
+ open\$1by\$1handle\$1at
+ open\$1tree
+ pivot\$1root
+ putpmsg
+ query\$1module
+ quotactl
+ reboot
+ security
+ setdomainname
+ setfsuid
+ sethostname
+ sysfs
+ tuxcall
+ umount2
+ uselib
+ ustat
+ vhangup
+ vserver

Db2 の外部ルーチンに関するその他の制限については、「IBM Db2 Documentation」の「[Restrictions on external routines](https://www.ibm.com/docs/en/db2/11.5?topic=routines-restrictions-external)」を参照してください。

### Java ベースの外部ストアドプロシージャの設定
<a name="db2-external-stored-procedures-java-configuring"></a>

外部ストアドプロシージャを設定するには、外部ルーチンで.jar ファイルを作成して RDS for Db2 データベースにインストールし、外部ストアドプロシージャとして登録します。

**Topics**
+ [ステップ 1: 外部ストアドプロシージャの有効化](#db2-external-stored-procedures-java-enable)
+ [ステップ 2: 外部ルーチンで.jar ファイルをインストールする](#db2-external-stored-procedures-java-install-jar)
+ [ステップ 3: 外部ストアドプロシージャを登録する](#db2-external-stored-procedures-java-register)
+ [ステップ 4: 外部ストアドプロシージャを検証する](#db2-external-stored-procedures-java-validate)

#### ステップ 1: 外部ストアドプロシージャの有効化
<a name="db2-external-stored-procedures-java-enable"></a>

外部ストアドプロシージャを有効にするには、DB インスタンスに関連付けられているカスタムパラメータグループで、`db2_alternate_authz_behaviour` パラメータを次のいずれかの値に設定します。
+ `EXTERNAL_ROUTINE_DBADM` — `DBADM` 権限を持つユーザー、グループ、またはロールに暗黙的に `CREATE_EXTERNAL_ROUTINE` 権限を付与します。
+ `EXTERNAL_ROUTINE_DBAUTH` — `DBADM` 権限を持つユーザーが任意のユーザー、グループ、またはロールに `CREATE_EXTERNAL_ROUTINE` 権限を付与することを許可します。この場合、`DBADM` 権限を持つユーザーも含め、ユーザー、グループ、またはロールに暗黙的にこの権限が付与されることはありません。

この設定の詳細については、IBM Db2 ドキュメントの「[GRANT (database authorities) statement](https://www.ibm.com/docs/en/db2/11.5?topic=statements-grant-database-authorities)」を参照してください。

AWS マネジメントコンソール、AWS CLI、または Amazon RDS API を使用して、カスタムパラメータグループを作成および変更することができます。

##### コンソール
<a name="db2-external-stored-procedures-java-enable-console"></a>

**カスタムパラメータグループで db2\$1alternate\$1authz\$1behaviour パラメータを設定するには**

1. DB インスタンスが使用しているものとは異なるカスタム DB パラメータグループを使用する場合は、新しい DB パラメータグループを作成します。Bring-Your-Own-License (BYOL) モデルを使用している場合は、新しいカスタムパラメータグループに IBM ID が含まれていることを確認してください。これらの ID の詳細については、「[Db2 の Bring-Your-Own-License (BYOL) の IBM ID](db2-licensing.md#db2-prereqs-ibm-info)」を参照してください。DB パラメータグループの作成の詳細については、「[Amazon RDS での DB パラメータグループの作成](USER_WorkingWithParamGroups.Creating.md)」を参照してください。

1. カスタムパラメータグループで `db2_alternate_authz_behaviour` パラメータに値を設定します。パラメータグループの変更の詳細については、「[Amazon RDS の DB パラメータグループのパラメータの変更](USER_WorkingWithParamGroups.Modifying.md)」を参照してください。

##### AWS CLI
<a name="db2-external-stored-procedures-java-enable-cli"></a>

**カスタムパラメータグループで db2\$1alternate\$1authz\$1behaviour パラメータを設定するには**

1. DB インスタンスが使用しているものとは異なるカスタム DB パラメータグループを使用する場合は、[https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-parameter-group.html) コマンドを実行して、カスタムパラメータグループを作成します。Bring-Your-Own-License (BYOL) モデルを使用している場合は、新しいカスタムパラメータグループに IBM ID が含まれていることを確認してください。これらの ID の詳細については、「[Db2 の Bring-Your-Own-License (BYOL) の IBM ID](db2-licensing.md#db2-prereqs-ibm-info)」を参照してください。

   次の必須パラメータを含めます。
   + `--db-parameter-group-name` - 作成するパラメータグループの名前。
   + `--db-parameter-group-family` - Db2 エンジンエディションとメジャーバージョン。有効な値は、`db2-se-11.5` および `db2-ae-11.5` です。
   + `--description` - このパラメータグループの説明。

   DB パラメータグループの作成の詳細については、「[Amazon RDS での DB パラメータグループの作成](USER_WorkingWithParamGroups.Creating.md)」を参照してください。

   次の例は、`db2-se-11.5` パラメータグループファミリーの `MY_EXT_SP_PARAM_GROUP` カスタムパラメータグループを作成する方法を示しています。

   Linux、macOS、Unix の場合:

   ```
   aws rds create-db-parameter-group \
   --region us-east-1 \
   --db-parameter-group-name MY_EXT_SP_PARAM_GROUP \
   --db-parameter-group-family db2-se-11.5 \ 
   --description "test db2 external routines"
   ```

   Windows の場合:

   ```
   aws rds create-db-parameter-group ^
   --region us-east-1 ^
   --db-parameter-group-name MY_EXT_SP_PARAM_GROUP ^
   --db-parameter-group-family db2-se-11.5 ^ 
   --description "test db2 external routines"
   ```

1. [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) コマンドを実行して、カスタムパラメータグループの `db2_alternate_authz_behaviour` パラメータを変更します。

   次の必須パラメータを含めます。
   + `--db-parameter-group-name` – 作成したパラメータグループの名前。
   + `--parameters` – パラメータ名、値、およびパラメータ更新用のアプリケーションメソッドの配列。

   パラメータグループの変更の詳細については、「[Amazon RDS の DB パラメータグループのパラメータの変更](USER_WorkingWithParamGroups.Modifying.md)」を参照してください。

   次の例は、`db2_alternate_authz_behaviour` の値を `EXTERNAL_ROUTINE_DBADM` に設定して、`MY_EXT_SP_PARAM_GROUP` パラメータグループを変更する方法を示しています。

   Linux、macOS、Unix の場合:

   ```
   aws rds modify-db-parameter-group \
       --db-parameter-group-name MY_EXT_SP_PARAM_GROUP \
       --parameters "ParameterName='db2_alternate_authz_behaviour',ParameterValue='EXTERNAL_ROUTINE_DBADM',ApplyMethod=immediate"
   ```

   Windows の場合:

   ```
   aws rds modify-db-parameter-group ^
       --db-parameter-group-name MY_EXT_SP_PARAM_GROUP ^
       --parameters "ParameterName='db2_alternate_authz_behaviour',ParameterValue='EXTERNAL_ROUTINE_DBADM',ApplyMethod=immediate"
   ```

##### RDS API
<a name="db2-external-stored-procedures-java-enable-api"></a>

**カスタムパラメータグループで db2\$1alternate\$1authz\$1behaviour パラメータを設定するには**

1. DB インスタンスが使用しているものとは異なるカスタム DB パラメータグループを使用する場合は、Amazon RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBParameterGroup.html) オペレーションを使用して、新しい DB パラメータグループを作成します。Bring-Your-Own-License (BYOL) モデルを使用している場合は、新しいカスタムパラメータグループに IBM Db2 ID が含まれていることを確認してください。これらの ID の詳細については、「[Db2 の Bring-Your-Own-License (BYOL) の IBM ID](db2-licensing.md#db2-prereqs-ibm-info)」を参照してください。

   以下の必須パラメータを含めます。
   + `DBParameterGroupName`
   + `DBParameterGroupFamily`
   + `Description`

   DB パラメータグループの作成の詳細については、「[Amazon RDS での DB パラメータグループの作成](USER_WorkingWithParamGroups.Creating.md)」を参照してください。

1. RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBParameterGroup.html) オペレーションを使用して、作成したカスタムパラメータグループの `db2_alternate_authz_behaviour` パラメータを変更します。

   以下の必須パラメータを含めます。
   + `DBParameterGroupName`
   + `Parameters`

   パラメータグループの変更の詳細については、「[Amazon RDS の DB パラメータグループのパラメータの変更](USER_WorkingWithParamGroups.Modifying.md)」を参照してください。

#### ステップ 2: 外部ルーチンで.jar ファイルをインストールする
<a name="db2-external-stored-procedures-java-install-jar"></a>

Java ルーチンを作成したら、.jar ファイルを作成して `db2 "call sqlj.install_jar('file:file_path',jar_ID)"` を実行し、RDS for Db2 データベースにインストールします。

次の例は、Java ルーチンを作成して、RDS for Db2 データベースにインストールする方法を示しています。この例には、プロセスのテストに使用できる簡単なルーチンのサンプルコードが含まれています。この例では、次を前提としています。
+ Java コードは Db2 がインストールされたサーバー上でコンパイルされていること。IBM が提供する JDK を使用してコンパイルしない場合、原因不明のエラーが発生する可能性があるため、このベストプラクティスに従ってください。
+ サーバーの RDS for Db2 データベースがローカルでカタログ化されていること。

次のコード例を使用してこのプロセスを試す場合は、コード例をコピーして、`MYJAVASP.java` という名前のファイルに保存します。

```
import java.sql.*;
public class MYJAVASP
{
public static void my_JAVASP (String inparam) throws SQLException, Exception
{
try
{
// Obtain the calling context's connection details.
Connection myConn = DriverManager.getConnection("jdbc:default:connection");
String myQuery = "INSERT INTO TEST.TEST_TABLE VALUES (?, CURRENT DATE)";
PreparedStatement myStmt = myConn.prepareStatement(myQuery);
myStmt.setString(1, inparam);
myStmt.executeUpdate();
}
catch (SQLException sql_ex)
{
throw sql_ex;
}
catch (Exception ex)
{
throw ex;
}
}
```

次のコマンドは Java ルーチンをコンパイルします。

```
~/sqllib/java/jdk64/bin/javac MYJAVASP.java
```

次のコマンドは.jar ファイルを作成します。

```
~/sqllib/java/jdk64/bin/jar cvf MYJAVASP.jar MYJAVASP.class
```

次のコマンドは、`MY_DB2_DATABASE` という名前のデータベースに接続して、.jar ファイルをインストールします。

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

db2 "call sqlj.install_jar('file:/tmp/MYJAVASP.jar','MYJAVASP')"
db2 "call sqlj.refresh_classes()"
```

#### ステップ 3: 外部ストアドプロシージャを登録する
<a name="db2-external-stored-procedures-java-register"></a>

RDS for Db2 データベースに.jar ファイルをインストールしたら、`db2 CREATE PROCEDURE` コマンドまたは `db2 REPLACE PROCEDURE` コマンドを実行してストアドプロシージャとして登録します。

次の例は、データベースに接続し、前のステップで作成した Java ルーチンをストアドプロシージャとして登録する方法を示しています。

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

create procedure TESTSP.MYJAVASP (in input char(6))
specific myjavasp
dynamic result sets 0
deterministic
language java
parameter style java
no dbinfo
fenced
threadsafe
modifies sql data
program type sub
external name 'MYJAVASP!my_JAVASP';
```

#### ステップ 4: 外部ストアドプロシージャを検証する
<a name="db2-external-stored-procedures-java-validate"></a>

次の手順を使用して、前のステップで登録したサンプル外部ストアドプロシージャをテストします。

**外部ストアドプロシージャを検証するには**

1. 次の例の `TEST.TEST_TABLE` ようなテーブルを作成します。

   ```
   db2 "create table TEST.TEST_TABLE(C1 char(6), C2 date)"
   ```

1. 新しい外部ストアドプロシージャを呼び出します。呼び出しは `0` のステータスを返します。

   ```
   db2 "call TESTSP.MYJAVASP('test')"
   Return Status = 0
   ```

1. ステップ 1 で作成したテーブルをクエリして、ストアドプロシージャ呼び出しの結果を確認します。

   ```
   db2 "SELECT * from TEST.TEST_TABLE"
   ```

   クエリは次の例のような出力を生成します。

   ```
   C1     C2
   ------ ----------
   test   02/05/2024
   ```

# Amazon RDS for Db2 の既知の問題と制限
<a name="db2-known-issues-limitations"></a>

Amazon RDS for Db2 を使用する際の既知の問題と制限は、以下のとおりです。

**Topics**
+ [認証の制限](#db2-known-issues-limitations-authentication-limit)
+ [フェンスされていないルーチン](#db2-known-issues-limitations-non-fenced-routines)
+ [移行中の非自動ストレージテーブルスペース](#db2-known-issues-limitations-non-automatic-storage-tablespaces)
+ [db2\$1compatibility\$1vector パラメータの設定](#db2-known-issues-limitations-db2-compatibility-vector)
+ [INVALID パッケージを含むデータベースの移行](#db2-known-issues-limitations-invalid-packages-migrating)

## 認証の制限
<a name="db2-known-issues-limitations-authentication-limit"></a>

Amazon RDS はデフォルトで `db2auth` を `JCC_ENFORCE_SECMEC` に設定します。ただし、ユーザー ID とパスワードの暗号化をオンラインで強制しない場合は、パラメータグループで `db2auth` パラメータを `CLEAR_TEXT` に変更することで、この設定を上書きできます。詳細については、「[Amazon RDS の DB パラメータグループのパラメータの変更](USER_WorkingWithParamGroups.Modifying.md)」を参照してください。

## フェンスされていないルーチン
<a name="db2-known-issues-limitations-non-fenced-routines"></a>

RDS for Db2 は、フェンスされていないルーチンの作成と、データのバックアップと復元によるこれらのルーチンの移行をサポートしていません。データベースにフェンスされていないルーチンが含まれているかどうかを確認するには、次の SQL コマンドを実行します。

```
SELECT 'COUNT:' || count(*) FROM SYSCAT.ROUTINES where fenced='N' and routineschema not in ('SQLJ','SYSCAT','SYSFUN','SYSIBM','SYSIBMADM','SYSPROC','SYSTOOLS')
```

## 移行中の非自動ストレージテーブルスペース
<a name="db2-known-issues-limitations-non-automatic-storage-tablespaces"></a>

RDS for Db2 は、非自動ストレージテーブルスペースの新規作成をサポートしていません。データベースの 1 回限りの移行にネイティブ復元を使用すると、RDS for Db2 は、非自動ストレージテーブルスペースを自動的に自動ストレージテーブルスペースに変換して、データベースを RDS for Db2 に復元します。1 回限りの移行については、「[Amazon RDS for Db2 の Linux から Linux への移行](db2-one-time-migration-linux.md)」と「[Amazon RDS for Db2 の AIX または Windows から Linux への移行](db2-one-time-migration-aix-windows-linux.md)」を参照してください。

## db2\$1compatibility\$1vector パラメータの設定
<a name="db2-known-issues-limitations-db2-compatibility-vector"></a>

Amazon RDS では、DB インスタンスの作成時に初期データベースを作成し、関連するパラメータグループを変更できます。ただし、Db2 では、パラメータグループに `db2_compatibility_vector` パラメータを設定する場合は、まずカスタムパラメータグループでそのパラメータを変更し、データベースなしで DB インスタンスを作成してから、`rdsadmin.create_database` ストアドプロシージャを使用してデータベースを作成する必要があります。

**`db2_compatibility_vector` パラメータを設定するには**

1. [カスタムパラメータグループを作成します。](USER_WorkingWithParamGroups.Creating.md)(デフォルトのパラメータグループを変更することはできません。)

1. [パラメータを変更します](USER_WorkingWithParamGroups.Modifying.md)。

1. [DB インスタンスを作成します](USER_CreateDBInstance.md)。

1. `rdsadmin.create_database` ストアドプロシージャを使用して[データベースを作成します](db2-managing-databases.md#db2-creating-database)。

1. [パラメータグループを、データベースを含む DB インスタンスに関連付け](USER_WorkingWithParamGroups.Associating.md)ます。

## INVALID パッケージを含むデータベースの移行
<a name="db2-known-issues-limitations-invalid-packages-migrating"></a>

`RESTORE` コマンドを使用して `INVALID` パッケージを含む Db2 データベースを RDS for Db2 に移行すると、データベースの使用開始時に問題が発生する可能性があります。`INVALID` パッケージは、DB インスタンスユーザー `rdsdb` の認証設定と `PUBLIC` からの認証の削除が原因で問題を引き起こす可能性があります。`INVALID` パッケージにより、以下のコマンドは失敗します。
+ `db2updv115`
+ `db2 "call SYSPROC.ADMIN_REVALIDATE_DB_OBJECTS()"`

`RESTORE` コマンドを使用してデータベースを移行する前に、次のコマンドを実行して、データベースに `INVALID` パッケージが含まれていないことを確認してください。

```
db2 "SELECT 'COUNT:' || count(*) FROM SYSCAT.INVALIDOBJECTS"
```

コマンドが 0 より大きい数を返す場合は、次のコマンドを呼び出します。

```
db2 "call SYSPROC.ADMIN_REVALIDATE_DB_OBJECTS()"
```

その後、前のコマンドを呼び出して、データベースに `INVALID` パッケージが含まれていないことを確認します。

```
db2 "SELECT 'COUNT:' || count(*) FROM SYSCAT.INVALIDOBJECTS"
```

これで、データベースのバックアップを作成し、RDS for Db2 DB インスタンスに復元する準備が整いました。

# Amazon RDS for Db2 ストアドプロシージャリファレンス
<a name="db2-stored-procedures"></a>

Db2 エンジンを実行している Amazon RDS for Db2 DB インスタンスを管理するには、組み込みのストアドプロシージャを呼び出します。


| ストアドプロシージャ | Category | 説明 | 
| --- | --- | --- | 
|  [rdsadmin.activate\$1database](db2-sp-managing-databases.md#db2-sp-activate-database)  |  データベース  |  `rdsadmin.activate_database` ストアドプロシージャを使用して、スタンドアロン RDS for Db2 DB インスタンスのデータベースをアクティブ化します。  | 
|  [rdsadmin.add\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-add-groups)  |  権限の付与と取り消し  |  `rdsadmin.add_groups` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースのユーザーに 1 つまたは複数のグループを追加します。  | 
|  [rdsadmin.add\$1user](db2-sp-granting-revoking-privileges.md#db2-sp-add-user)  |  権限の付与と取り消し  |  `rdsadmin.add_user` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースの承認リストにユーザーを追加します。  | 
|  [rdsadmin.alter\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-alter-buffer-pool)  |  バッファプール  |  `rdsadmin.alter_bufferpool` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースのバッファプールを変更します。  | 
|  [rdsadmin.alter\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-alter-tablespace)  |  テーブルスペース  |  `rdsadmin.alter_tablespace` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースのテーブルスペースを変更します。  | 
|  [rdsadmin.backup\$1database](db2-sp-managing-databases.md#db2-sp-backup-database)  |  データベース  |  `rdsadmin.backup_database` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースを Amazon S3 バケットへバックアップします。その後、Amazon S3 から RDS for Db2 DB インスタンスまたはローカルサーバーなどの別の場所にバックアップを復元できます。  | 
|  [rdsadmin.catalog\$1storage\$1access](db2-sp-managing-storage-access.md#db2-sp-catalog-storage-access)  |  ストレージアクセス  |  `rdsadmin.catalog_storage_access` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースの Db2 データファイルを含む Amazon S3 バケットにアクセスするためのストレージエイリアスをカタログ化します。  | 
|  [rdsadmin.change\$1password](db2-sp-granting-revoking-privileges.md#db2-sp-change-password)  |  権限の付与と取り消し  |  `rdsadmin.change_password` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースのユーザーのパスワードを変更します。  | 
|  [rdsadmin.complete\$1rollforward](db2-sp-managing-databases.md#db2-sp-complete-rollforward)  |  データベース  |  `rdsadmin.complete_rollforward` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースを `ROLL-FORWARD PENDING` 状態からオンラインにします。`ROLL-FORWARD PENDING` 状態になるのは、[rdsadmin.rollforward\$1database](db2-sp-managing-databases.md#db2-sp-rollforward-database) を呼び出したが、`complete_rollforward` パラメータを `FALSE` に設定した場合です。  | 
|  [rdsadmin.configure\$1db\$1audit](db2-sp-managing-audit-policies.md#db2-sp-configure-db-audit)  |  監査ポリシー  |  `rdsadmin.configure_db_audit` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースの監査ポリシーを変更します。監査ポリシーが存在しない場合、このストアドプロシージャを実行すると監査ポリシーが作成されます。  | 
|  [rdsadmin.create\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-create-buffer-pool)  |  バッファプール  |  `rdsadmin.create_bufferpool` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースのバッファプールを作成します。  | 
|  [rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database)  |  データベース  |  `rdsadmin.create_database` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスにデータベースを作成します。  | 
|  [rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role)  |  権限の付与と取り消し  |  `rdsadmin.create_role` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースにアタッチするロールを作成します。  | 
|  [rdsadmin.create\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-create-tablespace)  |  テーブルスペース  |  `rdsadmin.create_tablespace` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースのテーブルスペースを作成します。  | 
|  [rdsadmin.db2pd\$1command](db2-sp-managing-databases.md#db2-sp-db2pd-command)  |  データベース  |  `rdsadmin.db2pd_command` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースに関する情報を収集します。この情報を、RDS for Db2 のデータベースのモニタリングとトラブルシューティングに役立てることができます。  | 
|  [rdsadmin.db2support\$1command](db2-sp-managing-databases.md#db2-sp-db2support-command)  |  データベース  |  `rdsadmin.db2support_command` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースの診断情報を収集し、Amazon S3 バケットにアップロードします。  | 
|  [rdsadmin.dbadm\$1grant](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-grant)  |  権限の付与と取り消し  |  `rdsadmin.dbadm_grant` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースの 1 つ以上のロール、ユーザー、またはグループに、1 つ以上の承認タイプ (`DBADM`、`ACCESSCTRL`、または `DATAACCESS`) を付与します。  | 
|  [rdsadmin.dbadm\$1revoke](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-revoke)  |  権限の付与と取り消し  |  `rdsadmin.dbadm_revoke` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースの 1 つ以上のロール、ユーザー、またはグループから、1 つ以上の承認タイプ (`DBADM`、`ACCESSCTRL`、または `DATAACCESS`) を取り消します。  | 
|   [rdsadmin.deactivate\$1database](db2-sp-managing-databases.md#db2-sp-deactivate-database)  |  データベース  |  `rdsadmin.deactivate_database` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースを非アクティブ化します。データベースを非アクティブ化して、メモリリソースを節約できます。  | 
|  [rdsadmin.disable\$1db\$1audit](db2-sp-managing-audit-policies.md#db2-sp-disable-db-audit)  |  監査ポリシー  |  `rdsadmin.disable_db_audit` ストアドプロシージャを使用して、監査ログの記録を停止し、RDS for Db2 DB インスタンスのデータベースから監査ポリシーを削除します。  | 
|  [rdsadmin.drop\$1bufferpool](db2-sp-managing-buffer-pools.md#db2-sp-drop-buffer-pool)  |  バッファプール  |  `rdsadmin.drop_bufferpool` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースからバッファプールを破棄します。  | 
|  [rdsadmin.drop\$1database](db2-sp-managing-databases.md#db2-sp-drop-database)  |  データベース  |  `rdsadmin.drop_database` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスからデータベースを破棄します。  | 
|  [rdsadmin.drop\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-drop-role)  |  権限の付与と取り消し  |  `rdsadmin.drop_role` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースからロールを削除します。  | 
|  [rdsadmin.drop\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-drop-tablespace)  |  テーブルスペース  |  `rdsadmin.drop_tablespace` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースからテーブルスペースを破棄します。  | 
|  [rdsadmin.fgac\$1command](db2-sp-managing-databases.md#db2-sp-fgac-command)  |  データベース  |  `rdsadmin.fgac_command` ストアドプロシージャを使用して、行または列レベルで RDS for Db2 DB インスタンスのデータベース内のテーブルデータへのアクセスを制御します。  | 
|  [rdsadmin.force\$1application](db2-sp-managing-databases.md#db2-sp-force-application)  |  データベース  |  `rdsadmin.force_application` ストアドプロシージャを使用して、アプリケーションによる RDS for Db2 DB インスタンスのデータベースのメンテナンス実行を強制的にオフにします。  | 
|  [rdsadmin.grant\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-grant-role)  |  権限の付与と取り消し  |  `rdsadmin.grant_role` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースのロール、ユーザー、またはグループにロールを割り当てます。このストアドプロシージャを使用して、ロールを割り当てるための `DBADM` 認証をロールに付与することもできます。  | 
|  [rdsadmin.list\$1archive\$1log\$1information](db2-sp-managing-databases.md#db2-sp-list-archive-log-information)  |  データベース  |  `rdsadmin.list_archive_log_information` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースのアーカイブログに関する情報を返します。この情報には、個々のログファイルのサイズや作成日、アーカイブログファイルで使用される合計ストレージなどの詳細が含まれます。  | 
|  [rdsadmin.list\$1sid\$1group\$1mapping](db2-sp-granting-revoking-privileges.md#db2-sp-list-sid-group-mapping)  |  権限の付与と取り消し  |  `rdsadmin.list_sid_group_mapping` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスに設定されているすべてのセキュリティ ID (SID) と Active Directory グループマッピングのリストを返します。  | 
|  [rdsadmin.list\$1users](db2-sp-granting-revoking-privileges.md#db2-sp-list-users)  |  権限の付与と取り消し  |  `rdsadmin.list_users` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースの承認リストに含まれるユーザーのリストを返します。  | 
|  [rdsadmin.reactivate\$1database](db2-sp-managing-databases.md#db2-sp-reactivate-database)  |  データベース  |  `rdsadmin.reactivate_database` ストアドプロシージャを使用して、データベース設定の変更後に RDS for Db2 DB インスタンスのデータベースを再アクティブ化します。スタンドアロン DB インスタンスのデータベースの場合、このストアドプロシージャと [rdsadmin.activate\$1database](db2-sp-managing-databases.md#db2-sp-activate-database) ストアドプロシージャのいずれかを使用できます。レプリカソース DB インスタンス上のデータベースの場合は、`rdsadmin.reactivate_database` ストアドプロシージャを使用する必要があります。  | 
|  [rdsadmin.remove\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-remove-groups)  |  権限の付与と取り消し  |  `rdsadmin.remove_groups` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースのユーザーから 1 つまたは複数のグループを削除します。  | 
|  [rdsadmin.remove\$1sid\$1group\$1mapping](db2-sp-granting-revoking-privileges.md#db2-sp-remove-sid-group-mapping)  |  権限の付与と取り消し  |  `rdsadmin.remove_sid_group_mapping` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスからセキュリティ ID (SID) および対応する Active Directory グループマッピングを削除します。  | 
|  [rdsadmin.remove\$1user](db2-sp-granting-revoking-privileges.md#db2-sp-remove-user)  |  権限の付与と取り消し  |  `rdsadmin.remove_user` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースの承認リストからユーザーを削除します。  | 
|  [rdsadmin.rename\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-rename-tablespace)  |  テーブルスペース  |  `rdsadmin.rename_tablespace` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースのテーブルスペースの名前を変更します。  | 
|  [rdsadmin.restore\$1database](db2-sp-managing-databases.md#db2-sp-restore-database)  |  データベース  |  `rdsadmin.restore_database` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースを Amazon S3 バケットから復元します。  | 
|  [rdsadmin.revoke\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-revoke-role)  |  権限の付与と取り消し  |  `rdsadmin.revoke_role` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースのロール、ユーザー、またはグループからロールを取り消します。  | 
|  [rdsadmin.rollforward\$1database](db2-sp-managing-databases.md#db2-sp-rollforward-database)  |  データベース  |  `rdsadmin.rollforward_database` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースをオンラインにし、[rdsadmin.restore\$1database](db2-sp-managing-databases.md#db2-sp-restore-database) を呼び出して RDS for Db2 DB インスタンスのデータベースを復元した後にトランザクションログを適用します。  | 
|  [rdsadmin.rollforward\$1status](db2-sp-managing-databases.md#db2-sp-rollforward-status)  |  データベース  |  `rdsadmin.rollforward_status` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスで [rdsadmin.rollforward\$1database](db2-sp-managing-databases.md#db2-sp-rollforward-database) または [rdsadmin.complete\$1rollforward](db2-sp-managing-databases.md#db2-sp-complete-rollforward) ストアドプロシージャを呼び出すロールフォワードステータスをクエリします。  | 
|  [rdsadmin.set\$1archive\$1log\$1retention](db2-sp-managing-databases.md#db2-sp-set-archive-log-retention)  |  データベース  |  `rdsadmin.set_archive_log_retention` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースのアーカイブログファイルを保持する期間を設定します。このストアドプロシージャを使用して、アーカイブログの保持を無効にすることもできます。  | 
|  [rdsadmin.set\$1configuration](db2-sp-managing-databases.md#db2-sp-set-configuration)  |  データベース  |  `rdsadmin.set_configuration` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースに対して何らかの設定を行います。  | 
|  [rdsadmin.set\$1sid\$1group\$1mapping](db2-sp-granting-revoking-privileges.md#db2-sp-set-sid-group-mapping)  |  権限の付与と取り消し  |  `rdsadmin.set_sid_group_mapping` ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのセキュリティ ID (SID) および対応する Active Directory グループとの間のマッピングを作成します。  | 
|  [rdsadmin.show\$1archive\$1log\$1retention](db2-sp-managing-databases.md#db2-sp-show-archive-log-retention)  |  データベース  | rdsadmin.show\$1archive\$1log\$1retention ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースの現在のアーカイブログ保持設定を取得します。 | 
|  [rdsadmin.show\$1configuration](db2-sp-managing-databases.md#db2-sp-show-configuration)  |  データベース  | rdsadmin.show\$1configuration ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースに対して変更可能な 1 つ以上の設定を取得します。 | 
|  [rdsadmin.uncatalog\$1storage\$1access](db2-sp-managing-storage-access.md#db2-sp-uncatalog-storage-access)  |  ストレージアクセス  |  `rdsadmin.uncatalog_storage_access` ストアドプロシージャを使用して、Db2 データファイルを使用して Amazon S3 バケットにアクセスするためのストレージエイリアスを削除します。  | 
|  [rdsadmin.update\$1db\$1param](db2-sp-managing-databases.md#db2-sp-update-db-param)  |  データベース  | rdsadmin.update\$1db\$1param ストアドプロシージャを使用して、RDS for Db2 DB インスタンスのデータベースのデータベースパラメータを更新します。 | 
|  [rdsadmin.enable\$1archive\$1log\$1copy](db2-sp-managing-databases.md#db2-sp-enable_archive_log_copy)  |  データベース  | rdsadmin.enable\$1archive\$1log\$1copy ストアドプロシージャを使用して、RDS Db2 データベースアーカイブログの Amazon S3 へのコピーを有効にします。 | 
|  [rdsadmin.disable\$1archive\$1log\$1copy](db2-sp-managing-databases.md#db2-sp-disable_archive_log_copy)  |  データベース  | rdsadmin.disable\$1archive\$1log\$1copy ストアドプロシージャを使用して、RDS Db2 データベースアーカイブログの Amazon S3 へのコピーを無効にします。 | 

**Topics**
+ [Amazon RDS for Db2 ストアドプロシージャに関する考慮事項](db2-stored-procedures-considerations.md)
+ [RDS for Db2 の権限の付与と取り消しに関するストアドプロシージャ](db2-sp-granting-revoking-privileges.md)
+ [RDS for Db2 の監査ポリシーのストアドプロシージャ](db2-sp-managing-audit-policies.md)
+ [RDS for Db2 のバッファプールのストアドプロシージャ](db2-sp-managing-buffer-pools.md)
+ [RDS for Db2 のデータベースのストアドプロシージャ](db2-sp-managing-databases.md)
+ [RDS for Db2 のストレージアクセスのストアドプロシージャ](db2-sp-managing-storage-access.md)
+ [RDS for Db2 のテーブルスペースのストアドプロシージャ](db2-sp-managing-tablespaces.md)

# Amazon RDS for Db2 ストアドプロシージャに関する考慮事項
<a name="db2-stored-procedures-considerations"></a>

Db2 エンジンを実行している RDS for Db2 DB インスタンスの Amazon RDS システムストアドプロシージャを使用する前に、次の情報を確認してください。
+ ストアドプロシージャを実行する前に、まず RDS for Db2 DB インスタンスのマスターユーザーとして `rdsadmin` データベースに接続する必要があります。次の例では、*master\$1username* と *master\$1password* をユーザー自身の情報に置き換えます。

  ```
  db2 "connect to rdsadmin user master_username using master_password"
  ```
+ ストアドプロシージャは、ストアドプロシージャが正常に実行されたかどうか、および正常に実行されなかった理由を示す `ERR_MESSAGE` パラメータを返します。

  **例**

  次の例は、ストアドプロシージャが正常に実行されたことを示しています。

  ```
  Parameter Name : ERR_MESSAGE
  Parameter Value : -
  Return Status = 0
  ```

  次の例は、ストアドプロシージャで使用された Amazon S3 バケット名が有効でなかったため、ストアドプロシージャが正常に実行されなかったことを示しています。

  ```
  Parameter Name : ERR_MESSAGE
  Parameter Value : Invalid S3 bucket name
  Return Status = -1006
  ```

  ストアドプロシージャを呼び出すときに返されるエラーメッセージについては、「[ストアドプロシージャエラー](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)」を参照してください。

ストアドプロシージャのステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

# RDS for Db2 の権限の付与と取り消しに関するストアドプロシージャ
<a name="db2-sp-granting-revoking-privileges"></a>

このトピックで説明する組み込みのストアドプロシージャは、Amazon RDS for Db2 データベースのユーザー、ロール、グループ、承認を管理します。これらのプロシージャを実行する場合、マスターユーザーはまず `rdsadmin` データベースに接続する必要があります。

これらのストアドプロシージャを使用するタスクについては、「[権限の付与と取り消し](db2-granting-revoking-privileges.md)」と「[Kerberos 認証の設定](db2-kerberos-setting-up.md)」を参照してください。

構文、パラメータ、使用上の注意、例については、以下の組み込みストアドプロシージャを参照してください。

**Topics**
+ [rdsadmin.create\$1role](#db2-sp-create-role)
+ [rdsadmin.grant\$1role](#db2-sp-grant-role)
+ [rdsadmin.revoke\$1role](#db2-sp-revoke-role)
+ [rdsadmin.drop\$1role](#db2-sp-drop-role)
+ [rdsadmin.add\$1user](#db2-sp-add-user)
+ [rdsadmin.change\$1password](#db2-sp-change-password)
+ [rdsadmin.list\$1users](#db2-sp-list-users)
+ [rdsadmin.remove\$1user](#db2-sp-remove-user)
+ [rdsadmin.add\$1groups](#db2-sp-add-groups)
+ [rdsadmin.remove\$1groups](#db2-sp-remove-groups)
+ [rdsadmin.dbadm\$1grant](#db2-sp-dbadm-grant)
+ [rdsadmin.dbadm\$1revoke](#db2-sp-dbadm-revoke)
+ [rdsadmin.set\$1sid\$1group\$1mapping](#db2-sp-set-sid-group-mapping)
+ [rdsadmin.list\$1sid\$1group\$1mapping](#db2-sp-list-sid-group-mapping)
+ [rdsadmin.remove\$1sid\$1group\$1mapping](#db2-sp-remove-sid-group-mapping)

## rdsadmin.create\$1role
<a name="db2-sp-create-role"></a>

ロールを作成します。

### 構文
<a name="db2-sp-create-role-syntax"></a>

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

### パラメータ
<a name="db2-sp-create-role-parameters"></a>

以下のパラメータは必須です。

*database\$1name*  
コマンドを実行する対象データベースの名前。データ型は `varchar` です。

*role\$1name*  
作成するロールの名前。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-create-role-usage-notes"></a>

ロールの作成ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-create-role-examples"></a>

以下の例は、データベース `DB2DB` の `MY_ROLE` というロールを作成します。

```
db2 "call rdsadmin.create_role(
    'DB2DB',
    'MY_ROLE')"
```

## rdsadmin.grant\$1role
<a name="db2-sp-grant-role"></a>

ロール、ユーザー、またはグループにロールを割り当てます。

### 構文
<a name="db2-sp-grant-role-syntax"></a>

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

### パラメータ
<a name="db2-sp-grant-role-parameters"></a>

次のアウトプットパラメータが必要です。

?  
このタスクで一意の識別子を出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要となります。

*database\$1name*  
コマンドを実行する対象データベースの名前。データ型は `varchar` です。

*role\$1name*  
作成するロールの名前。データ型は `varchar` です。

*grantee*  
承認を受け取るロール、ユーザー、またはグループ。データ型は `varchar` です。有効な値は、`ROLE`、`USER`、`GROUP`、`PUBLIC` です。  
形式は、値の後に名前を続ける必要があります。複数の値と名前はカンマで区切ります。例えば、「`USER user1, user2, GROUP group1, group2`」などです。名前を、ユーザー自身の情報に置き換えます。

次の入力パラメータは、オプションです。

*admin\$1option*  
被付与者 `ROLE` がロールを割り当てる `DBADM` 権限を持っているかどうかを指定します。データ型は `char` です。デフォルトは `N` です。

### 使用に関する注意事項
<a name="db2-sp-grant-role-usage-notes"></a>

ロールの割り当てステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-grant-role-examples"></a>

**例 1: ロール、ユーザー、グループにロールを割り当て、権限を付与する**

次の例では、データベース `TESTDB` の `ROLE_TEST` というロールを `role1` というロール、`user1` というユーザー、および `group1` というグループに割り当てます。 `ROLE_TEST` には、ロールを割り当てる管理者権限が付与されています。

```
db2 "call rdsadmin.grant_role(
    ?,
    'TESTDB',
    'ROLE_TEST',
    'ROLE role1, USER user1, GROUP group1',
    'Y')"
```

**例 2: `PUBLIC` にロールを割り当て、権限を付与しない**

次の例では、データベース `TESTDB` の `ROLE_TEST` というロールを `PUBLIC` に割り当てます。`ROLE_TEST` には、ロールを割り当てるための管理者権限は付与されていません。

```
db2 "call rdsadmin.grant_role(
    ?,
    'TESTDB',
    'ROLE_TEST',
    'PUBLIC')"
```

## rdsadmin.revoke\$1role
<a name="db2-sp-revoke-role"></a>

ロール、ユーザー、またはグループのロールを取り消します。

### 構文
<a name="db2-sp-revoke-role-syntax"></a>

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

### パラメータ
<a name="db2-sp-revoke-role-parameters"></a>

次のアウトプットパラメータが必要です。

?  
このタスクで一意の識別子を出力するパラメータマーカー。このパラメーターが受け入れるのは、? のみです。

次の入力パラメータが必要となります。

*database\$1name*  
コマンドを実行する対象データベースの名前。データ型は `varchar` です。

*role\$1name*  
取り消すロールの名前。データ型は `varchar` です。

*grantee*  
権限を失うロール、ユーザー、またはグループ。データ型は `varchar` です。有効な値は、`ROLE`、`USER`、`GROUP`、`PUBLIC` です。  
形式は、値の後に名前を続ける必要があります。複数の値と名前はカンマで区切ります。例えば、「`USER user1, user2, GROUP group1, group2`」などです。名前を、ユーザー自身の情報に置き換えます。

### 使用に関する注意事項
<a name="db2-sp-revoke-role-usage-notes"></a>

ロールの取り消しステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-revoke-role-examples"></a>

**例 1: ロール、ユーザー、グループからロールを取り消す**

次の例では、ロール `role1`、ユーザー `user1`、グループ `group1` からデータベース `TESTDB` のロール `ROLE_TEST` を取り消します。

```
db2 "call rdsadmin.revoke_role(
    ?,
    'TESTDB',
    'ROLE_TEST',
    'ROLE role1, USER user1, GROUP group1')"
```

**例 2: `PUBLIC` からロールを取り消す**

次の例は、`PUBLIC` からデータベース `TESTDB` のロール `ROLE_TEST` を取り消します。

```
db2 "call rdsadmin.revoke_role(
    ?,
    'TESTDB',
    'ROLE_TEST',
    'PUBLIC')"
```

## rdsadmin.drop\$1role
<a name="db2-sp-drop-role"></a>

ロールを削除します。

### 構文
<a name="db2-sp-drop-role-syntax"></a>

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

### パラメータ
<a name="db2-sp-drop-role-parameters"></a>

次のアウトプットパラメータが必要です。

?  
このタスクで一意の識別子を出力するパラメータマーカー。このパラメーターが受け入れるのは、? のみです。

次の入力パラメータが必要となります。

*database\$1name*  
コマンドを実行する対象データベースの名前。データ型は `varchar` です。

*role\$1name*  
削除するロールの名前。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-drop-role-usage-notes"></a>

ロールの削除ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-drop-role-examples"></a>

以下の例は、データベース `TESTDB` の `ROLE_TEST` というロールを削除します。

```
db2 "call rdsadmin.drop_role(
    ?,
    'TESTDB',
    'ROLE_TEST')"
```

## rdsadmin.add\$1user
<a name="db2-sp-add-user"></a>

承認リストにユーザーを追加します。

### 構文
<a name="db2-sp-add-user-syntax"></a>

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

### パラメータ
<a name="db2-sp-add-user-parameters"></a>

以下のパラメータは必須です。

* ユーザー名*  
ユーザーのユーザー名。データ型は `varchar` です。

* のパスワード*  
ユーザーのパスワード。データ型は `varchar` です。

次のパラメータはオプションです。

*group\$1name*  
ユーザーを追加するグループの名前。データ型は `varchar` です。デフォルトは空の文字列または null です。

### 使用に関する注意事項
<a name="db2-sp-add-user-usage-notes"></a>

グループ名をカンマで区切ることで、ユーザーを 1 つ以上のグループに追加できます。

新しいユーザーを作成するとき、または[既存のユーザー にグループを追加するとき](db2-granting-revoking-privileges.md#add-group-to-user)、グループを作成できます。グループの作成のみを行うことはできません。

**注記**  
`rdsadmin.add_user` を呼び出すことで追加できるユーザーの最大数は 5,000 です。

ユーザーの追加ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-add-user-examples"></a>

次の例では、`jorge_souza` という名前のユーザーを作成し、このユーザーを `sales` グループと `inside_sales` グループに割り当てます。

```
db2 "call rdsadmin.add_user(
    'jorge_souza',
    '*******',
    'sales,inside_sales')"
```

## rdsadmin.change\$1password
<a name="db2-sp-change-password"></a>

ユーザーのパスワードを変更します。

### 構文
<a name="db2-sp-change-password-syntax"></a>

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

### パラメータ
<a name="db2-sp-change-password-parameters"></a>

以下のパラメータは必須です。

* ユーザー名*  
ユーザーのユーザー名。データ型は `varchar` です。

*new\$1password*  
ユーザーの新しいパスワード。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-change-password-usage-notes"></a>

パスワードの変更ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-change-password-examples"></a>

次の例は、`jorge_souza` のパスワードを変更します。

```
db2 "call rdsadmin.change_password(
    'jorge_souza',
    '*******')"
```

## rdsadmin.list\$1users
<a name="db2-sp-list-users"></a>

承認リストにユーザーを一覧表示します。

### 構文
<a name="db2-sp-list-users-syntax"></a>

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

### 使用に関する注意事項
<a name="db2-sp-list-users-usage-notes"></a>

ユーザーの一覧表示ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

## rdsadmin.remove\$1user
<a name="db2-sp-remove-user"></a>

承認リストからユーザーを削除します。

### 構文
<a name="db2-sp-remove-user-syntax"></a>

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

### パラメータ
<a name="db2-sp-remove-user-parameters"></a>

以下のパラメータは必須です。

* ユーザー名*  
ユーザーのユーザー名。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-remove-user-usage-notes"></a>

ユーザーの削除ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-remove-user-examples"></a>

次の例では、 RDS for Db2 DB インスタンスのデータベースに `jorge_souza` がアクセスできないようにします。

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

## rdsadmin.add\$1groups
<a name="db2-sp-add-groups"></a>

グループをユーザーに追加します。

### 構文
<a name="db2-sp-add-groups-syntax"></a>

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

### パラメータ
<a name="db2-sp-add-groups-parameters"></a>

以下のパラメータは必須です。

* ユーザー名*  
ユーザーのユーザー名。データ型は `varchar` です。

*group\$1name*  
ユーザーを追加するグループの名前。データ型は `varchar` です。デフォルトは空の文字列です。

### 使用に関する注意事項
<a name="db2-sp-add-groups-usage-notes"></a>

グループ名をカンマで区切ることで、1 つ以上のグループをユーザーに追加できます。グループの追加ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-add-groups-examples"></a>

次の例は、`direct_sales` および `b2b_sales` グループをユーザー `jorge_souza` に追加します。

```
db2 "call rdsadmin.add_groups(
    'jorge_souza',
    'direct_sales,b2b_sales')"
```

## rdsadmin.remove\$1groups
<a name="db2-sp-remove-groups"></a>

ユーザーからグループを削除します。

### 構文
<a name="db2-sp-remove-groups-syntax"></a>

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

### パラメータ
<a name="db2-sp-remove-groups-parameters"></a>

以下のパラメータは必須です。

* ユーザー名*  
ユーザーのユーザー名。データ型は `varchar` です。

*group\$1name*  
ユーザーを削除するグループの名前。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-remove-groups-usage-notes"></a>

グループ名をカンマで区切ることで、1 つ以上のグループをユーザーから削除できます。

グループの削除ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-remove-groups-examples"></a>

次の例は、`direct_sales` および `b2b_sales` グループをユーザー `jorge_souza` から削除します。

```
db2 "call rdsadmin.remove_groups(
    'jorge_souza',
    'direct_sales,b2b_sales')"
```

## rdsadmin.dbadm\$1grant
<a name="db2-sp-dbadm-grant"></a>

ロール、ユーザー、またはグループに `DBADM`、`ACCESSCTRL`、または `DATAACCESS` 権限を付与します。

### 構文
<a name="db2-sp-dbadm-grant-syntax"></a>

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

### パラメータ
<a name="db2-sp-dbadm-grant-parameters"></a>

次のアウトプットパラメータが必要です。

?  
このタスクで一意の識別子を出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要となります。

*database\$1name*  
コマンドを実行する対象データベースの名前。データ型は `varchar` です。

*authorization*, \$1  
付与する権限のタイプ。データ型は `varchar` です。有効な値は、`DBADM`、`ACCESSCTRL`、`DATAACCESS` です。  
タイプが複数の場合、カンマで区切ります。

*grantee*  
承認を受け取るロール、ユーザー、またはグループ。データ型は `varchar` です。有効な値は、`ROLE`、`USER`、`GROUP` です。  
形式は、値の後に名前を続ける必要があります。複数の値と名前はカンマで区切ります。例えば、「`USER user1, user2, GROUP group1, group2`」などです。名前を、ユーザー自身の情報に置き換えます。

### 使用に関する注意事項
<a name="db2-sp-dbadm-grant-usage-notes"></a>

アクセス権を受け取るロールが存在している必要があります。

データベース管理者アクセスの許可ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-dbadm-grant-examples"></a>

**例 1: データベース管理者アクセスをロールに付与する**

次の例では、ロール `ROLE_DBA` に対して、`TESTDB` という名前のデータベースへのデータベース管理者アクセスを許可します。

```
db2 "call rdsadmin.dbadm_grant(
    ?, 
    'TESTDB',
    'DBADM',
    'ROLE ROLE_DBA')"
```

**例 2: ユーザーとグループにデータベース管理者アクセスを付与する**

次の例では、`user1` および `group1` に対して、`TESTDB` という名前のデータベースへのデータベース管理者アクセスを許可します。

```
db2 "call rdsadmin.dbadm_grant(
    ?, 
    'TESTDB', 
    'DBADM', 
    'USER user1, GROUP group1')"
```

**例 3: 複数のユーザーとグループにデータベース管理者のアクセス権を付与する**

次の例では、`user1`、`user2`、`group1`、`group2` に対して、`TESTDB` という名前のデータベースへのデータベース管理者アクセスを許可します。

```
db2 "call rdsadmin.dbadm_grant(
    ?, 
    'TESTDB', 
    'DBADM', 
    'USER user1, user2, GROUP group1, group2')"
```

## rdsadmin.dbadm\$1revoke
<a name="db2-sp-dbadm-revoke"></a>

ロール、ユーザー、またはグループの `DBADM`、`ACCESSCTRL`、または `DATAACCESS` 権限を取り消します。

### 構文
<a name="db2-sp-dbadm-revoke-syntax"></a>

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

### パラメータ
<a name="db2-sp-dbadm-revoke-parameters"></a>

次のアウトプットパラメータが必要です。

?  
タスクの一意の識別子。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要となります。

*database\$1name*  
コマンドを実行する対象データベースの名前。データ型は `varchar` です。

*authorization*, \$1  
取り消す権限のタイプ。データ型は `varchar` です。有効な値は、`DBADM`、`ACCESSCTRL`、`DATAACCESS` です。  
タイプが複数の場合、カンマで区切ります。

*grantee*  
権限を受け取るロール、ユーザー、またはグループ。データ型は `varchar` です。有効な値は、`ROLE`、`USER`、`GROUP` です。  
形式は、値の後に名前を続ける必要があります。複数の値と名前はカンマで区切ります。例えば、「`USER user1, user2, GROUP group1, group2`」などです。名前を、ユーザー自身の情報に置き換えます。

### 使用に関する注意事項
<a name="db2-sp-dbadm-revoke-usage-notes"></a>

データベース管理者アクセスの取り消しステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-dbadm-revoke-examples"></a>

**例 1: ロールからデータベース管理者アクセスを取り消す**

次の例では、ロール `ROLE_DBA` に対して、`TESTDB` という名前のデータベースへのデータベース管理者アクセスを取り消します。

```
db2 "call rdsadmin.dbadm_revoke(
    ?, 
    'TESTDB',
    'DBADM',
    'ROLE ROLE_DBA')"
```

**例 2: ユーザーとグループからデータベース管理者アクセスを取り消す**

次の例では、`user1` および `group1` に対して、`TESTDB` という名前のデータベースへのデータベース管理者アクセスを取り消します。

```
db2 "call rdsadmin.dbadm_revoke(
    ?, 
    'TESTDB', 
    'DBADM', 
    'USER user1, GROUP group1')"
```

**例 3: 複数のユーザーおよびグループからデータベース管理者アクセスを取り消す**

次の例では、`user1`、`user2`、`group1`、`group2` に対して、`TESTDB` という名前のデータベースへのデータベース管理者アクセスを取り消します。

```
db2 "call rdsadmin.dbadm_revoke(
    ?, 
    'TESTDB', 
    'DBADM', 
    'USER user1, user2, GROUP group1, group2')"
```

## rdsadmin.set\$1sid\$1group\$1mapping
<a name="db2-sp-set-sid-group-mapping"></a>

セキュリティ ID (SID) および対応する Active Directory グループ間のマッピングを作成します。

### 構文
<a name="db2-sp-set-sid-group-mapping-syntax"></a>

```
db2 "call rdsadmin.set_sid_group_mapping(
    ?,
    'SID',
    'group_name')"
```

### パラメータ
<a name="db2-sp-set-sid-group-mapping-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要となります。

*SID* ()  
セキュリティ ID (SID)。データ型は `varchar` です。

*group\$1name*  
SID にマッピングする Active Directory グループの名前。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-set-sid-group-mapping-usage-notes"></a>

Active Directory グループで Kerberos 認証を有効にするには、このストアドプロシージャを使用します。マッピングに `SID` または `group_name` が既に存在する場合、このストアドプロシージャは失敗します。

グループの SID を検索する方法については、「[ステップ 8: PowerShell で Active Directory グループ SID を取得するステップ 8: PowerShell で Active Directory グループ SID を取得する](db2-kerberos-setting-up.md#db2-kerberos-setting-up-retrieve-ad-group-sid)」を参照してください。

マッピングの作成のステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-set-sid-group-mapping-examples"></a>

次の例では、SID を `my_group` というグループにマッピングします。

```
db2 "call rdsadmin.set_sid_group_mapping(
    ?,
    'S-1-5-21-9146495592-531070549-834388463-513',
    'my_group')"
```

## rdsadmin.list\$1sid\$1group\$1mapping
<a name="db2-sp-list-sid-group-mapping"></a>

DB インスタンスで設定されているすべてのセキュリティ ID (SID) および Active Directory グループのマッピングを一覧表示します。

### 構文
<a name="db2-sp-list-sid-group-mapping-syntax"></a>

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

### 使用に関する注意事項
<a name="db2-sp-list-sid-group-mapping-usage-notes"></a>

ユーザーの一覧表示のステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

## rdsadmin.remove\$1sid\$1group\$1mapping
<a name="db2-sp-remove-sid-group-mapping"></a>

DB インスタンスからセキュリティ ID (SID) および対応する Active Directory グループマッピングを削除します。

### 構文
<a name="db2-sp-remove-sid-group-mapping-syntax"></a>

```
db2 "call rdsadmin.remove_sid_group_mapping(
    ?,
    'SID')"
```

### パラメータ
<a name="db2-sp-remove-sid-group-mapping-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要です。

*SID* ()  
セキュリティ ID (SID)。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-remove-sid-group-mapping-usage-notes"></a>

グループの SID を検索する方法については、「[ステップ 8: PowerShell で Active Directory グループ SID を取得するステップ 8: PowerShell で Active Directory グループ SID を取得する](db2-kerberos-setting-up.md#db2-kerberos-setting-up-retrieve-ad-group-sid)」を参照してください。

マッピングの削除のステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-remove-sid-group-mapping-examples"></a>

次の例では、マッピング先のグループから SID マッピングを削除します。

```
db2 "call rdsadmin.remove_sid_group_mapping(
    ?,
    'S-1-5-21-9146495592-531070549-834388463-513')"
```

# RDS for Db2 の監査ポリシーのストアドプロシージャ
<a name="db2-sp-managing-audit-policies"></a>

このトピックで説明した組み込みのストアドプロシージャでは、監査ログ記録を使用する Amazon RDS for Db2 データベースの監査ポリシーを管理します。詳細については、「[Db2 監査ログ記録](Db2.Options.Audit.md)」を参照してください。これらのプロシージャを実行する場合、マスターユーザーはまず `rdsadmin` データベースに接続する必要があります。

構文、パラメータ、使用上の注意、例については、以下の組み込みストアドプロシージャを参照してください。

**Topics**
+ [rdsadmin.configure\$1db\$1audit](#db2-sp-configure-db-audit)
+ [rdsadmin.disable\$1db\$1audit](#db2-sp-disable-db-audit)

## rdsadmin.configure\$1db\$1audit
<a name="db2-sp-configure-db-audit"></a>

*db\$1name* で指定された RDS for Db2 データベースの監査ポリシーを設定します。設定するポリシーが存在しない場合は、このストアドプロシージャを呼び出すとポリシーが作成されます。このポリシーが存在する場合、このストアドプロシージャを呼び出すと、指定したパラメータ値でポリシーが変更されます。

### 構文
<a name="db2-sp-configure-db-audit-syntax"></a>

```
db2 "call rdsadmin.configure_db_audit(
    'db_name', 
    'category', 
    'category_setting', 
    '?')"
```

### パラメータ
<a name="db2-sp-configure-db-audit-parameters"></a>

以下のパラメータは必須です。

*db\$1name*  
db\$1name で指定された監査ポリシーを設定する RDS for Db2 データベースの DB 名。データ型は `varchar` です。

*category*  
この監査ポリシーを設定するカテゴリの名前。データ型は `varchar` です。このパラメータには、次の値が有効です。  
+ `ALL` – `ALL` では、Amazon RDS に `CONTEXT`、`EXECUTE`、または `ERROR` カテゴリは含まれません。
+ `AUDIT` 
+ `CHECKING` 
+ `CONTEXT` 
+ `ERROR` 
+ `EXECUTE` - このカテゴリは、データありまたはデータなしで設定できます。データありでは、ホスト変数とパラメータマーカーに指定された入力データ値もログに記録されます。デフォルトでは、データなしになっています。詳細については、*category\$1setting* パラメータの説明と「[例](#db2-sp-configure-db-audit-examples)」を参照してください。
+ `OBJMAINT` 
+ `SECMAINT` 
+ `SYSADMIN` 
+ `VALIDATE` 
これらのコンポーネントの詳細については、[IBM Db2 のドキュメント](https://www.ibm.com/docs/en/db2/11.1?topic=statements-create-audit-policy)を参照してください。

*category\$1setting*  
指定された監査カテゴリの設定。データ型は `varchar` です。  
次の表は、各カテゴリの有効なカテゴリ設定値を示しています。      
<a name="db2-option-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/db2-sp-managing-audit-policies.html)

### 使用に関する注意事項
<a name="db2-sp-configure-db-audit-usage-notes"></a>

`rdsadmin.configure_db_audit` を呼び出す前に、監査ポリシーの設定対象となるデータベースを持つ RDS for Db2 DB インスタンスが、`DB2_AUDIT` オプションのあるオプショングループに関連付けられていることを確認してください。詳細については、「[Db2 監査ログのセットアップ](Db2.Options.Audit.md#db2-audit-setting-up)」を参照してください。

監査ポリシーを設定したら、「[監査設定を確認する](Db2.Options.Audit.md#db2-audit-check-config-status)」の手順に従ってデータベースの監査設定のステータスを確認できます。

`category` パラメータに `ALL` を指定しても `CONTEXT`、`EXECUTE`、`ERROR` カテゴリは含まれません。これらのカテゴリを監査ポリシーに追加するには、追加するカテゴリごとに個別に `rdsadmin.configure_db_audit` を呼び出します。詳細については、「[例](#db2-sp-configure-db-audit-examples)」を参照してください。

### 例
<a name="db2-sp-configure-db-audit-examples"></a>

以下の例では、`TESTDB` という名前のデータベースの監査ポリシーを作成または変更します。例 1～5 では、`ERROR` カテゴリが以前に設定されていない場合、このカテゴリは `NORMAL` (デフォルト) に設定されます。その設定を `AUDIT` に変更するには、「[Example 6: Specifying the ERROR category](#example-6)」に従います。

**例 1: `ALL` カテゴリを指定する**

```
db2 "call rdsadmin.configure_db_audit('TESTDB', 'ALL', 'BOTH', ?)"
```

この例では、呼び出しで監査ポリシーの `AUDIT`、`CHECKING`、`OBJMAINT`、`SECMAINT`、`SYSADMIN`、`VALIDATE` カテゴリを設定します。`BOTH` を指定すると、成功したイベントと失敗したイベントの両方に対してこの各カテゴリについての監査が行われます。

**例 2: データを使用して `EXECUTE` カテゴリを指定する**

```
db2 "call rdsadmin.configure_db_audit('TESTDB', 'EXECUTE', 'SUCCESS,WITH', ?)"
```

この例では、呼び出しで監査ポリシーの `EXECUTE` カテゴリを設定します。`SUCCESS,WITH` を指定すると、このカテゴリのログには成功したイベントのみが含まれ、ホスト変数とパラメータマーカーに対して指定された入力データ値が含まれます。

**例 3: データなしで `EXECUTE` カテゴリを指定する**

```
db2 "call rdsadmin.configure_db_audit('TESTDB', 'EXECUTE', 'FAILURE,WITHOUT', ?)"
```

この例では、呼び出しで監査ポリシーの `EXECUTE` カテゴリを設定します。`FAILURE,WITHOUT` を指定すると、このカテゴリのログには失敗したイベントのみが含まれ、ホスト変数とパラメータマーカーに対して指定された入力データ値は含まれません。

**例 4: ステータスイベントなしで `EXECUTE` カテゴリを指定する**

```
db2 "call rdsadmin.configure_db_audit('TESTDB', 'EXECUTE', 'NONE', ?)"
```

この例では、呼び出しで監査ポリシーの `EXECUTE` カテゴリを設定します。`NONE` を指定すると、このカテゴリのイベントは監査されません。

**例 5: `OBJMAINT` カテゴリを指定する**

```
db2 "call rdsadmin.configure_db_audit('TESTDB', 'OBJMAINT', 'NONE', ?)"
```

この例では、呼び出しで監査ポリシーの `OBJMAINT` カテゴリを設定します。`NONE` を指定すると、このカテゴリのイベントは監査されません。

**例 6: `ERROR` カテゴリを指定する**

```
db2 "call rdsadmin.configure_db_audit('TESTDB', 'ERROR', 'AUDIT', ?)"
```

この例では、呼び出しで監査ポリシーの `ERROR` カテゴリを設定します。`AUDIT` を指定すると、監査ログ記録自体で発生するエラーを含むすべてのエラーがログにキャプチャされます。デフォルトのエラータイプは `NORMAL` です。`NORMAL` では、監査によって生成されたエラーは無視され、実行中のオペレーションに関連付けられたエラーの `SQLCODE` のみがキャプチャされます。

## rdsadmin.disable\$1db\$1audit
<a name="db2-sp-disable-db-audit"></a>

*db\$1name* で指定された RDS for Db2 データベースの監査ログ記録を停止し、そのデータベースに対して設定された監査ポリシーを削除します。

**注記**  
このストアドプロシージャは、[rdsadmin.configure\$1db\$1audit](#db2-sp-configure-db-audit) の呼び出しによって設定された監査ポリシーのみを削除します。

### 構文
<a name="db2-sp-disable-db-audit-syntax"></a>

```
db2 "call rdsadmin.disable_db_audit('db_name', ?)"
```

### パラメータ
<a name="db2-sp-disable-db-audit-parameters"></a>

以下のパラメータは必須です。

*db\$1name*  
監査ログ記録を無効にする RDS for Db2 データベースの DB 名。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-disable-db-audit-usage-notes"></a>

`rdsadmin.disable_db_audit` を呼び出しても、RDS for Db2 DB インスタンスの監査ログ記録は無効になりません。DB インスタンスレベルで監査ログ記録を無効にするには、DB インスタンスからオプショングループを削除します。詳細については、「[Db2 監査ログ記録の無効化](Db2.Options.Audit.md#db2-audit-disabling)」を参照してください。

### 例
<a name="db2-sp-disable-db-audit-examples"></a>

次の例では、`TESTDB` という名前のデータベースの監査ログ記録を無効にします。

```
db2 "call rdsadmin.disable_db_audit('TESTDB', ?)"
```

# RDS for Db2 のバッファプールのストアドプロシージャ
<a name="db2-sp-managing-buffer-pools"></a>

このトピックで説明した組み込みのストアドプロシージャは、Amazon RDS for Db2 データベースのバッファプールを管理します。これらのプロシージャを実行する場合、マスターユーザーはまず `rdsadmin` データベースに接続する必要があります。

これらのストアドプロシージャは、さまざまなタスクで使用されます。これはすべてを網羅したリストではありません。
+ [バッファプールの一般的なタスク](db2-managing-buffer-pools.md)
+ [パフォーマンスレポートの生成](db2-managing-databases.md#db2-generating-performance-reports)
+ [db2look を使用してデータベースメタデータをコピーする](db2-native-db2-tools-db2look.md)
+ [IBM Db2 Data Management Console 用のリポジトリデータベースの作成](db2-connecting-with-ibm-data-management-console.md#db2-creating-repo-db-monitoring-dmc)

構文、パラメータ、使用上の注意、例については、以下の組み込みストアドプロシージャを参照してください。

**Topics**
+ [rdsadmin.create\$1bufferpool](#db2-sp-create-buffer-pool)
+ [rdsadmin.alter\$1bufferpool](#db2-sp-alter-buffer-pool)
+ [rdsadmin.drop\$1bufferpool](#db2-sp-drop-buffer-pool)

## rdsadmin.create\$1bufferpool
<a name="db2-sp-create-buffer-pool"></a>

バッファプールを作成します。

### 構文
<a name="db2-sp-create-buffer-pool-syntax"></a>

```
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-sp-create-buffer-pool-parameters"></a>

以下のパラメータは必須です。

*database\$1name*  
コマンドを実行する対象のデータベース名。データ型は `varchar` です。

*buffer\$1pool\$1name*  
作成するバッファプールの名前。データ型は `varchar` です。

以下のパラメータはオプションです。

*buffer\$1pool\$1size*  
ページ数でのバッファプールのサイズ。データ型は `integer` です。デフォルトは `-1` です。

*immediate*  
コマンドをすぐに実行するかどうかを指定します。データ型は `char` です。デフォルトは `Y` です。

*automatic*  
バッファプールを自動的に設定するかを指定します。データ型は `char` です。デフォルトは `Y` です。

*page\$1size*  
バッファプールのページサイズ。データ型は `integer` です。有効な値は、`4096`、`8192`、`16384`、`32768` です。デフォルトは `8192` です。

*number\$1block\$1pages*  
バッファプールのブロックページ数。データ型は `integer` です。デフォルトは `0` です。

*block\$1size*  
ブロックページのブロックサイズ。データ型は `integer` です。有効な値: `2` から `256`。デフォルトは `32` です。

### 使用に関する注意事項
<a name="db2-sp-create-buffer-pool-usage-notes"></a>

バッファプールの作成ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-create-buffer-pool-examples"></a>

**例 1: デフォルトパラメータを使用してバッファプールを作成する**

次の例では、デフォルトのパラメータを使用して `TESTDB` というデータベースに `BP8` というバッファプールを作成するため、バッファプールでは 8 KB のページサイズが使用されます。

```
db2 "call rdsadmin.create_bufferpool(
    'TESTDB', 
    'BP8')"
```

**例 2: 自動割り当てを使用してバッファプールを作成し、すぐに実行する**

次の例では、`TESTDB` という名前のデータベースのために `BP16` という名前のバッファプールを作成します。設定は、ページサイズが 16 KB、初期ページ数は 1,000 で、自動と指定しています。Db2 はこのコマンドを直ちに実行します。初期ページ数 -1 を使用すると、Db2 ではページの自動割り当てを使用します。

```
db2 "call rdsadmin.create_bufferpool(
    'TESTDB', 
    'BP16', 
    1000, 
    'Y', 
    'Y', 
    16384)"
```

**例 3: ブロックページを使用してバッファプールを作成し、すぐに実行する**

次の例では、`TESTDB` という名前のデータベースのために `BP16` という名前のバッファプールを作成します。このバッファプールのページサイズは 16 KB で、初期ページ数は 10,000 ページです。Db2 は、ブロックサイズ 512 の 500 ブロックページを使用して、このコマンドを直ちに実行します。

```
db2 "call rdsadmin.create_bufferpool(
    'TESTDB', 
    'BP16',
    10000, 
    'Y', 
    'Y', 
    16384, 
    500, 
    512)"
```

## rdsadmin.alter\$1bufferpool
<a name="db2-sp-alter-buffer-pool"></a>

バッファプールを変更します。

### 構文
<a name="db2-sp-alter-buffer-pool-syntax"></a>

```
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-sp-alter-buffer-pool-parameters"></a>

以下のパラメータは必須です。

*database\$1name*  
コマンドを実行する対象のデータベース名。データ型は `varchar` です。

*buffer\$1pool\$1name*  
変更するバッファプールの名前。データ型は `varchar` です。

*buffer\$1pool\$1size*  
ページ数でのバッファプールのサイズ。データ型は `integer` です。

以下のパラメータはオプションです。

*immediate*  
コマンドをすぐに実行するかどうかを指定します。データ型は `char` です。デフォルトは `Y` です。

*automatic*  
バッファプールを自動的に設定するかを指定します。データ型は `char` です。デフォルトは `N` です。

*change\$1number\$1blocks*  
バッファプール内のブロックページ数を変更するかどうかを指定します。データ型は `char` です。デフォルトは `N` です。

*number\$1block\$1pages*  
バッファプールのブロックページ数。データ型は `integer` です。デフォルトは `0` です。

*block\$1size*  
ブロックページのブロックサイズ。データ型は `integer` です。有効な値: `2` から `256`。デフォルトは `32` です。

### 使用に関する注意事項
<a name="db2-sp-alter-buffer-pool-usage-notes"></a>

バッファプールの変更ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-alter-buffer-pool-examples"></a>

次の例では、`TESTDB` というデータベースの `BP16` というバッファプールを「非自動」に変更し、サイズを 10,000 ページに変更します。Db2 はこのコマンドを直ちに実行します。

```
db2 "call rdsadmin.alter_bufferpool(
    'TESTDB',
    'BP16', 
    10000, 
    'Y', 
    'N')"
```

## rdsadmin.drop\$1bufferpool
<a name="db2-sp-drop-buffer-pool"></a>

バッファプールを削除します。

### 構文
<a name="db2-sp-drop-buffer-pool-syntax"></a>

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

### パラメータ
<a name="db2-sp-drop-buffer-pool-parameters"></a>

以下のパラメータは必須です。

*database\$1name*  
バッファプールが属するデータベースの名前。データ型は `varchar` です。

*buffer\$1pool\$1name*  
削除するバッファプールの名前。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-drop-buffer-pool-usage-notes"></a>

バッファプールの削除ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-drop-buffer-pool-examples"></a>

次の例では、`TESTDB` というデータベースの `BP16` というバッファプールを削除します。

```
db2 "call rdsadmin.drop_bufferpool(
    'TESTDB',
    'BP16')"
```

# RDS for Db2 のデータベースのストアドプロシージャ
<a name="db2-sp-managing-databases"></a>

このトピックで説明した組み込みのストアドプロシージャは、Amazon RDS for Db2 のデータベースを管理します。これらのプロシージャを実行する場合、マスターユーザーはまず `rdsadmin` データベースに接続する必要があります。

これらのストアドプロシージャは、さまざまなタスクで使用されます。これはすべてを網羅したリストではありません。
+ [一般的なデータベースタスク](db2-managing-databases.md)
+ [EBCDIC 照合を使用したデータベースの作成](db2-ebcdic.md)
+ [データベースに関する情報の収集](db2-supported-parameters.md#db2-modifying-parameters-db2-commands)
+ [データベース設定パラメータの変更](db2-supported-parameters.md#db2-modifying-parameters-db2-commands)
+ [Linux から Linux への移行](db2-one-time-migration-linux.md)
+ [ほぼゼロのダウンタイムで Linux から Linux に移行する](db2-near-zero-downtime-migration.md)

構文、パラメータ、使用上の注意、例については、以下の組み込みストアドプロシージャを参照してください。

**Topics**
+ [rdsadmin.create\$1database](#db2-sp-create-database)
+ [rdsadmin.deactivate\$1database](#db2-sp-deactivate-database)
+ [rdsadmin.activate\$1database](#db2-sp-activate-database)
+ [rdsadmin.reactivate\$1database](#db2-sp-reactivate-database)
+ [rdsadmin.drop\$1database](#db2-sp-drop-database)
+ [rdsadmin.update\$1db\$1param](#db2-sp-update-db-param)
+ [rdsadmin.set\$1configuration](#db2-sp-set-configuration)
+ [rdsadmin.show\$1configuration](#db2-sp-show-configuration)
+ [rdsadmin.backup\$1database](#db2-sp-backup-database)
+ [rdsadmin.restore\$1database](#db2-sp-restore-database)
+ [rdsadmin.rollforward\$1database](#db2-sp-rollforward-database)
+ [rdsadmin.rollforward\$1status](#db2-sp-rollforward-status)
+ [rdsadmin.complete\$1rollforward](#db2-sp-complete-rollforward)
+ [rdsadmin.db2pd\$1command](#db2-sp-db2pd-command)
+ [rdsadmin.force\$1application](#db2-sp-force-application)
+ [rdsadmin.set\$1archive\$1log\$1retention](#db2-sp-set-archive-log-retention)
+ [rdsadmin.show\$1archive\$1log\$1retention](#db2-sp-show-archive-log-retention)
+ [rdsadmin.list\$1archive\$1log\$1information](#db2-sp-list-archive-log-information)
+ [rdsadmin.enable\$1archive\$1log\$1copy](#db2-sp-enable_archive_log_copy)
+ [rdsadmin.disable\$1archive\$1log\$1copy](#db2-sp-disable_archive_log_copy)
+ [rdsadmin.fgac\$1command](#db2-sp-fgac-command)
+ [rdsadmin.db2support\$1command](#db2-sp-db2support-command)

## rdsadmin.create\$1database
<a name="db2-sp-create-database"></a>

データベースを作成します。

### 構文
<a name="db2-sp-create-database-syntax"></a>

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

### パラメータ
<a name="db2-sp-create-database-parameters"></a>

**注記**  
このストアドプロシージャでは、必須パラメータの組み合わせは検証されません。[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status) を呼び出すと、`database_codeset`、`database_territory`、`database_collation` の組み合わせが無効であるため、ユーザー定義関数がエラーを返す可能性があります。詳細については、 IBM Db2 ドキュメントの「[Choosing the code page, territory, and collation for your database](https://www.ibm.com/docs/en/db2/11.5?topic=support-choosing-code-page-territory-collation-your-database)」を参照してください。

以下のパラメータは必須です。

*database\$1name*  
作成するデータベースの名前。データ型は `varchar` です。

以下のパラメータはオプションです。

*database\$1page\$1size*  
データベースのデフォルトのページサイズ。有効な値は、`4096`、`8192`、`16384`、`32768` です。データ型は `integer` です。デフォルトは `8192` です。  
Amazon RDS は、4 KiB、8 KiB、16 KiB のページでの書き込みの原子性をサポートしています。一方、32 KiB のページには、*Torn Writes* (一部のデータしかディスクに書き込まれない) というリスクがあります。32 KiB のページを使用している場合は、ポイントインタイムリカバリと自動バックアップを有効にすることをお勧めします。有効にしない場合、データの不整合があるページから復元できなくなるリスクが発生します。詳細については、「[バックアップの概要](USER_WorkingWithAutomatedBackups.md)」および「[Amazon RDS の DB インスタンスを特定の時点に復元する](USER_PIT.md)」を参照してください。

*database\$1code\$1set*  
データベースのコードセット。データ型は `varchar` です。デフォルトは `UTF-8` です。

*database\$1territory*  
データベースの 2 文字の国コード。データ型は `varchar` です。デフォルトは `US` です。

*database\$1collation*  
データベースに保存されている文字列をソートして比較する方法を決定する照合順序。データ型は `varchar` です。  
有効な値:   
+ `COMPATIBILITY` – IBM Db2 バージョン 2 の照合順序。
+ `EBCDIC_819_037` – ISO ラテンコードページ、照合、CCSID 037 (EBCDIC 米国英語)。
+ `EBCDIC_819_500` – ISO ラテンコードページ、照合、CCSID 500 (EBCDIC 国際標準)。
+ `EBCDIC_850_037` – ASCII ラテンコードページ、照合、CCSID 037 (EBCDIC 米国英語)。
+ `EBCDIC_850_500` – ASCII ラテンコードページ、照合、CCSID 500 (EBCDIC 国際標準)。
+ `EBCDIC_932_5026` – ASCII 日本語コードページ、照合、CCSID 5026 (EBCDIC 米国英語)。
+ `EBCDIC_932_5035` – ASCII 日本語コードページ、照合、CCSID 5035 (EBCDIC 国際標準)。
+ `EBCDIC_1252_037` – Windows ラテンコードページ、照合、CCSID 037 (EBCDIC 米国英語)。
+ `EBCDIC_1252_500` – Windows ラテンコードページ、照合、CCSID 500 (EBCDIC 国際標準)。
+ `IDENTITY` - デフォルトの照合順序。文字列はバイト単位で比較されます。
+ `IDENTITY_16BIT` – Compatibility Encoding Scheme for UTF-16: 8-bit (CESU-8) 照合順序。詳細については、Unicode Consortium ウェブサイトの「[Unicode Technical Report \$126](https://www.unicode.org/reports/tr26/tr26-4.html)」を参照してください。
+ `NLSCHAR` – タイ語のコードページ (CP874) でのみ使用されます。
+ `SYSTEM` – `SYSTEM` を使用する場合、データベースは `database_codeset` と `database_territory` で自動的に照合順序を使用します。
デフォルトは `IDENTITY` です。  
さらに、RDS for Db2 は照合順序のグループ `language-aware-collation` および `locale-sensitive-collation` をサポートしています。詳細については、 IBM Db2 ドキュメントの「[Choosing a collation for a Unicode database](https://www.ibm.com/docs/en/db2/11.5?topic=collation-choosing-unicode-database)」を参照してください。

*database\$1autoconfigure\$1str*  
`AUTOCONFIGURE` コマンド構文 (`'AUTOCONFIGURE APPLY DB'` など)。データ型は `varchar` です。デフォルトは空の文字列または null です。  
詳細については、IBM Db2 ドキュメントの「[AUTOCONFIGURE コマンド](https://www.ibm.com/docs/en/db2/11.5?topic=cc-autoconfigure)」を参照してください。

*database\$1non-restrictive*  
データベース内のデフォルトの権限と特権の付与。データ型は `varchar` です。デフォルトは `N` です。  
有効な値:  
+ `N` – 作成されたデータベースは制限されており、権限や特権を付与しません。
+ `Y` – 作成されたデータベースは制限がなく、特別なグループ `PUBLIC` にアクセス許可のセットを付与します。詳細については、「IBM Db2 ドキュメント」の「[Default privileges granted on creating a database](https://www.ibm.com/docs/en/db2/11.5.x?topic=ownership-default-privileges-granted-creating-database)」を参照してください。

### 使用に関する注意事項
<a name="db2-sp-create-database-usage-notes"></a>

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

特別な考慮事項:
+ Db2 インスタンスに送信される `CREATE DATABASE` コマンドでは、`RESTRICTIVE` オプションを使用します。
+ RDS for Db2 は `AUTOMATIC STORAGE` テーブルスペースのみを使用します。
+ RDS for Db2 では、 `NUMSEGS` と `DFT_EXTENT_SZ` にデフォルト値が使用されます。
+ RDS for Db2 ではストレージ暗号化が使用され、データベース暗号化はサポートされていません。

これらのコマンドの詳細については、 IBM Db2 ドキュメントの「[CREATE DATABASE command](https://www.ibm.com/docs/en/db2/11.5?topic=commands-create-database#:~:text=in%20the%20database.-,RESTRICTIVE,-If%20the%20RESTRICTIVE)」を参照してください。

`rdsadmin.create_database` を呼び出す前に、`rdsadmin` データベースに接続する必要があります。次の例では、*master\$1username* と *master\$1password* を RDS for Db2 DB インスタンス情報に置き換えます。

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

データベースの作成ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

`rdsadmin.create_database` を呼び出すときに返されるエラーメッセージについては、「[ストアドプロシージャエラー](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)」を参照してください。

### 例
<a name="db2-sp-create-database-examples"></a>

次の例では、日本向けの *database\$1code\$1set* パラメータ、*database\$1territory* パラメータ、および *database\$1collation* パラメータを適切に組み合わせた `TESTJP` というデータベースを作成します。

```
db2 "call rdsadmin.create_database('TESTJP', 4096, 'IBM-437', 'JP', 'SYSTEM')"
```

## rdsadmin.deactivate\$1database
<a name="db2-sp-deactivate-database"></a>

データベースを非アクティブ化します。

### 構文
<a name="db2-sp-deactivate-database-syntax"></a>

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

### パラメータ
<a name="db2-sp-deactivate-database-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要です。

*database\$1name*  
非アクティブ化するデータベースの名前。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-deactivate-database-usage-notes"></a>

データベースを非アクティブ化してメモリリソースを節約したり、他のデータベース設定を変更したりできます。非アクティブ化されたデータベースをオンラインに戻すには、[rdsadmin.activate\$1database](#db2-sp-activate-database) ストアドプロシージャを呼び出します。

`rdsadmin.deactivate_database` ストアドプロシージャを呼び出して、レプリケーション中にソース DB インスタンスのデータベースを非アクティブ化することはできません。

データベースの非アクティブ化ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

`rdsadmin.deactivate_database` を呼び出すときに返されるエラーメッセージについては、「[ストアドプロシージャエラー](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)」を参照してください。

### 例
<a name="db2-sp-deactivate-database-examples"></a>

次の例では、`TESTDB` という名前のデータベースを非アクティブ化します。

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

## rdsadmin.activate\$1database
<a name="db2-sp-activate-database"></a>

データベースをアクティブ化します。

[rdsadmin.reactivate\$1database](#db2-sp-reactivate-database) と `rdsadmin.activate_database` との違いについては、「[使用に関する注意事項](#db2-sp-activate-database-usage-notes)」を参照してください。

### 構文
<a name="db2-sp-activate-database-syntax"></a>

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

### パラメータ
<a name="db2-sp-activate-database-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要です。

*database\$1name*  
非アクティブ化するデータベースの名前。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-activate-database-usage-notes"></a>

すべてのデータベースは、作成時にデフォルトでアクティブ化されます。スタンドアロン DB インスタンスのデータベースを[非アクティブ化]()してメモリリソースを節約したり、他のデータベース設定を変更したりする場合は、`rdsadmin.activate_database` ストアドプロシージャを呼び出してデータベースを再度アクティブ化します。

このストアドプロシージャは、スタンドアロン DB インスタンスにあり、[rdsadmin.deactivate\$1database](#db2-sp-deactivate-database) ストアドプロシージャを呼び出して非アクティブ化されたデータベースのみをアクティブ化します。レプリカソース DB インスタンスでデータベースをアクティブ化するには、[rdsadmin.reactivate\$1database](#db2-sp-reactivate-database) ストアドプロシージャを呼び出す必要があります。

データベースのアクティブ化ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

`rdsadmin.activate_database` を呼び出すときに返されるエラーメッセージについては、「[ストアドプロシージャエラー](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)」を参照してください。

### 例
<a name="db2-sp-activate-database-examples"></a>

次の例では、`TESTDB` という名前のデータベースをアクティブ化します。

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

## rdsadmin.reactivate\$1database
<a name="db2-sp-reactivate-database"></a>

データベースを再アクティブ化します。

[rdsadmin.activate\$1database](#db2-sp-activate-database) と `rdsadmin.reactivate_database` との違いについては、「[使用に関する注意事項](#db2-sp-reactivate-database-usage-notes)」を参照してください。

### 構文
<a name="db2-sp-reactivate-database-syntax"></a>

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

### パラメータ
<a name="db2-sp-reactivate-database-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要です。

*database\$1name*  
再アクティブ化するデータベースの名前。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-reactivate-database-usage-notes"></a>

`rdsadmin.reactivate_database` ストアドプロシージャを呼び出すと、このストアドプロシージャはまず [rdsadmin.deactivate\$1database](#db2-sp-deactivate-database) ストアドプロシージャを呼び出してデータベースを非アクティブ化し、次に [rdsadmin.activate\$1database](#db2-sp-activate-database) ストアドプロシージャを呼び出してデータベースをアクティブ化します。

データベース設定を変更した後、RDS for Db2 DB インスタンスのデータベースを再アクティブ化する必要が生じる場合があります。データベースを再アクティブ化する必要があるかどうかを判断するには、データベースに接続して `db2 get db cfg show detail` を実行します。

スタンドアロン DB インスタンスのデータベースの場合、`rdsadmin.reactivate_database` ストアプロシージャを使用してデータベースを再アクティブ化できます。または、[rdsadmin.deactivate\$1database](#db2-sp-deactivate-database) ストアドプロシージャを既に呼び出している場合は、[rdsadmin.activate\$1database](#db2-sp-activate-database) ストアドプロシージャを代わりに呼び出すことができます。

レプリカソース DB インスタンスのデータベースの場合、`rdsadmin.reactivate_database` ストアプロシージャを使用してデータベースを再アクティブ化する必要があります。

データベースの再アクティブ化ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

`rdsadmin.reactivate_database` を呼び出すときに返されるエラーメッセージについては、「[ストアドプロシージャエラー](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)」を参照してください。

### 例
<a name="db2-sp-reactivate-database-examples"></a>

次の例では、`TESTDB` という名前のデータベースを再アクティブ化します。

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

## rdsadmin.drop\$1database
<a name="db2-sp-drop-database"></a>

データベースを削除します。

### 構文
<a name="db2-sp-drop-database-syntax"></a>

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

### パラメータ
<a name="db2-sp-drop-database-parameters"></a>

以下のパラメータは必須です。

*database\$1name*  
削除するデータベースの名前。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-drop-database-usage-notes"></a>

次の条件が満たされた場合にのみ、`rdsadmin.drop_database` を呼び出してデータベースを削除できます。
+ Amazon RDS コンソールまたは AWS CLI を使用して RDS for Db2 DB インスタンスを作成したときにデータベースの名前を指定しなかった。詳細については、「[DB インスタンスの作成](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating)」を参照してください。
+ [rdsadmin.create\$1database](#db2-sp-create-database) ストアドプロシージャを呼び出してデータベースを作成した。
+ [rdsadmin.restore\$1database](#db2-sp-restore-database) ストアドプロシージャを呼び出して、オフラインまたはバックアップされたイメージからデータベースを復元した。

`rdsadmin.drop_database` を呼び出す前に、`rdsadmin` データベースに接続する必要があります。次の例では、*master\$1username* と *master\$1password* を RDS for Db2 DB インスタンス情報に置き換えます。

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

データベースの削除ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

`rdsadmin.drop_database` を呼び出すときに返されるエラーメッセージについては、「[ストアドプロシージャエラー](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)」を参照してください。

### 例
<a name="db2-sp-drop-database-examples"></a>

次の例では、`TESTDB` という名前のデータベースを削除します。

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

## rdsadmin.update\$1db\$1param
<a name="db2-sp-update-db-param"></a>

データベースパラメータを更新します。

### 構文
<a name="db2-sp-update-db-param-syntax"></a>

```
db2 "call rdsadmin.update_db_param(
    'database_name', 
    'parameter_to_modify', 
    'changed_value',
    'restart_database')"
```

### パラメータ
<a name="db2-sp-update-db-param-parameters"></a>

以下のパラメータは必須です。

*database\$1name*  
タスクの実行対象のデータベース名。データ型は `varchar` です。

*parameter\$1to\$1modify*  
変更するパラメータの名前。データ型は `varchar` です。詳細については、「[Amazon RDS for Db2 パラメータ](db2-supported-parameters.md)」を参照してください。

*changed\$1value*  
パラメータの値を変更した後の値。データ型は `varchar` です。

次のパラメータはオプションです。

*restart\$1database*  
再起動が必要な場合に RDS がデータベースを再起動するかどうかを指定します。データ型は `varchar` です。`logprimary` および `logfilsiz` を変更するには、このパラメータを `'YES'` に設定します。

### 使用に関する注意事項
<a name="db2-sp-update-db-param-usage-notes"></a>

データベースパラメータの更新ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

`rdsadmin.update_db_param` を呼び出すときに返されるエラーメッセージについては、「[ストアドプロシージャエラー](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)」を参照してください。

### 例
<a name="db2-sp-update-db-param-examples"></a>

**例 1: パラメータを更新する**

次の例では、`TESTDB` というデータベースで `archretrydelay` パラメータを `100` に更新します。

```
db2 "call rdsadmin.update_db_param(
    'TESTDB', 
    'archretrydelay', 
    '100')"
```

**例 2: オブジェクトの検証を回避する**

次の例では、依存関係のチェックを回避するために、`TESTDB` というデータベースにおいて作成したオブジェクトの検証を延期します。

```
db2 "call rdsadmin.update_db_param(
    'TESTDB', 
    'auto_reval', 
    'deferred_force')"
```

## rdsadmin.set\$1configuration
<a name="db2-sp-set-configuration"></a>

データベースの特定の設定を構成します。

### 構文
<a name="db2-sp-set-configuration-syntax"></a>

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

### パラメータ
<a name="db2-sp-set-configuration-parameters"></a>

以下のパラメータは必須です。

*.name*  
構成設定の名前。データ型は `varchar` です。

*値*  
構成設定の値。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-set-configuration-usage-notes"></a>

次の表は、`rdsadmin.set_configuration` で制御できる構成設定を示しています。


| 名前 | 説明 | 
| --- | --- | 
|  `RESTORE_DATABASE_NUM_BUFFERS`  |  復元オペレーション中に作成するバッファの数。この値は、DB インスタンスクラスの合計メモリサイズよりも小さくする必要があります。この設定を構成しないと、Db2 は復元オペレーション中に使用する値を決定します。詳細については、「IBM Db2 ドキュメント」の「[RESTORE DATABASE コマンド](https://www.ibm.com/docs/en/db2/11.5?topic=commands-restore-database)」を参照してください。  | 
|  `RESTORE_DATABASE_PARALLELISM`  |  復元オペレーション中に作成するバッファマニピュレータの数。この値は、DB インスタンスの vCPU 数の 2 倍未満にする必要があります。この設定を構成しないと、Db2 は復元オペレーション中に使用する値を決定します。詳細については、「IBM Db2 ドキュメント」の「[RESTORE DATABASE コマンド](https://www.ibm.com/docs/en/db2/11.5?topic=commands-restore-database)」を参照してください。  | 
|  `RESTORE_DATABASE_NUM_MULTI_PATHS`  |  Amazon S3 オペレーションからの復元中に使用するパス (または I/O ストリーム) の数。この設定を使用するには、複数のバックアップファイルが必要です。この値は、複数のデータベースバックアップファイルを並行して復元するため、大量のデータを含むデータベースを復元する際のパフォーマンスを向上させることができます。データベースバックアップファイルの数と一致するようにこの値を設定することをお勧めします。詳細については、「IBM Db2 ドキュメント」の「[BACKUP DATABASE command](https://www.ibm.com/docs/en/db2/11.5?topic=commands-backup-database)」を参照してください。  | 
|  `USE_STREAMING_RESTORE`  |  最初にバックアップ全体を RDS for Db2 DB インスタンスにダウンロードしてから抽出するのではなく、復元中にバックアップデータを直接ストリーミングするかどうかを指定します。`USE_STREAMING_RESTORE` を `TRUE` に設定すると、ストレージ要件が大幅に削減され、復元パフォーマンスが向上します。この設定には、IBM Db2 エンジンバージョン 11.5.9.0.sb00063198.r1 以降と、データベースの Elastic Network Interface (ENI) を介した Amazon S3 接続が必要です。詳細については、「IBM Db2 ドキュメント」の「[Remote storage](https://www.ibm.com/docs/en/db2/11.5.x?topic=databases-remote-storage)」を参照してください。  | 

### 例
<a name="db2-sp-set-configuration-examples"></a>

**例 1: 作成するバッファの数を指定する**

次の例では、`RESTORE_DATABASE_NUM_BUFFERS` を `150` に設定します。

```
db2 "call rdsadmin.set_configuration(
    'RESTORE_DATABASE_NUM_BUFFERS', 
    '150')"
```

**例 2: 作成するバッファマニピュレータの数を指定する**

次の例では、`RESTORE_DATABASE_PARALLELISM` を `8` に設定します。

```
db2 "call rdsadmin.set_configuration(
    'RESTORE_DATABASE_PARALLELISM', 
    '8')"
```

**例 3: 復元時に使用するパスまたは I/O ストリームの数を指定する**

次の例では、`RESTORE_DATABASE_NUM_MULTI_PATHS` を `5` に設定します。

```
db2 "call rdsadmin.set_configuration(
    'RESTORE_DATABASE_NUM_MULTI_PATHS', 
    '5')"
```

**例 4: バックアップデータをストリーミングするための復元の設定**

次の例では、`USE_STREAMING_RESTORE` を `TRUE` に設定します。

```
db2 "call rdsadmin.set_configuration(
    'USE_STREAMING_RESTORE', 
    'TRUE')"
```

## rdsadmin.show\$1configuration
<a name="db2-sp-show-configuration"></a>

ストアドプロシージャ `rdsadmin.set_configuration` を使用して指定できる現在の設定を返します。

### 構文
<a name="db2-sp-show-configuration-syntax"></a>

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

### パラメータ
<a name="db2-sp-show-configuration-parameters"></a>

次のパラメータはオプションです。

*.name*  
情報を返す対象の構成設定の名前。データ型は `varchar` です。  
有効な設定名は次のとおりです。  
+ `RESTORE_DATABASE_NUM_BUFFERS` – 復元オペレーション中に作成するバッファの数。
+ `RESTORE_DATABASE_PARALLELISM` – 復元オペレーション中に作成するバッファマニピュレータの数。
+ `RESTORE_DATABASE_NUM_MULTI_PATHS` – Amazon S3 オペレーションからの復元中に使用するパス (または I/O ストリーム) の数。
+ `USE_STREAMING_RESTORE` – 最初にバックアップデータ全体を RDS for Db2 DB インスタンスにダウンロードしてから抽出するのではなく、復元中にバックアップデータを直接ストリーミングするかどうかを指定します。

### 使用に関する注意事項
<a name="db2-sp-show-configuration-usage-notes"></a>

構成設定の名前を指定しないと、`rdsadmin.show_configuration` は、ストアドプロシージャ `rdsadmin.set_configuration` を使用して設定できるすべての構成設定に関する情報を返します。

### 例
<a name="db2-sp-show-configuration-examples"></a>

次の例では、現在の `RESTORE_DATABASE_PARALLELISM` 設定に関する情報を返します。

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

## rdsadmin.backup\$1database
<a name="db2-sp-backup-database"></a>

RDS for Db2 DB インスタンスから Amazon S3 バケットにデータベースをバックアップします。

### 構文
<a name="db2-sp-backup-database-syntax"></a>

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

### パラメータ
<a name="db2-sp-backup-database-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要となります。

*database\$1name*  
バックアップする RDS for Db2 DB インスタンスのターゲットデータベースの名前。データ型は `varchar` です。  
データベースは DB インスタンスに存在する必要があります。`rdsadmin` データベースをバックアップすることはできません。

*s3\$1bucket\$1name*  
バックアップを保存する Amazon S3 バケットの名前。データ型は `varchar` です。  
S3 バケットは、`rdsadmin.backup_database` を呼び出す前に存在し、バックアップする RDS for Db2 DB インスタンスのターゲットデータベースと同じ AWS リージョンにあり、DB インスタンスにアタッチされた IAM ロールを介してアクセスできる必要があります。

*s3\$1prefix*  
RDS for Db2 がバックアップファイルをアップロードする Amazon S3 へのパスのプレフィックス。データ型は `varchar` です。  
プレフィックスは 1024 文字に限定されます。先頭または末尾にスラッシュ (/) を含めることはできません。IBM  から Amazon S3 へのストリーミングには制限があるため、プレフィックスにサブディレクトリを含めることをお勧めします。  
ファイル管理を向上させるために、RDS for Db2 は *s3\$1prefix* の後に追加のディレクトリを作成します。RDS for Db2 は、すべてのバックアップファイルを *s3\$1prefix/dbi\$1resource\$1id/db\$1name* にアップロードします。*num\$1files* を `1` より大きく設定した場合、*db\$1name* ディレクトリには複数のバックアップファイルが含まれます。  
バックアップファイルの Amazon S3 の場所の例を次に示します。この例では、`backups/daily` は *s3\$1prefix* パラメータに設定された値です。  

```
backups/daily/db-5N7FXOY4GDP7RG2NSH2ZTAI2W4/SAMPLEDB
```

*backup\$1type*  
バックアップ中にデータベースを使用できるかどうかを決定するバックアップのタイプ。データ型は `varchar` です。  
有効な値:  
+ `OFFLINE` – バックアップ中はデータベースを使用できません。このタイプは高速ですが、ダウンタイムが発生します。
+ `ONLINE` – データベースはバックアップ中も引き続き使用できます。デフォルトで、`ONLINE` は `INCLUDE LOGS` に設定されています。

以下のパラメータはオプションです。

*compression\$1option*  
バックアップ時間、CPU 使用率、ストレージコストに影響する圧縮アルゴリズムのタイプ。データ型は `varchar` です。デフォルトは `NONE` です。  
有効な値:  
+ `NONE` – 最大ファイルサイズ、最小の CPU 使用率、最低のストレージコスト。
+ `STANDARD` – 標準 Db2 圧縮。`libdb2compr.so` を使用します。
+ `ZLIB` – 拡張された Db2 圧縮。`libdb2zcompr.so` を使用しますが、CPU を大量に消費し、ストレージコストが最も高くなります。

*util\$1impact\$1priority*  
バックアップがシステムリソースに与える影響を制御する設定。データ型は `integer` です。有効な値: `1`–`100` (低から高)。デフォルトは `50` です。  
値を小さくすると、バックアップがシステムリソースに与える影響は軽減されますが、データベースのバックアップにかかる時間が長くなる可能性があります。値を大きくすると、データベースのバックアップを迅速に完了できますが、他のオペレーションに影響する可能性があります。実際の影響は、システム全体の使用率と `util_impact_lim` 設定によって異なります。パラメータグループで `util_impact_lim` 設定を表示および変更できます。詳細については、「[Amazon RDS for Db2 パラメータ](db2-supported-parameters.md)」を参照してください。

*num\$1files*  
Amazon S3 への並列アップロードストリームの数。データ型は `integer` です。有効値: `1`～`256`。  
このパラメータは、Amazon RDS が自動的に計算するデフォルトのバックアップパフォーマンスを確認した後にのみ設定することをお勧めします。値を大きくすると、特に高帯域幅接続では、大規模なバックアップのパフォーマンスが向上する可能性がありますが、特定の時点では、値を大きくするとパフォーマンスが低下します。また、使用可能なシステムリソースとネットワーク容量も考慮してください。

*parallelism*  
バックアップユーティリティが並行して読み取ることができるテーブルスペースの数。データ型は `integer` です。有効値: `1`～`256`。  
このパラメータは、Db2 エンジンが最適な値として自動的に計算するバックアップパフォーマンスをデフォルトで確認した後にのみ設定することをお勧めします。このパラメータを設定すると、Amazon RDS は使用可能なプロセッサに対して検証し、処理能力が不十分な場合はバックアップリクエストを実行しません。

*num\$1buffers*  
使用するバッファの数。データ型は `integer` です。有効値: `1`～`268435456`。  
このパラメータは、Amazon RDS がメモリに基づいて自動的に計算するデフォルトのバックアップパフォーマンスを確認した後にのみ設定することをお勧めします。このパラメータを設定すると、Amazon RDS は使用可能なメモリに対して検証し、使用可能なメモリが不足している場合はバックアップリクエストを実行しません。複数の場所にバックアップする場合 (`num_files` が `1` 以上に設定されている)、バッファの数が多いほどパフォーマンスが向上する可能性があります。`compression_option` を `NONE` に設定しない場合、`num_buffers` と `parallelism` を増やすことでパフォーマンスを向上させることができます。

### 使用に関する注意事項
<a name="db2-sp-backup-database-usage-notes"></a>

このストアドプロシージャは、Amazon S3 統合を使用してデータベースのバックアップを Amazon S3 バケットに直接ストリーミングする非同期バックアップタスクを作成します。ローカルサーバーからでも、RDS for Db2 DB インスタンスからでもバックアップを作成し、Amazon S3 にストリーミングして、任意の場所に復元することができます。データベースを RDS for Db2 DB インスタンスに復元する方法については、「[rdsadmin.restore\$1database](#db2-sp-restore-database)」を参照してください。

ストアドプロシージャを呼び出す前に、以下の考慮事項を確認してください。
+ 一度にバックアップできるデータベースは 1 つだけです。
+ DB インスタンスでバックアップと復元を同時に実行することはできません。
+ AWS KMS を使用した Amazon S3 サーバー側の暗号化 (SSE−KMS) はサポートされていません。S3 バケットが SSE-KMS に設定されている場合でも、S3 バケットにアップロードされたファイルは SSE-KMS 暗号化を使用しません。
+ バックアップファイルを Amazon S3 にストリーミングするには、統合を既に設定しておく必要があります。詳細については、「[Amazon RDS for Db2 DB インスタンスと Amazon S3 の統合](db2-s3-integration.md)」を参照してください。
+ RDS for Db2 DB インスタンスから Amazon S3 と対話できるようにするには、プライベートサブネットが使用する VPC と Amazon S3 ゲートウェイエンドポイントが必要です。詳細については、「[ステップ 1: これにより、Amazon S3 用の VPC ゲートウェイエンドポイントを作成する](db2-troubleshooting.md#db2-creating-endpoint)」および「[ステップ 2: Amazon S3 の VPC ゲートウェイエンドポイントが存在することを確認する](db2-troubleshooting.md#db2-confirming-endpoint)」を参照してください。

`rdsadmin.backup_database` を呼び出す前に、`rdsadmin` データベースに接続する必要があります。次の例では、*master\$1username* と *master\$1password* を RDS for Db2 DB インスタンス情報に置き換えます。

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

データベースをバックアップしたら、必ず接続を終了してください。

```
terminate
```

データベースのバックアップのステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

`rdsadmin.backup_database` を呼び出すときに返されるエラーメッセージについては、「[ストアドプロシージャエラー](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)」を参照してください。

### 例
<a name="db2-sp-backup-database-examples"></a>

すべての例では、`MYDB` というデータベースを `amzn-s3-demo-bucket` という Amazon S3 バケットにバックアップし、*s3\$1prefix* を `backups/daily` に設定します。

**例 \$11: 使用率の中央値と単一のアップロードストリームでデータベースがオフラインで使用不可であることを指定する**

次の例では、データベースはオフラインです。これは高速ですが、バックアップ中にデータベースが使用できないことを意味します。この例では、ファイルの圧縮を実行せず、システムリソースへの影響は中程度であり、Amazon S3 への単一のアップロードストリームを使用します。

```
db2 call "rdsadmin.backup_database(
    ?, 
    'MYDB',
    'amzn-s3-demo-bucket', 
    'backups/daily',
    'OFFLINE',
    'NONE', 
    50, 
    1)"
```

**例 \$12: 拡張圧縮、使用率の中央値、少数の並列アップロードストリームを使用して、データベースをオンラインで使用可能に指定する**

次の例では、データベースはオンラインであり、バックアップ中に使用できます。この例では、拡張圧縮を実行するため、ファイルサイズは小さくなりますが、CPU を大量に消費します。システムリソースへの影響の中央値をわずかに上回り、Amazon S3 への 5 つのアップロードストリームを使用します。

```
db2 call "rdsadmin.backup_database(
    ?, 
    'MYDB',
    'amzn-s3-demo-bucket', 
    'backups/daily',
    'ONLINE',
    'ZLIB', 
    60, 
    5)"
```

**例 \$13: デフォルトとシステム計算を使用して、データベースがオフラインで使用できないことを指定する**

次の例では、データベースはオフラインです。これは高速ですが、バックアップ中にデータベースが使用できないことを意味します。この例では、ファイルのデフォルトの圧縮を使用し、システムリソースに影響を及ぼします。また、RDS for Db2 では、Amazon S3 への並列アップロードストリームの数、並列で読み取るテーブルスペース、使用するバッファを計算できます。

```
db2 "call rdsadmin.backup_database(
    ?, 
    'MYDB', 
    'amzn-s3-demo-bucket',
    'backups/daily', 
    'OFFLINE')"
```

**例 \$14: 圧縮なし、高使用率、カスタム計算で、データベースをオフラインで使用不可に指定する**

次の例では、データベースはオフラインです。これは高速ですが、バックアップ中にデータベースが使用できないことを意味します。この例では、ファイルの圧縮は行わず、システムリソースに大きな影響を与え、Amazon S3 への 20 のアップロードストリームを使用します。並列に読み取るテーブルスペースの最大数を設定します。これにより、処理能力が不十分な場合にバックアップリクエストが失敗する可能性があります。また、使用するバッファの最大数も設定するため、メモリが不足している場合にバックアップリクエストが失敗する可能性があります。

```
db2 "call rdsadmin.backup_database(
    ?, 
    'MYDB', 
    'amzn-s3-demo-bucket', 
    'backups/daily', 
    'OFFLINE', 
    'NONE', 
    90, 
    20, 
    256, 
    268435456)"
```

## rdsadmin.restore\$1database
<a name="db2-sp-restore-database"></a>

Amazon S3 バケットから RDS for Db2 DB インスタンスにデータベースを復元します。

### 構文
<a name="db2-sp-restore-database-syntax"></a>

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

### パラメータ
<a name="db2-sp-restore-database-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要となります。

*database\$1name*  
RDS for Db2 で復元するターゲットデータベースの名前。データ型は `varchar` です。  
例えば、ソースデータベース名が `TESTDB` である場合、*database\$1name* を `NEWDB` に設定すると、Amazon RDS はソースデータベースとして `NEWDB` を復元します。

*s3\$1bucket\$1name*  
バックアップが保存されている Amazon S3 バケットの名前。データ型は `varchar` です。

*s3\$1prefix*  
ダウンロード中のファイルマッチングに使用するプレフィックス。データ型は `varchar` です。  
このパラメータが空の場合、Amazon S3 バケット内のすべてのファイルが処理されます。プレフィックスの例は、次のとおりです。  

```
backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101
```

*restore\$1timestamp*  
データベースバックアップイメージのタイムスタンプ。データ型は `varchar` です。  
タイムスタンプはバックアップファイル名に含まれます。例えば、 `20230615010101` はファイル名 `SAMPLE.0.rdsdb.DBPART000.20230615010101.001` のタイムスタンプです。

*backup\$1type*  
バックアップのタイプ。データ型は `varchar` です。有効な値: `OFFLINE`、`ONLINE`。  
ほぼゼロのダウンタイムで移行するには、`ONLINE` を使用します。詳細については、「[Amazon RDS for Db2 のダウンタイムがほぼゼロの Linux から Linux への移行](db2-near-zero-downtime-migration.md)」を参照してください。

### 使用に関する注意事項
<a name="db2-sp-restore-database-usage-notes"></a>

このストアドプロシージャを使用して、Db2 データベースを RDS for Db2 DB インスタンスに移行できます。詳細については、「[AWS のサービスを使用して Db2 から Amazon RDS for Db2 にデータを移行する](db2-migration-approaches.md)」を参照してください。このストアドプロシージャを使用して、同じデータベースの複数のコピーを異なるデータベース名で作成し、各コピーで同じ復元イメージを使用することもできます。

ストアドプロシージャを呼び出す前に、以下の考慮事項を確認してください。
+ データベースを復元する前に、バックアップとディスク上の元の Db2 データベースよりも大きいストレージスペースを RDS for Db2 DB インスタンス用にプロビジョンする必要があります。`USE_STREAMING_RESTORE` を有効にした場合、バックアップを復元すると、Amazon RDS はバックアップファイルを S3 バケットから RDS for Db2 DB インスタンスに直接ストリーミングします。`USE_STREAMING_RESTORE` を有効にしない場合、バックアップサイズとディスク上の元の Db2 データベースサイズの合計以上のストレージスペースを RDS for Db2 DB インスタンス用にプロビジョニングする必要があります。詳細については、「[Insufficient disk space](db2-troubleshooting.md#restore-database-sp-insufficient-disk-space)」を参照してください。
+ バックアップを復元すると、Amazon RDS は RDS for Db2 DB インスタンスのバックアップファイルを抽出します。各バックアップファイルは 5 TB 以下である必要があります。バックアップファイルが 5 TB を超える場合は、バックアップファイルを小さいファイルに分割する必要があります。
+ `rdsadmin.restore_database` ストアドプロシージャを使用してすべてのファイルを復元するには、ファイル名でタイムスタンプの後にファイル番号のサフィックスを含めません。例えば、*s3\$1prefix* `backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101` は、以下のファイルを復元します。

  ```
  SAMPLE.0.rdsdb.DBPART000.20230615010101.001
  SAMPLE.0.rdsdb.DBPART000.20230615010101.002
  SAMPLE.0.rdsdb.DBPART000.20230615010101.003
  SAMPLE.0.rdsdb.DBPART000.20230615010101.004
  SAMPLE.0.rdsdb.DBPART000.20230615010101.005
  ```
+ RDS for Db2 は、非自動ストレージをサポートしていません。詳細については、「[Tablespaces not restored](db2-troubleshooting.md#restore-database-sp-tablespaces-not-restored)」を参照してください。
+ RDS for Db2 は、フェンスされていないルーチンをサポートしていません。詳細については、「[Non-fenced routines not allowed](db2-troubleshooting.md#restore-database-sp-non-fenced-routines)」を参照してください。
+ データベースの復元オペレーションのパフォーマンスを向上させるには、RDS で使用するバッファの数、バッファマニピュレータの数、および複数のバックアップパスの数を設定できます。ストレージの使用量を最適化し、パフォーマンスを向上させるために、Amazon S3 から直接バックアップをストリーミングすることもできます。現在の設定を確認するには、[rdsadmin.show\$1configuration](#db2-sp-show-configuration) を使用します。設定を変更するには、[rdsadmin.set\$1configuration](#db2-sp-set-configuration) を使用します。

データベースをオンラインにして、データベースを復元した後に追加のトランザクションログを適用するには、「[rdsadmin.rollforward\$1database](#db2-sp-rollforward-database)」を参照してください。

データベースの復元状況の確認については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

`rdsadmin.restore_database` を呼び出すときに返されるエラーメッセージについては、「[ストアドプロシージャエラー](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)」を参照してください。

### 例
<a name="db2-sp-restore-database-examples"></a>

次の例では、*s3\$1prefix* `backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101` を持つ 1 つ以上のファイルでオフラインバックアップを復元します。

```
db2 "call rdsadmin.restore_database(
    ?,
    'SAMPLE',
    'amzn-s3-demo-bucket',
    'backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101',
    20230615010101,
    'OFFLINE')"
```

## rdsadmin.rollforward\$1database
<a name="db2-sp-rollforward-database"></a>

[rdsadmin.restore\$1database](#db2-sp-restore-database) を呼び出して、データベースをオンラインにし、データベースを復元した後に追加のトランザクションログを適用します。

### 構文
<a name="db2-sp-rollforward-database-syntax"></a>

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

### パラメータ
<a name="db2-sp-rollforward-database-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要となります。

*database\$1name*  
オペレーションの実行対象のデータベースの名前。データ型は `varchar` です。

*s3\$1bucket\$1name*  
バックアップが保存されている Amazon S3 バケットの名前。データ型は `varchar` です。

*s3\$1prefix*  
ダウンロード中のファイルマッチングに使用するプレフィックス。データ型は `varchar` です。  
このパラメータが空の場合、S3 バケット内のすべてのファイルがダウンロードされます。プレフィックスの例は次のとおりです。  

```
backupfolder/SAMPLE.0.rdsdb.DBPART000.20230615010101
```

次の入力パラメータは、オプションです。

*rollforward\$1to\$1option*  
ロールフォワードするポイント。データ型は `varchar` です。有効な値: `END_OF_LOGS`、`END_OF_BACKUP` (タイムスタンプの形式は `YYYY-MM-DD-HH.MM.SS`)。デフォルトは `END_OF_LOGS` です。

*complete\$1rollforward*  
ロールフォワードプロセスを完了するかどうかを指定します。データ型は `varchar` です。デフォルトは `TRUE` です。  
`TRUE` の場合は、完了後、データベースはオンラインになり、アクセス可能になります。`FALSE` の場合は、データベースは `ROLL-FORWARD PENDING` 状態のままになります。

### 使用に関する注意事項
<a name="db2-sp-rollforward-database-usage-notes"></a>

さまざまなシナリオにおいてオンプレミスで生成されたインクルードログを含むオンラインバックアップに `rds.rollforward_database` を使用できます。

**シナリオ 1: データベースの復元、含まれているログのロールフォワード、データベースのオンライン化**

`rdsadmin.restore_database()` が完了したら、[例 1](#db2-sp-rollforward-database-examples) の構文を使用して、トランザクションログを含むデータベースをオンラインにする。

**シナリオ 2: データベースをオンラインにするが、含まれているログをロールフォワードしない。**

`rdsadmin.restore_database()` が完了したら、[例 2](#db2-sp-rollforward-database-examples) の構文を使用して、トランザクションログなしでデータベースをオンラインにします。

**シナリオ 3: バックアップに含まれるログをロールフォワードし、オンプレミスで生成された追加のトランザクションログを適用する**

`rdsadmin.restore_database()` が完了したら、[例 3 または例 4](#db2-sp-rollforward-database-examples) の構文を使用して、データベースをオンラインにせずにログをロールフォワードします。

`complete_rollforward` を `FALSE` に設定すると、データベースは `ROLL-FORWARD PENDING` 状態になり、オフラインになります。データベースをオンラインにするには、[rdsadmin.complete\$1rollforward](#db2-sp-complete-rollforward) を呼び出す必要があります。

データベースのロールフォワードステータスを確認する方法については、「[rdsadmin.rollforward\$1status](#db2-sp-rollforward-status)」を参照してください。

### 例
<a name="db2-sp-rollforward-database-examples"></a>

**例 1: トランザクションログを含むデータベースをオンラインにする**

次の例では、トランザクションログを使用してデータベースのオンラインバックアップにロールフォワードし、データベースをオンラインにします。

```
db2 "call rdsadmin.rollforward_database(
    ?,
    null,
    null,
    'END_OF_LOGS',
    'TRUE')"
```

**例 2: トランザクションログなしでデータベースをオンラインにする**

次の例では、トランザクションログなしでデータベースのオンラインバックアップにロールフォワードし、データベースをオンラインにします。

```
db2 "call rdsadmin.rollforward_database(
    ?,
    'TESTDB',
    'amzn-s3-demo-bucket',
    'logsfolder/,
    'END_OF_BACKUP',
    'TRUE')"
```

**例 3: トランザクションログを使用してデータベースをオンラインにしない**

次の例では、トランザクションログを使用してデータベースのオンラインバックアップにロールフォワードします。ただし、データベースはオンラインにしません。

```
db2 "call rdsadmin.rollforward_database(
    ?,
    'TESTDB',
    null,
    'onlinebackup/TESTDB',
    'END_OF_LOGS',
    'FALSE')"
```

**例 4: 追加のトランザクションログを使用してデータベースをオンラインにしない**

次の例では、追加のトランザクションログを使用してデータベースのオンラインバックアップにロールフォワードします。ただし、データベースはオンラインにしません。

```
db2 "call rdsadmin.rollforward_database(
    ?,
    'TESTDB',
    'amzn-s3-demo-bucket',
    'logsfolder/S0000155.LOG',
    'END_OF_LOGS',
    'FALSE')"
```

## rdsadmin.rollforward\$1status
<a name="db2-sp-rollforward-status"></a>

`ROLLFORWARD DATABASE database_name QUERY STATUS` の出力を返します。

### 構文
<a name="db2-sp-rollforward-status-syntax"></a>

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

### パラメータ
<a name="db2-sp-rollforward-status-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要です。

*database\$1name*  
オペレーションの実行対象のデータベースの名前。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-rollforward-status-usage-notes"></a>

[rdsadmin.rollforward\$1database](#db2-sp-rollforward-database) を呼び出した後、`rdsadmin.rollforward_status` を呼び出して、データベースのロールフォワードのステータスを確認できます。

このストアドプロシージャのステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

## rdsadmin.complete\$1rollforward
<a name="db2-sp-complete-rollforward"></a>

データベースを `ROLL-FORWARD PENDING` 状態からオンラインにします。

### 構文
<a name="db2-sp-complete-rollforward-syntax"></a>

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

### パラメータ
<a name="db2-sp-complete-rollforward-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要です。

*database\$1name*  
オンラインにするデータベースの名前。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-complete-rollforward-usage-notes"></a>

`complete_rollforward` を `FALSE` に設定して [rdsadmin.rollforward\$1database](#db2-sp-rollforward-database) を呼び出すと、データベースは `ROLL-FORWARD PENDING` 状態になり、オフラインになります。ロールフォワードプロセスを完了し、データベースをオンラインにするには、`rdsadmin.complete_rollforward` を呼び出します。

ロールフォワードプロセスの完了のステータスを確認する方法については、「[rdsadmin.rollforward\$1status](#db2-sp-rollforward-status)」を参照してください。

### 例
<a name="db2-sp-complete-rollforward-examples"></a>

次の例では、TESTDB データベースをオンラインにします。

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

## rdsadmin.db2pd\$1command
<a name="db2-sp-db2pd-command"></a>

RDS for Db2 データベースに関する情報を収集します。

### 構文
<a name="db2-sp-db2pd-command-syntax"></a>

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

### パラメータ
<a name="db2-sp-db2pd-command-parameters"></a>

次の入力パラメータが必要です。

*db2pd\$1cmd*  
実行する `db2pd` コマンドの名前。データ型は `varchar` です。  
パラメータはハイフンで始める必要があります。パラメータのリストについては、IBM Db2 ドキュメントの「[db2pd - Db2 データベースのモニターおよびトラブルシューティングコマンド](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2pd-monitor-troubleshoot-db2-engine-activities)」を参照してください。  
次のオプションはサポートされていません。  
+ `-addnode`
+ `-alldatabases`
+ `-alldbp`
+ `-alldbs`
+ `-allmembers`
+ `-alm_in_memory`
+ `-cfinfo`
+ `-cfpool`
+ `-command`
+ `-dbpartitionnum`
+ `-debug`
+ `-dump`
+ `-everything`
+ `-file | -o`
+ `-ha`
+ `-interactive`
+ `-member`
+ `-pages`
**注記**  
`-pages summary` がサポートされています。
+ `-pdcollection`
+ `-repeat`
+ `-stack`
+ `-totalmem`
`file` サブオプションはサポートされていません。例えば、`db2pd -db testdb -tcbstats file=tcbstat.out`。  
`stacks` オプションの使用はサポートされていません。例えば、`db2pd -edus interval=5 top=10 stacks`。

### 使用に関する注意事項
<a name="db2-sp-db2pd-command-usage-notes"></a>

このストアドプロシージャは、RDS for Db2 データベース のモニタリングとトラブルシューティングに役立つ情報を収集します。

ストアドプロシージャは、IBM `db2pd` ユーティリティを使用してさまざまなコマンドを実行します。`db2pd` ユーティリティには `SYSADM` 権限が必要です (RDS for Db2 マスターユーザーにはない権限です)。ただし、Amazon RDS ストアドプロシージャを使用すると、マスターユーザーはユーティリティを使用してさまざまなコマンドを実行できます。このユーティリティの詳細については、IBM Db2 ドキュメントの「[db2pd - Db2 データベースのモニターおよびトラブルシューティングコマンド](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2pd-monitor-troubleshoot-db2-engine-activities)」を参照してください。

出力は最大 2 GB に制限されています。

データベースに関する情報の収集状況を確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-db2pd-command-examples"></a>

**例 1: DB インスタンスのアップタイムを返す**

次の例は、RDS for Db2 DB インスタンスのアップタイムを返します。

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

**例 2: データベースのアップタイムを返す**

次の例は、`TESTDB` という名前のデータベースのアップタイムを返します。

```
db2 "call rdsadmin.db2pd_command('-db TESTDB -')"
```

**例 3: DB インスタンスのメモリ使用量を返す**

次の例は、RDS for Db2 DB インスタンスのメモリ使用量を返します。

```
db2 "call rdsadmin.db2pd_command('-dbptnmem')"
```

**例 4: DB インスタンスとデータベースのメモリセットを返す**

次の例は、RDS for Db2 DB インスタンスとデータベース `TESTDB` のメモリセットを返します。

```
db2 "call rdsadmin.db2pd_command('-inst -db TESTDB -memsets')"
```

## rdsadmin.force\$1application
<a name="db2-sp-force-application"></a>

RDS for Db2 データベースからアプリケーションを強制的に削除します。

### 構文
<a name="db2-sp-force-application-syntax"></a>

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

### パラメータ
<a name="db2-sp-force-application-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要です。

*アプリケーション*  
RDS for Db2 データベースから強制的に削除するアプリケーション。データ型は `varchar` です。有効な値: `ALL` または *application\$1handle*。  
複数のアプリケーションの名前はカンマで区切ります。例: 「*application\$1handle\$11*, *application\$1handle\$12*」。

### 使用に関する注意事項
<a name="db2-sp-force-application-usage-notes"></a>

このストアドプロシージャは、すべてのアプリケーションをデータベースから強制的に削除して、メンテナンスを実行できるようにします。

ストアドプロシージャは、IBM `FORCE APPLICATION` コマンドを使用します。`FORCE APPLICATION` コマンドには `SYSADM`、`SYSMAINT`、または `SYSCTRL` 権限が必要です (RDS for Db2 マスターユーザーにはない権限です)。ただし、Amazon RDS ストアドプロシージャを使用すると、マスターユーザーはコマンドを使用できます。詳細については、IBM Db2 ドキュメントの「[FORCE APPLICATION コマンド](https://www.ibm.com/docs/en/db2/11.1?topic=commands-force-application)」を参照してください。

データベースからのアプリケーションの強制的な削除に関する状態を確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-force-application-examples"></a>

**例 1: すべてのアプリケーションを指定する**

次の例では、すべてのアプリケーションを RDS for Db2 データベースから強制的に削除します。

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

**例 2: 複数のアプリケーションを指定する**

次の例では、RDS for Db2 データベースからアプリケーションハンドル `9991`、`8891`、`1192` を強制的に削除します。

```
db2 "call rdsadmin.force_application(
    ?,
    '9991, 8891, 1192')"
```

## rdsadmin.set\$1archive\$1log\$1retention
<a name="db2-sp-set-archive-log-retention"></a>

指定した RDS for Db2 データベースのアーカイブログファイルを保持する時間 (時間単位) を設定します。

### 構文
<a name="db2-sp-set-archive-log-retention-syntax"></a>

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

### パラメータ
<a name="db2-sp-set-archive-log-retention-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要となります。

*database\$1name*  
アーカイブログの保持を設定するデータベースの名前。データ型は `varchar` です。

*archive\$1log\$1retention\$1hours*  
アーカイブログファイルを保持する時間数。データ型は `smallint` です。デフォルトは `0` で、最大は `840` (35 日間) です。  
値が `0` の場合、Amazon RDS はアーカイブログファイルを保持しません。

### 使用に関する注意事項
<a name="db2-sp-set-archive-log-retention-usage-notes"></a>

デフォルトでは、RDS for Db2 はログを 5 分間保持します。変更データキャプチャ (CDC) の AWS DMS や IBM Q Replication などのレプリケーションツールを使用する場合は、これらのツールでログ保持を 5 分以上設定することをお勧めします。

[rdsadmin.show\$1archive\$1log\$1retention](#db2-sp-show-archive-log-retention) を呼び出すと、現在のアーカイブログ保持の設定を表示できます。

`rdsadmin` データベースに対してアーカイブログ保持の設定を構成することはできません。

### 例
<a name="db2-sp-set-archive-log-retention-examples"></a>

**例 1: 保持時間を設定する**

次の例は、`TESTDB` というデータベースのアーカイブログ保持時間を 24 時間に設定しています。

```
db2 "call rdsadmin.set_archive_log_retention(
    ?,
    'TESTDB', 
    '24')"
```

**例 2: 保持時間を無効にする**

次の例では、`TESTDB` というデータベースのアーカイブログ保持を無効にします。

```
db2 "call rdsadmin.set_archive_log_retention(
    ?,
    'TESTDB', 
    '0')"
```

## rdsadmin.show\$1archive\$1log\$1retention
<a name="db2-sp-show-archive-log-retention"></a>

指定したデータベースに関する現在のアーカイブログ保持の設定を返します。

### 構文
<a name="db2-sp-show-archive-log-retention-syntax"></a>

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

### パラメータ
<a name="db2-sp-show-archive-log-retention-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要です。

*database\$1name*  
アーカイブログ保持の設定を表示するデータベースの名前。データ型は `varchar` です。

### 例
<a name="db2-sp-show-archive-log-retention-examples"></a>

次の例は、`TESTDB` というデータベースのアーカイブログ保持の設定を示しています。

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

## rdsadmin.list\$1archive\$1log\$1information
<a name="db2-sp-list-archive-log-information"></a>

アーカイブログファイルのサイズ、作成日時、指定したデータベースの個々のログファイルの名前などの詳細を返します。また、データベース内のログファイルで使用される合計ストレージ量も返します。

### 構文
<a name="db2-sp-list-archive-log-information-syntax"></a>

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

### パラメータ
<a name="db2-sp-list-archive-log-information-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要です。

*database\$1name*  
アーカイブログ情報を一覧表示するデータベースの名前。データ型は `varchar` です。

### 例
<a name="db2-sp-list-archive-log-information-examples"></a>

次の例では、`TESTDB` というデータベースのアーカイブログ情報を返します。

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

## rdsadmin.enable\$1archive\$1log\$1copy
<a name="db2-sp-enable_archive_log_copy"></a>

RDS Db2 データベースアーカイブログの Amazon S3 へのコピーを有効にします。

### 構文
<a name="db2-sp-enable_archive_log_copy-syntax"></a>

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

### パラメータ
<a name="db2-sp-enable_archive_log_copy-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要です。

*database\$1name*  
Amazon S3 へのアーカイブログのコピーを有効にするデータベースの名前。データ型は `varchar` です。

### 例
<a name="db2-sp-enable_archive_log_copy-examples"></a>

次の例では、`TESTDB` というデータベースのアーカイブログのコピーを有効にします。

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

## rdsadmin.disable\$1archive\$1log\$1copy
<a name="db2-sp-disable_archive_log_copy"></a>

RDS Db2 データベースアーカイブログの Amazon S3 へのコピーを無効にします。

### 構文
<a name="db2-sp-disable_archive_log_copy-syntax"></a>

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

### パラメータ
<a name="db2-sp-disable_archive_log_copy-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要です。

*database\$1name*  
Amazon S3 へのアーカイブログのコピーを無効にするデータベースの名前。データ型は `varchar` です。

### 例
<a name="db2-sp-disable_archive_log_copy-examples"></a>

次の例では、`TESTDB` というデータベースのアーカイブログのコピーを無効にします。

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

## rdsadmin.fgac\$1command
<a name="db2-sp-fgac-command"></a>

きめ細かなアクセス制御 (FGAC) コマンドを実行します。

### 構文
<a name="db2-sp-fgac-command-syntax"></a>

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

### パラメータ
<a name="db2-sp-fgac-command-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要となります。

*database\$1name*  
FGAC コマンドを実行するデータベースの名前。データ型は `varchar` です。

*fgac\$1cmd*  
実行するきめ細かなアクセス制御コマンド。データ型は `varchar` です。  
次のコマンドは有効です。  
+ `ALTER MASK` – 行と列のアクセス制御 (RCAC) の既存の列マスクを変更します。
+ `ALTER PERMISSION` – RCAC の既存の行アクセス許可のプロパティを変更します。
+ `ALTER SECURITY POLICY` – RCAC の既存のセキュリティポリシーを変更します。
+ `ALTER SECURITY LABEL` – ラベルベースアクセス制御 (LBAC) の既存のセキュリティラベルのプロパティを変更します。
+ `ALTER TABLE` – RCAC または LBAC コントロールの追加など、テーブル構造を変更します。
+ `CREATE MASK` – RCAC の新しい列マスクを作成します。
+ `CREATE PERMISSION` – RCAC の新しい行アクセス許可を作成します。
+ `CREATE SECURITY LABEL` – LBAC の新しいセキュリティラベルを作成します。
+ `CREATE SECURITY POLICY` – RCAC の新しいセキュリティポリシーを作成します。
+ `DROP MASK` – 既存の列マスクを削除します。
+ `DROP PERMISSION` – 既存の行アクセス許可を削除します。
+ `DROP SECURITY LABEL` – LBAC からセキュリティラベルを削除します。
+ `DROP SECURITY POLICY` – 既存の RCAC セキュリティポリシーを削除します。
+ `GRANT EXEMPTION ON RULE` – ユーザーが特定の LBAC ルールをバイパスできるようにします。
+ `GRANT SECURITY LABEL` – LBAC セキュリティラベルをユーザーに割り当てます。
+ `REVOKE EXEMPTION ON RULE` – LBAC ルールからユーザーの免除を削除します。
+ `REVOKE SECURITY LABEL` – ユーザーから LBAC セキュリティラベルを削除します。

### 使用に関する注意事項
<a name="db2-sp-fgac-command-usage-notes"></a>

このストアドプロシージャは、RDS for Db2 DB インスタンスのデータベース内のテーブルデータへの行または列レベルでのアクセスを制御します。RDS for Db2 は、データベースで 2 種類の FGAC をサポートしています。
+ ラベルベースアクセス制御 (LBAC)
+ 行と列のアクセス制御 (RCAC)

ストアドプロシージャを呼び出す前に、以下の考慮事項を確認してください。
+ 一重引用符 (') をエスケープするには、追加の一重引用符を使用します。次の例は `'apple'`、`'banana'` および `'fruit'` をエスケープする方法を示しています。

  ```
  db2 "call rdsadmin.fgac_command(
      ?,
      'testdb',
      'CREATE SECURITY LABEL COMPONENT FRUITSET SET{''apple'',''banana''}')"
  ```

  ```
  db2 "call rdsadmin.fgac_command(
      ?, 
      'testdb', 
      'CREATE SECURITY LABEL COMPONENT FRUITTREE TREE(''fruit'' ROOT, ''apple'' UNDER ''fruit'', ''banana'' UNDER ''fruit'')')"
  ```
+ 角括弧 ([ ]) をエスケープするには、バックスラッシュ (\$1) を使用します。次の例は、`[''apple'',''banana'']` をエスケープする方法を示しています。

  ```
  db2 "call rdsadmin.fgac_command(
      ?, '
      testdb', 
      'CREATE SECURITY LABEL COMPONENT FRUITARRAY ARRAY\[''apple'',''banana''\]')"
  ```

### 例
<a name="db2-sp-fgac-command-examples"></a>

次の例はすべて、`testdb` というデータベースで FGAC コマンドを実行します。

**例 1: `FRUITSET` という名前の新しいセキュリティラベルを作成する** 

```
db2 "call rdsadmin.fgac_command(
    ?,
    'testdb',
    'CREATE SECURITY LABEL COMPONENT FRUITSET SET{''apple'',''banana''}')"
```

**例 2: `EMP_ID` が 3 未満に設定されている場合に有効になる `EMP_ID` 列の新しいマスクを作成する**

```
db2 "call rdsadmin.fgac_command(
    ?,
    'testdb',
    'CREATE MASK id_MASK ON EMPLOYEE FOR COLUMN EMP_ID RETURN CASE WHEN (EMP_ID < 3) THEN EMP_ID ELSE NULL END ENABLE')"
```

**例 3: `SESSION_USER` が `security_user` に設定されている場合に有効になる `DEPARTMENT` 列の新しいマスクを作成する** 

```
db2 "call rdsadmin.fgac_command(
    ?,
    'testdb',
    'CREATE MASK DEPARTMENT_MASK ON EMPLOYEE FOR COLUMN DEPARTMENT RETURN CASE  WHEN SESSION_USER = ''security_user'' THEN DEPARTMENT ELSE NULL END ENABLE')"
```

**例 4: `treelabel` という名前の新しいセキュリティラベルを作成する** 

```
db2 "call rdsadmin.fgac_command(
    ?,
    'testdb',
    'CREATE SECURITY LABEL COMPONENT treelabel  TREE(''COMPANY'' ROOT, ''HR'' UNDER ''COMPANY'', ''FINANCE'' UNDER ''COMPANY'', ''IT'' UNDER ''COMPANY'')')"
```

## rdsadmin.db2support\$1command
<a name="db2-sp-db2support-command"></a>

RDS for Db2 データベースに関する診断情報を収集し、Amazon S3 バケットにアップロードします。

### 構文
<a name="db2-sp-db2support-command-syntax"></a>

```
db2 "call rdsadmin.db2support_command(
    ?,
    'database_name',
    's3_bucket_name',
    's3_prefix')"
```

### パラメータ
<a name="db2-sp-db2support-command-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメータは、`?` のみを受け入れます。

次の入力パラメータが必要となります。

*database\$1name*  
診断情報を収集するデータベースの名前。データ型は `varchar` です。

*s3\$1bucket\$1name*  
診断情報をアップロードする Amazon S3 バケットの名前。データ型は `varchar` です。

*s3\$1prefix*  
RDS for Db2 が診断情報ファイルをアップロードする Amazon S3 へのパスのプレフィックス。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-db2support-command-usage-notes"></a>

このストアドプロシージャは、RDS for Db2 データベースのトラブルシューティングに役立つ診断情報を収集し、その情報を Amazon S3 バケットにアップロードします。

ストアドプロシージャでは、IBM `db2support` ユーティリティを使用して診断データを収集します。ユーティリティの詳細については、IBM Db2 ドキュメントの「[db2support - Problem analysis and environment collection tool command](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2support-problem-analysis-environment-collection-tool)」を参照してください。

ストアドプロシージャを呼び出す前に、以下の考慮事項を確認してください。
+ 診断情報ファイルを Amazon S3 にアップロードするには、統合を既に設定しておく必要があります。詳細については、「[Amazon RDS for Db2 DB インスタンスと Amazon S3 の統合](db2-s3-integration.md)」を参照してください。
+ RDS for Db2 DB インスタンスから Amazon S3 と対話できるようにするには、プライベートサブネットが使用する VPC と Amazon S3 ゲートウェイエンドポイントが必要です。詳細については、「[ステップ 1: これにより、Amazon S3 用の VPC ゲートウェイエンドポイントを作成する](db2-troubleshooting.md#db2-creating-endpoint)」および「[ステップ 2: Amazon S3 の VPC ゲートウェイエンドポイントが存在することを確認する](db2-troubleshooting.md#db2-confirming-endpoint)」を参照してください。

`rdsadmin.db2support_command` を呼び出す前に、`rdsadmin` データベースに接続する必要があります。次の例では、*master\$1username* と *master\$1password* を RDS for Db2 DB インスタンス情報に置き換えます。

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

診断情報の収集ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-db2support-command-examples"></a>

**例 1: データベースの診断情報を収集する**

次の例では、`TESTDB` というデータベースの診断情報を収集し、それをプレフィックス `diagnostics/testdb` を持つ `amzn-s3-demo-bucket` という Amazon S3 バケットにアップロードします。

```
db2 "call rdsadmin.db2support_command(
    ?,
    'TESTDB',
    'amzn-s3-demo-bucket',
    'diagnostics/testdb')"
```

**例 2: 日付ベースのプレフィックスを使用して診断情報を収集する**

次の例では、`MYDB` というデータベースの診断情報を収集し、日付ベースのプレフィックスを持つ `amzn-s3-demo-bucket` という Amazon S3 バケットにアップロードします。

```
db2 "call rdsadmin.db2support_command(
    ?,
    'MYDB',
    'amzn-s3-demo-bucket',
    'support/2024/01/15')"
```

# RDS for Db2 のストレージアクセスのストアドプロシージャ
<a name="db2-sp-managing-storage-access"></a>

このトピックで説明した組み込みのストアドプロシージャでは、Amazon S3 を使用してデータを移行する RDS for Db2 データベースのストレージアクセスを管理します。詳細については、「[Amazon S3 から Amazon RDS for Db2 への Db2 データの移行](db2-migration-load-from-s3.md)」を参照してください。

構文、パラメータ、使用上の注意、例については、以下の組み込みストアドプロシージャを参照してください。

**Topics**
+ [rdsadmin.catalog\$1storage\$1access](#db2-sp-catalog-storage-access)
+ [rdsadmin.uncatalog\$1storage\$1access](#db2-sp-uncatalog-storage-access)

## rdsadmin.catalog\$1storage\$1access
<a name="db2-sp-catalog-storage-access"></a>

Db2 データファイルを使用して Amazon S3 バケットにアクセスするためのストレージエイリアスをカタログ化します。

### 構文
<a name="db2-sp-catalog-storage-access-syntax"></a>

```
db2 "call rdsadmin.catalog_storage_access(
    ?,
    'alias',
    's3_bucket_name',
    'grantee_type',
    'grantee'
    )"
```

### パラメータ
<a name="db2-sp-catalog-storage-access-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。データ型は `varchar` です。

次の入力パラメータが必要となります。

alias**  
Amazon S3 バケット内のリモートストレージにアクセスするためのエイリアス名。データ型は `varchar` です。

*s3\$1bucket\$1name*  
データが常駐する Amazon S3 バケットの名前。データ型は `varchar` です。

*grantee\$1type*  
承認を受け取る受領者のタイプ。データ型は `varchar` です。有効な値: `USER`、`GROUP`。

*grantee*  
承認を受け取るユーザーまたはグループ。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-catalog-storage-access-usage-notes"></a>

Amazon RDS には、RDS for Db2 DB インスタンスに追加した IAM ロールにカタログ化されたエイリアスが含まれます。DB インスタンスから IAM ロールを削除すると、Amazon RDS はエイリアスを削除します。詳細については、「[Amazon S3 から Amazon RDS for Db2 への Db2 データの移行](db2-migration-load-from-s3.md)」を参照してください。

エイリアスのカタログ化のステータスの確認については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-catalog-storage-access-examples"></a>

次の例では、`SAMPLE` というエイリアスを登録します。ユーザー `jorge_souza` には、`amzn-s3-demo-bucket` という名前の Amazon S3 バケットへのアクセス権が付与されます。

```
db2 "call rdsadmin.catalog_storage_access(
    ?,
    'SAMPLE', 
    'amzn-s3-demo-bucket', 
    'USER', 
    'jorge_souza')"
```

## rdsadmin.uncatalog\$1storage\$1access
<a name="db2-sp-uncatalog-storage-access"></a>

ストレージアクセスエイリアスを削除します。

### 構文
<a name="db2-sp-uncatalog-storage-access-syntax"></a>

```
db2 "call rdsadmin.uncatalog_storage_access(
    ?,
    'alias')"
```

### パラメータ
<a name="db2-sp-uncatalog-storage-access-parameters"></a>

次のアウトプットパラメータが必要です。

?  
エラーメッセージを出力するパラメータマーカー。データ型は `varchar` です。

次の入力パラメータが必要です。

alias**  
削除するストレージエイリアスの名前。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-uncatalog-storage-access-usage-notes"></a>

エイリアスの削除ステータスの確認については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-uncatalog-storage-access-examples"></a>

次の例では、`SAMPLE` というエイリアスを削除します。このエイリアスは、関連付けられていた Amazon S3 バケットへのアクセスを提供しなくなりました。

```
db2 "call rdsadmin.uncatalog_storage_access(
    ?,
    'SAMPLE')"
```

# RDS for Db2 のテーブルスペースのストアドプロシージャ
<a name="db2-sp-managing-tablespaces"></a>

このトピックで説明した組み込みのストアドプロシージャは、Amazon RDS for Db2 データベースのテーブルスペースを管理します。これらのプロシージャを実行する場合、マスターユーザーはまず `rdsadmin` データベースに接続する必要があります。

これらのストアドプロシージャは、さまざまなタスクで使用されます。これはすべてを網羅したリストではありません。
+ [テーブルスペースの一般的なタスク](db2-managing-tablespaces.md)
+ [パフォーマンスレポートの生成](db2-managing-databases.md#db2-generating-performance-reports)
+ [db2look を使用してデータベースメタデータをコピーする](db2-native-db2-tools-db2look.md)
+ [IBM Db2 Data Management Console 用のリポジトリデータベースの作成](db2-connecting-with-ibm-data-management-console.md#db2-creating-repo-db-monitoring-dmc)

構文、パラメータ、使用上の注意、例については、以下の組み込みストアドプロシージャを参照してください。

**Topics**
+ [rdsadmin.create\$1tablespace](#db2-sp-create-tablespace)
+ [rdsadmin.alter\$1tablespace](#db2-sp-alter-tablespace)
+ [rdsadmin.rename\$1tablespace](#db2-sp-rename-tablespace)
+ [rdsadmin.drop\$1tablespace](#db2-sp-drop-tablespace)

## rdsadmin.create\$1tablespace
<a name="db2-sp-create-tablespace"></a>

テーブルスペースを作成します。

### 構文
<a name="db2-sp-create-tablespace-syntax"></a>

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

### パラメータ
<a name="db2-sp-create-tablespace.parameters"></a>

以下のパラメータは必須です。

*database\$1name*  
テーブルスペースを作成するデータベースの名前。データ型は `varchar` です。

*tablespace\$1name*  
作成するテーブルスペースの名前。データ型は `varchar` です。  
テーブルスペース名には以下の制限があります。  
+ このデータベース内の既存のテーブルスペース名と同じものは使用できません。
+ 使用できるのは `_$#@a-zA-Z0-9` の文字のみです。
+ `_` または `$` で始めることはできません。
+ `SYS` で始めることはできません。

以下のパラメータはオプションです。

*buffer\$1pool\$1name*  
テーブルスペースを割り当てるバッファプールの名前。データ型は `varchar` です。デフォルトは空の文字列です。  
テーブルスペースに関連付けるには、同じページサイズのバッファプールが既に存在している必要があります。

*tablespace\$1page\$1size*  
テーブルスペースのページサイズ (バイト単位)。データ型は `integer` です。有効な値は、`4096`、`8192`、`16384`、`32768` です。デフォルトは、[rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database) を呼び出してデータベースを作成した際に使用したページサイズです。  
Amazon RDS は、4 KiB、8 KiB、16 KiB のページでの書き込みの原子性をサポートしています。これとは対照的に、32 KiB のページでは、Torn Write、つまり一部のデータしかディスクに書き込まれないというリスクが発生します。32 KiB のページを使用している場合は、ポイントインタイムリカバリと自動バックアップを有効にすることをお勧めします。有効にしない場合、データの不整合があるページから復元できなくなるリスクが発生します。詳細については、「[バックアップの概要](USER_WorkingWithAutomatedBackups.md)」および「[Amazon RDS の DB インスタンスを特定の時点に復元する](USER_PIT.md)」を参照してください。

*tablespace\$1initial\$1size*  
テーブルスペースの初期サイズ (キロバイト (KB) 単位)。データ型は `integer` です。有効な値: `48` 以上。デフォルトは null です。  
値を設定しない場合、Db2 が適切な値を設定します。  
一時的なテーブルスペースはシステムが管理するため、このパラメータは一時テーブルスペースには適用されません。

*tablespace\$1increase\$1size*  
テーブルスペースがフルになったときにテーブルスペースを増やす割合。データ型は `integer` です。有効値: `1`～`100`。デフォルトは null です。  
値を設定しない場合、Db2 が適切な値を設定します。  
一時的なテーブルスペースはシステムが管理するため、このパラメータは一時テーブルスペースには適用されません。

*tablespace\$1type*  
テーブルスペースのタイプ。データ型は `char` です。有効な値: `U` (ユーザーデータの場合)、`T` (ユーザー一時データの場合)、または `S` (システム一時データの場合)。デフォルトは `U` です。

*tablespace\$1prefetch\$1size*  
テーブルスペースのプリフェッチページサイズ。データ型は `char` です。有効な値: `AUTOMATIC` (大文字と小文字を区別しない)、または 32767 以下のゼロ以外の正の整数。

### 使用に関する注意事項
<a name="db2-sp-create-tablespace-usage-notes"></a>

RDS for Db2 は常にデータ用の大規模なデータベースを作成します。

テーブルスペースの作成ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-create-tablespace-examples"></a>

**例 1: テーブルスペースを作成してバッファプールを割り当てる**

次の例では、`SP8` という名前のテーブルスペースを作成し、`TESTDB` という名前のデータベースに `BP8` という名前のバッファプールを割り当てます。このテーブルスペースでは、初期テーブルスペースページサイズは 4,096 バイト、初期テーブルスペースは 1,000 KB、テーブルサイズの増加は 50% に設定されています。

```
db2 "call rdsadmin.create_tablespace(
    'TESTDB',
    'SP8',
    'BP8',
    4096,
    1000,
    50)"
```

**例 2: 一時テーブルスペースを作成してバッファプールを割り当てる**

次の例では、`SP8` という名前の一時テーブルスペースを作成します。`TESTDB` というデータベースに対して、サイズが 8 KiB の `BP8` というバッファプールを割り当てます。

```
db2 "call rdsadmin.create_tablespace(
    'TESTDB',
    'SP8',
    'BP8', 
    8192, 
    NULL, 
    NULL, 
    'T')"
```

**例 3: テーブルスペースを作成し、プリフェッチページサイズを割り当てる**

次の例では、`TESTDB` というデータベースの `SP8` というテーブルスペースを作成します。テーブルスペースの初期テーブルスペース増加サイズは `50`、プリフェッチページサイズは `800` です。

```
db2 "call rdsadmin.create_tablespace(
    'TESTDB',
    'SP8',
    NULL,
    NULL,
    NULL,
    50,
    NULL,
    '800')"
```

## rdsadmin.alter\$1tablespace
<a name="db2-sp-alter-tablespace"></a>

テーブルスペースを変更します。

### 構文
<a name="db2-sp-alter-tablespace-syntax"></a>

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

### パラメータ
<a name="db2-sp-alter-tablespace-parameters"></a>

以下のパラメータは必須です。

*database\$1name*  
テーブルスペースを使用するデータベースの名前。データ型は `varchar` です。

*tablespace\$1name*  
変更するテーブルスペースの名前。データ型は `varchar` です。

以下のパラメータはオプションです。

*buffer\$1pool\$1name*   
テーブルスペースを割り当てるバッファプールの名前。データ型は `varchar` です。デフォルトは空の文字列です。  
テーブルスペースに関連付けるには、同じページサイズのバッファプールが既に存在している必要があります。

*tablespace\$1increase\$1size*  
テーブルスペースがフルになったときにテーブルスペースを増やす割合。データ型は `integer` です。有効値: `1`～`100`。デフォルトは `0` です。

*max\$1size*  
テーブルスペースの最大サイズ。データ型は `varchar` です。有効な値: *integer* `K` \$1 `M` \$1 `G`、または `NONE`。デフォルトは `NONE` です。

*reduce\$1max*  
ハイウォーターマークを上限まで減らすかどうかを指定します。データ型は `char` です。デフォルトは `N` です。

*reduce\$1stop*  
前の `reduce_max`または `reduce_value` コマンドを中断するかどうかを指定します。データ型は `char` です。デフォルトは `N` です。

*reduce\$1value*  
テーブルスペースのハイウォーターマークを減らす際の数または割合。データ型は `varchar` です。有効な値: *integer* `K`\$1 `M` \$1 `G`、または `1`～`100`。デフォルトは `N` です。

*lower\$1high\$1water*  
`ALTER TABLESPACE LOWER HIGH WATER MARK` コマンドを実行するかどうかを指定します。データ型は `char` です。デフォルトは `N` です。

*lower\$1high\$1water\$1stop*  
`ALTER TABLESPACE LOWER HIGH WATER MARK STOP` コマンドを実行するかどうかを指定します。データ型は `char` です。デフォルトは `N` です。

*switch\$1online*  
`ALTER TABLESPACE SWITCH ONLINE` コマンドを実行するかどうかを指定します。データ型は `char` です。デフォルトは `N` です。

*tablespace\$1prefetch\$1size*  
テーブルスペースのプリフェッチページサイズ。データ型は `char` です。有効な値: `AUTOMATIC` (大文字と小文字を区別しない)、または 32767 以下のゼロ以外の正の整数。  
このパラメータは、`buffer_pool_name`、`table_increase_size`、`max_size`、`switch_online` でのみ機能します。`reduce_max`、`reduce_stop`、`reduce_value`、`lower_high_water`、`lower_high_water_stop` では機能しません。

### 使用に関する注意事項
<a name="db2-sp-alter-tablespace-usage-notes"></a>

ストアドプロシージャを呼び出す前に、以下の考慮事項を確認してください。
+ `rdsadmin.alter_tablespace` ストアドプロシージャは、ユーザーの一時データに対してテーブルスペースの `tablespace_type` を `T` に設定した場合は機能しません。
+ オプションパラメータ `reduce_max`、`reduce_stop`、`reduce_value`、`lower_high_water`、`lower_high_water_stop`、`switch_online` は、相互に排他的です。`rdsadmin.alter_tablespace` コマンドで、`buffer_pool_name` などの他のオプションパラメータと組み合わせることはできません。詳細については、「[Statement not valid](db2-troubleshooting.md#alter-tablespace-sp-statement-not-valid)」を参照してください。

テーブルスペースの変更ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

ストアドプロシージャを呼び出すときに返されるエラーメッセージについては、「[ストアドプロシージャエラー](db2-troubleshooting.md#db2-troubleshooting-stored-procedures)」を参照してください。

### 例
<a name="db2-sp-alter-tablespace-examples"></a>

**例 1: ハイウォーターマークを下げる**

次の例では、`SP8` というテーブルスペースを変更し、`BP8` というデータベースに `TESTDB` というバッファプールを割り当てて、ハイウォーターマークを下げます。

```
db2 "call rdsadmin.alter_tablespace(
    'TESTDB',
    'SP8',
    'BP8', 
    NULL, 
    NULL, 
    'Y')"
```

**例 2: ハイウォーターマークを減らす**

次の例では、データベース `TBSP_TEST` の `TESTDB` というテーブルスペースで `REDUCE MAX` コマンドを実行します。

```
db2 "call rdsadmin.alter_tablespace(
    'TESTDB',
    'TBSP_TEST',
    NULL,
    NULL,
    NULL,
    'Y')"
```

**例 3: コマンドを中断して高いウォーターマークを減らす**

次の例では、データベース `TBSP_TEST` の `TESTDB` というテーブルスペースで `REDUCE STOP` コマンドを実行します。

```
db2 "call rdsadmin.alter_tablespace(
    'TESTDB',
    'TBSP_TEST',
    NULL,
    NULL,
    NULL,
    NULL,
    'Y')"
```

**例 4: 既存のプリフェッチページサイズの変更**

次の例では、`TSBP_TEST` というテーブルスペースに対して `64` コマンドを実行し、既存のプリフェッチページサイズを `ALTER TABLESPACE SWITCH ONLINE` に変更します。

```
db2 "call rdsadmin.alter_tablespace(
    'TESTDB',
    'TBSP_TEST',
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    ‘Y’,
    ‘64’)"
```

## rdsadmin.rename\$1tablespace
<a name="db2-sp-rename-tablespace"></a>

テーブルスペース名を変更します。

### 構文
<a name="db2-sp-rename-tablespace-syntax"></a>

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

### パラメータ
<a name="db2-sp-rename-tablespace-parameters"></a>

以下のパラメータは必須です。

?  
エラーメッセージを出力するパラメータマーカー。このパラメーターが受け入れるのは、? のみです。

*database\$1name*  
テーブルスペースが属するデータベースの名前。データ型は `varchar` です。

*source\$1tablespace\$1name*  
変更するテーブルスペースの名前。データ型は `varchar` です。

*target\$1tablespace\$1name*  
新しいテーブルスペースの名前。データ型は `varchar` です。  
新しい名前には以下の制限があります。  
+ 既存のテーブルスペース名と同じものは使用できません。
+ 使用できるのは `_$#@a-zA-Z0-9` の文字のみです。
+ `_` または `$` で始めることはできません。
+ `SYS` で始めることはできません。

### 使用に関する注意事項
<a name="db2-sp-rename-tablespace-usage-notes"></a>

テーブルスペースの名前変更ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

`rdsadmin` データベースに属するテーブルスペースの名前を変更することはできません。

### 例
<a name="db2-sp-rename-tablespace-examples"></a>

次の例は、`TESTDB` というデータベース内の `SP8` という名前のテーブルスペースを `SP9` に変更します。

```
db2 "call rdsadmin.rename_tablespace(
    ?,
    'TESTDB',
    'SP8',
    'SP9')"
```

## rdsadmin.drop\$1tablespace
<a name="db2-sp-drop-tablespace"></a>

テーブルスペースを削除します。

### 構文
<a name="db2-sp-drop-tablespace-syntax"></a>

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

### パラメータ
<a name="db2-sp-drop-tablespace-parameters"></a>

以下のパラメータは必須です。

*database\$1name*  
テーブルスペースが属するデータベースの名前。データ型は `varchar` です。

*tablespace\$1name*  
削除するテーブルスペースの名前。データ型は `varchar` です。

### 使用に関する注意事項
<a name="db2-sp-drop-tablespace-usage-notes"></a>

テーブルスペースの削除ステータスを確認する方法については、「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

### 例
<a name="db2-sp-drop-tablespace-examples"></a>

次の例では、`TESTDB` というデータベースの `SP8` というテーブルスペースを削除します。

```
db2 "call rdsadmin.drop_tablespace(
    'TESTDB',
    'SP8')"
```

# Amazon RDS for Db2 ユーザー定義関数リファレンス
<a name="db2-user-defined-functions"></a>

Db2 エンジンを実行している Amazon RDS DB インスタンスで使用できるユーザー定義関数について説明します。

**Topics**
+ [rdsadmin.get\$1task\$1status](#db2-udf-get-task-status)
+ [rdsadmin.list\$1databases](#db2-udf-list-databases)
+ [rdsadmin.list\$1modifiable\$1db\$1params](#db2-udf-list-modi-db-params)

## rdsadmin.get\$1task\$1status
<a name="db2-udf-get-task-status"></a>

タスクのステータスを返します。

### 構文
<a name="db2-udf-get-task-status-syntax"></a>

```
db2 "select task_id, task_type, database_name, lifecycle,
    varchar(bson_to_json(task_input_params), 500) as task_params,
    cast(task_output as varchar(500)) as task_output
    from table(rdsadmin.get_task_status(task_id,'database_name','task_type'))"
```

### パラメータ
<a name="db2-udf-get-task-status-parameters"></a>

以下のパラメータはオプションです。パラメータを指定しない場合、ユーザー定義関数はすべてのデータベースのすべてのタスクのステータスを返します。Amazon RDS は、タスク履歴を 35 日間保持します。

*task\$1id*  
実行中のタスクの ID。この ID は、タスクの実行時に返されます。デフォルト: `0`。

*database\$1name*  
タスクが実行されているデータベースの名前。

*task\$1type*  
クエリするタスクのタイプ。有効な値: `ADD_GROUPS`、`ADD_USER`、`ALTER_BUFFERPOOL`、`ALTER_TABLESPACE`、`CHANGE_PASSWORD`、`COMPLETE_ROLLFORWARD`、`CREATE_BUFFERPOOL`、`CREATE_DATABASE`、`CREATE_ROLE`、`CREATE_TABLESPACE`、`DROP_BUFFERPOOL`、`DROP_DATABASE`、`DROP_TABLESPACE`、`LIST_USERS`、`REMOVE_GROUPS`、`REMOVE_USER`、`RESTORE_DB`、`ROLLFORWARD_DB_LOG`、`ROLLFORWARD_STATUS`、`UPDATE_DB_PARAM`。

### 使用に関する注意事項
<a name="db2-udf-get-task-status-usage-notes"></a>

`rdsadmin.get_task_status` ユーザー定義関数を使用して、Amazon RDS for Db2 の以下のタスクのステータスを確認できます。これはすべてを網羅したリストではありません。
+ バッファプールの作成、変更、削除
+ テーブルスペースの作成、変更、削除
+ データベースの作成または削除
+ Amazon S3 からのデータベースバックアップの復元
+ Amazon S3 からのデータベースログのロールフォワード

### 例
<a name="db2-udf-get-task-status-examples"></a>

次の例では、 `rdsadmin.get_task_status` が呼び出されたときに返される列を表示します。

```
db2 "describe select * from table(rdsadmin.get_task_status())"
```

次の例では、すべてのタスクのステータスを一覧表示します。

```
db2 "select task_id, task_type, database_name, lifecycle, 
    varchar(bson_to_json(task_input_params), 500) as task_params, 
    cast(task_output as varchar(500)) as task_output 
    from table(rdsadmin.get_task_status(null,null,null))"
```

次の例では、特定のタスクのステータスを一覧表示します。

```
db2 "select task_id, task_type, database_name, 
    varchar(bson_to_json(task_input_params), 500) as task_params 
    from table(rdsadmin.get_task_status(1,null,null))"
```

次の例では、特定のタスクとデータベースのステータスを一覧表示します。

```
db2 "select task_id, task_type, database_name, 
    varchar(bson_to_json(task_input_params), 500) as task_params 
    from table(rdsadmin.get_task_status(2,'SAMPLE',null))"
```

次の例では、`ADD_GROUPS` タスクのステータスを一覧表示します。

```
db2 "select task_id, task_type, database_name, 
    varchar(bson_to_json(task_input_params), 500) as task_params 
    from table(rdsadmin.get_task_status(null,null,'add_groups'))"
```

次の例では、特定のデータベースのすべてのタスクのステータスを一覧表示します。

```
db2 "select task_id, task_type, database_name, 
    varchar(bson_to_json(task_input_params), 500) as task_params 
    from table(rdsadmin.get_task_status(null,'testdb', null))"
```

次の例では、JSON 値を列として出力します。

```
db2 "select varchar(r.task_type,25) as task_type, varchar(r.lifecycle,10) as lifecycle, r.created_at, u.* from 
    table(rdsadmin.get_task_status(null,null,'restore_db')) as r, json_table(r.task_input_params, 'strict $' columns(s3_prefix varchar(500) 
    null on empty, s3_bucket_name varchar(500) null on empty) error on error ) as U"
```

### 応答
<a name="db2-udf-get-task-status-response"></a>

`rdsadmin.get_task_status` ユーザー定義関数は次の列を返します。

`TASK_ID`  
タスクの ID。

`TASK_TYPE`  
入力パラメータによって異なります。  
+ `ADD_GROUPS` – グループを追加します。
+ `ADD_USER` – ユーザーを追加します。
+ `ALTER_BUFFERPOOL` – バッファプールを変更します。
+ `ALTER_TABLESPACE` – テーブルスペースを変更します。
+ `CHANGE_PASSWORD ` – ユーザーのパスワードを変更します。
+ `COMPLETE_ROLLFORWARD` – `rdsadmin.rollforward_database` タスクを完了し、データベースをアクティブにします。
+ `CREATE_BUFFERPOOL` – バッファプールを作成します。
+ `CREATE_DATABASE` – データベースを作成します。
+ `CREATE_ROLE` – ユーザーの Db2 ロールを作成します。
+ `CREATE_TABLESPACE` – テーブルスペースを作成します。
+ `DROP_BUFFERPOOL` – バッファプールを削除します。
+ `DROP_DATABASE` – データベースを削除します。
+ `DROP_TABLESPACE` – テーブルスペースを削除します。
+ `LIST_USERS` – すべてのユーザーを一覧表示します。
+ `REMOVE_GROUPS` – グループを削除します。
+ `REMOVE_USER` – ユーザーを削除します。
+ `RESTORE_DB` – データベースを完全に復元します。
+ `ROLLFORWARD_DB_LOG` – データベースログに対して `rdsadmin.rollforward_database` タスクを実行します。
+ `ROLLFORWARD_STATUS ` – `rdsadmin.rollforward_database` タスクのステータスを返します。
+ `UPDATE_DB_PARAM` – データパラメータを更新します。

`DATABASE_NAME`  
タスクが関連付けられているデータベースの名前。

`COMPLETED_WORK_BYTES`  
タスクによって復元されたバイト数。

`DURATION_MINS`  
タスクを完了するのにかかる時間。

`LIFECYCLE`  
タスクのステータス。想定されるステータス:  
+ `CREATED` – タスクが Amazon RDS に送信されると、Amazon RDS ではステータスを `CREATED` に設定します。
+ `IN_PROGRESS` - タスクがスタートすると、Amazon RDS ではステータスを `IN_PROGRESS` に設定します。ステータスが `CREATED` から `IN_PROGRESS` に変わるまで、最大 5 分かかることがあります。
+ `SUCCESS` - タスクが完了すると、Amazon RDS ではステータスを `SUCCESS` に設定します。
+ `ERROR` – 復元タスクが失敗した場合、Amazon RDS ではステータスを `ERROR` に設定します。エラーの詳細については、「`TASK_OUPUT`」を参照してください。

`CREATED_BY`  
コマンドを作成した `authid`。

`CREATED_AT`  
タスクが作成された日時。

`LAST_UPDATED_AT`  
タスクが最終更新された日時。

`TASK_INPUT_PARAMS`  
パラメータはタスクタイプによって異なります。すべての入力パラメータは JSON オブジェクトとして表されます。例えば、`RESTORE_DB` タスクの JSON キーは次のとおりです。  
+ `DBNAME`
+ `RESTORE_TIMESTAMP`
+ `S3_BUCKET_NAME`
+ `S3_PREFIX`

`TASK_OUTPUT`  
タスクに関する追加情報。ネイティブ復元中ににエラーが発生した場合、この列にエラーに関する情報が含まれます。

### レスポンスの例
<a name="db2-udf-get-task-status-response-examples"></a>

次のレスポンスの例は、 `TESTJP` というデータベースが正常に作成されたことを示しています。詳細については、[rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database) ストアドプロシージャを参照してください。

```
`1 SUCCESS CREATE_DATABASE RDSDB 2023-10-24-18.32.44.962689 2023-10-24-18.34.50.038523 1 TESTJP { "CODESET" : "IBM-437", "TERRITORY" : "JP", "COLLATION" : "SYSTEM", "AUTOCONFIGURE_CMD" : "", "PAGESIZE" : 4096 } 
2023-10-24-18.33.30.079048 Task execution has started.

2023-10-24-18.34.50.038523 Task execution has completed successfully`.
```

次のレスポンスの例は、データベースの削除が失敗した理由を説明しています。詳細については、[rdsadmin.drop\$1database](db2-sp-managing-databases.md#db2-sp-drop-database) ストアドプロシージャを参照してください。

```
1 ERROR DROP_DATABASE RDSDB 2023-10-10-16.33.03.744122 2023-10-10-16.33.30.143797 - 2023-10-10-16.33.30.098857 Task execution has started.
2023-10-10-16.33.30.143797 Caught exception during executing task id 1, Aborting task. 
Reason Dropping database created via rds CreateDBInstance api is not allowed. 
Only database created using rdsadmin.create_database can be dropped
```

次のレスポンスの例は、データベースの正常な復元を示しています。詳細については、[rdsadmin.restore\$1database](db2-sp-managing-databases.md#db2-sp-restore-database) ストアドプロシージャを参照してください。

```
1 RESTORE_DB  SAMPLE  SUCCESS   
                                         
{ "S3_BUCKET_NAME" : "amzn-s3-demo-bucket", "S3_PREFIX" : "SAMPLE.0.rdsdb3.DBPART000.20230413183211.001", "RESTORE_TIMESTAMP" : "20230413183211", "BACKUP_TYPE" : "offline" }                                                                                                                                                                                                                                                                                                                                                   

2023-11-06-18.31.03.115795 Task execution has started.
2023-11-06-18.31.04.300231 Preparing to download
2023-11-06-18.31.08.368827 Download complete. Starting Restore
2023-11-06-18.33.13.891356 Task Completed Successfully
```

## rdsadmin.list\$1databases
<a name="db2-udf-list-databases"></a>

RDS for Db2 DB インスタンスで実行されているすべてのデータベースのリストを返します。

### 構文
<a name="db2-udf-list-databases-syntax"></a>

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

### 使用に関する注意事項
<a name="db2-udf-list-databases-usage-notes"></a>

このユーザー定義関数には、データベースの状態がアクティブか非アクティブかを指定しません。

リストにデータベースが表示されない場合は、[rdsadmin.get\$1task\$1status](#db2-udf-get-task-status) ユーザー定義関数を呼び出してエラーメッセージを探してください。

### 応答
<a name="db2-udf-list-databases-response"></a>

`rdsadmin.list_databases` ユーザー定義関数は次の列を返します。

`DATABASE_NAME`  
データベースの名前。

`CREATE_TIME`  
データベースが作成された日時。

`DATABASE_UNIQUE_ID`  
Db2 データベースを一意に識別するために RDS が作成した GUID。

`ARCHIVE_LOG_RETENTION_HOUR`  
アーカイブログファイルを保持する時間数。

`ARCHIVE_LOG_COPY`  
データベースの機能が ENABLED か DISABLED かを表示します。

`ARCHIVE_LOG_LAST_UPLOAD_FILE `  
S3 にアップロードされた最後のアーカイブログを示します。

`ARCHIVE_LOG_LAST_UPLOAD_FILE_TIME`  
ログファイルがアーカイブされた時刻を示します。

`ARCHIVE_LOG_COPY_STATUS`  
アーカイブログのコピーのステータスを表示します。  
UPLOADING: アーカイブログファイルが S3 にアップロードされていることを示します。  
CONFIGURATION\$1ERROR : 注意が必要な設定の問題があることを示します。  
詳細なエラーを表示するには、Db インスタンスの RDS イベントメッセージを参照してください。イベントメッセージは、「[Amazon RDS イベントの表示](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ListEvents.html)」で表示できます。

### レスポンスの例
<a name="db2-udf-list-databases-response-examples"></a>

次のレスポンスの例は、データベースのリストと、それらの作成時刻を示しています。`rdsadmin` は Amazon RDS が管理し、常に出力に表示されるデータベースです。

```
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                                         0 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         -                            -                                 -
...
```

## rdsadmin.list\$1modifiable\$1db\$1params
<a name="db2-udf-list-modi-db-params"></a>

変更可能なすべてのデータベース設定パラメータのリストを返します。

### 構文
<a name="db2-udf-list-modi-db-params-syntax"></a>

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

### 使用に関する注意事項
<a name="db2-udf-list-modi-db-params-usage-notes"></a>

このユーザー定義関数は、変更可能なデータベースパラメータの選択したリストを表示します。これらのパラメータは、ストアドプロシージャ [rdsadmin.update\$1db\$1param](db2-sp-managing-databases.md#db2-sp-update-db-param) を使用して更新できます。

このリストに含まれていないデータベースパラメータは制限されており、変更できません。

### 応答
<a name="db2-udf-list-modi-db-params-response"></a>

`rdsadmin.list_modifiable_db_params` ユーザー定義関数は次の列を返します。

`PARAM_NAME`  
変更できるパラメータの名前。

`DEFAULT_VALUE`  
データベース作成時のデフォルトのパラメータ値。

`RESTART_REQUIRED`  
データベースのリサイクルが必要な場合、または必要でない場合。  
 Y = はい、データベースの再起動が必要です。  
 N = いいえ。データベースの再起動は必要ありません。

### レスポンスの例
<a name="db2-udf-list-modi-db-params-response-examples"></a>

以下は、予想される出力のサンプル (一部抜粋) リストです。

```
PARAM_NAME             DEFAULT_VALUE RESTART_REQUIRED
---------------------- ------------- ----------------
ACT_SORTMEM_LIMIT      NONE          N
ARCHRETRYDELAY         20            N
AUTHN_CACHE_DURATION   3             N
AUTHN_CACHE_USERS      0             N
AUTO_CG_STATS          OFF           N
...
```

# Amazon RDS for Db2 のトラブルシューティング
<a name="db2-troubleshooting"></a>

以降のコンテンツは、RDS for Db2 で発生する可能性のある問題のトラブルシューティングに役立ちます。

Amazon RDS の一般的な問題のトラブルシューティングの詳細については、「[Amazon RDS のトラブルシューティング](CHAP_Troubleshooting.md)」を参照してください。

**Topics**
+ [データベース接続エラー](#db2-database-connection-error)
+ [ファイル I/O エラー](#db2-file-input-output-error)
+ [ストアドプロシージャエラー](#db2-troubleshooting-stored-procedures)

## データベース接続エラー
<a name="db2-database-connection-error"></a>

次のエラーメッセージは、サーバーに十分なメモリがないため、データベースの接続に失敗したことを示しています。

```
SQL1643C The database manager failed to allocate shared memory because the
database manager instance memory limit has been reached.
```

DB インスタンスのメモリを増やしてから、データベースに再度接続してください。データベースのメモリ使用量と推奨事項については、「[Amazon RDS for Db2 DB インスタンス上の複数のデータベース](db2-multiple-databases.md)」を参照してください。RDS for Db2 データベースのメモリを更新する方法については、「[rdsadmin.update\$1db\$1param](db2-sp-managing-databases.md#db2-sp-update-db-param)」を参照してください。

## ファイル I/O エラー
<a name="db2-file-input-output-error"></a>

`LOAD` コマンドを使用したり、`rdsadmin.restore_database` ストアドプロシージャを呼び出したりすると、さまざまな理由によるファイル I/O エラーが発生することがあります。

例えば、次の `LOAD` コマンドを実行したとします。

```
db2 "call sysproc.admin_cmd('load from "DB2REMOTE://s3test//public/datapump/t6.del" of del lobs from "DB2REMOTE://s3test/public/datapump/" modified by lobsinfile MESSAGES ON SERVER insert INTO RDSDB.t6 nonrecoverable ')"
```

`LOAD` コマンドは次のメッセージを返します。

```
  Result set 1
  --------------

  ROWS_READ            ROWS_SKIPPED         ROWS_LOADED          ROWS_REJECTED        ROWS_DELETED         ROWS_COMMITTED       ROWS_PARTITIONED     NUM_AGENTINFO_ENTRIES MSG_RETRIEVAL                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    MSG_REMOVAL
  -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                     -                    -                    -                    -                    -                    -                    -                     - SELECT SQLCODE, MSG FROM TABLE(SYSPROC.ADMIN_GET_MSGS('1594987316_285548770')) AS MSG                                                                                                                                                                                                                                                                                                                                                                                                                                            CALL SYSPROC.ADMIN_REMOVE_MSGS('1594987316_285548770')

  1 record(s) selected.

  Return Status = 0

SQL20397W  Routine "SYSPROC.ADMIN_CMD" execution has completed, but at least
one error, "SQL1652", was encountered during the execution. More information
is available.  SQLSTATE=01H52
```

エラーメッセージを表示するには、前のレスポンスで提案したように SQL コマンドを実行します。`SELECT SQLCODE, MSG FROM TABLE(SYSPROC.ADMIN_GET_MSGS('1594987316_285548770')) AS MSG` は次のメッセージを返します。

```
SQLCODE   MSG
--------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
SQL2025N  An I/O error occurred. Error code “438”. Media on which this error occurred: “DB2REMOTE://s3test//public/datapump/t6.del”

SQL3500W The utility is beginning the LOAD phase at time “07/05/2024 21:21:48.082954”

SQL1652N File I/O error occurred
```

Db2 診断ログには、次のようなログファイルが含まれています。

```
2024-07-05-21.20.09.440609+000 I1191321E864          LEVEL: Error
PID     : 2710                 TID : 139619509200640 PROC : db2sysc 0
INSTANCE: rdsdb                NODE : 000            DB   : NTP
APPHDL  : 0-12180              APPID: xxx.xx.x.xxx.xxxxx.xxxxxxxxxxxx
UOWID   : 5                    ACTID: 1
AUTHID  : ADMIN                HOSTNAME: ip-xx-xx-x-xx
EDUID   : 147                  EDUNAME: db2lmr 0
FUNCTION: DB2 UDB, oper system services, sqloS3Client_GetObjectInfo, probe:219
MESSAGE : ZRC=0x870F01B6=-2029059658=SQLO_FAILED
          "An unexpected error is encountered"
DATA #1 : String, 29 bytes
S3:HeadObject request failed.
DATA #2 : signed integer, 4 bytes
99
DATA #3 : String, 0 bytes
Object not dumped: Address: 0x00007EFC08A9AE38 Size: 0 Reason: Zero-length data
DATA #4 : String, 33 bytes
curlCode: 28, Timeout was reached
```

このファイル I/O エラーは、さまざまなシナリオによって発生する可能性があります。例えば、RDS for Db2 DB インスタンスの作成に使用したセキュリティグループの VPC に、Amazon S3 ゲートウェイエンドポイントがない可能性があります。このエンドポイントがない場合、RDS for Db2 は Amazon S3 にアクセスできません。RDS for Db2 DB インスタンスがプライベートサブネットに存在する場合は、Amazon S3 ゲートウェイエンドポイントが必要です。Amazon RDS サブネットグループを設定することで、DB インスタンスがプライベートとパブリックのどちらのサブネットを使用するかを指定できます。詳細については、「[DB サブネットグループの使用](USER_VPC.WorkingWithRDSInstanceinaVPC.md#USER_VPC.Subnets)」を参照してください。

**Topics**
+ [ステップ 1: これにより、Amazon S3 用の VPC ゲートウェイエンドポイントを作成する](#db2-creating-endpoint)
+ [ステップ 2: Amazon S3 の VPC ゲートウェイエンドポイントが存在することを確認する](#db2-confirming-endpoint)

### ステップ 1: これにより、Amazon S3 用の VPC ゲートウェイエンドポイントを作成する
<a name="db2-creating-endpoint"></a>

RDS for Db2 DB インスタンスから Amazon S3 と対話するには、VPC を作成し、続いてプライベートサブネットの Amazon S3 ゲートウェイエンドポイントを作成します。

**S3 の VPC ゲートウェイエンドポイントを作成するには**

1. VPC を作成します。詳細については、「*Amazon Virtual Private Cloud ユーザーガイド*」の「[VPC を作成する](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)」を参照してください。

1. プライベートサブネットの Amazon S3 ゲートウェイエンドポイントを作成します。詳細については、*「AWS PrivateLink ガイド*」の「[Gateway endpoints](https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html)」を参照してください。

### ステップ 2: Amazon S3 の VPC ゲートウェイエンドポイントが存在することを確認する
<a name="db2-confirming-endpoint"></a>

AWS マネジメントコンソールまたは AWS CLI を使用して、Amazon S3 ゲートウェイエンドポイントが正常に作成されたことを確認します。

#### コンソール
<a name="db2-confirming-endpoing-console"></a>

**Amazon S3 ゲートウェイエンドポイントを確認するには**

1. AWS マネジメントコンソール にサインインし、[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com/vpc) で Amazon VPC コンソールを開きます。

1.  コンソールの右上で、VPC の AWS リージョン を選択します。

1. 作成した VPC を選択します。

1. **[リソースマップ]** タブの **[ネットワーク接続]** で、Amazon S3 ゲートウェイエンドポイントがリストに表示されていることを確認します。

#### AWS CLI
<a name="db2-confirming-endpoint-cli"></a>

Amazon S3 ゲートウェイエンドポイントを確認するには、[https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoints.html) コマンドを実行します。次の例では、*vpc\$1id* を VPC ID に、*region* を AWS リージョンに、*profile* をプロファイル名に置き換えてください。

Linux、macOS、Unix の場合:

```
aws ec2 describe-vpc-endpoints \
    --filters "Name=vpc-id,Values=$vpc_id" \
    "Name=service-name,\
    Values=com.amazonaws.${region}.s3" \
    --region $region --profile=$profile \
    --query "VpcEndpoints[*].VpcEndpointId" --output text
```

Windows の場合:

```
aws ec2 describe-vpc-endpoints ^
    --filters "Name=vpc-id,Values=$vpc_id" ^
    "Name=service-name,^
    Values=com.amazonaws.${region}.s3" ^
    --region $region --profile=$profile ^
    --query "VpcEndpoints[*].VpcEndpointId" --output text
```

Amazon S3 ゲートウェイエンドポイントが存在する場合、このコマンドプロシージャによって、次の例のような出力が生成されます。

```
[
    "vpce-0ea810434ff0b97e4"
]
```

Amazon S3 ゲートウェイエンドポイントが存在しない場合、このコマンドプロシージャによって、次の例のような出力が生成されます。

```
[]
```

Amazon S3 ゲートウェイエンドポイントがリストに表示されない場合は、「[ステップ 1: これにより、Amazon S3 用の VPC ゲートウェイエンドポイントを作成する](#db2-creating-endpoint)」の手順を実行してください。

## ストアドプロシージャエラー
<a name="db2-troubleshooting-stored-procedures"></a>

このセクションでは、ストアドプロシージャを呼び出すときに返されるさまざまなエラーとその解決方法について説明します。


| Category | ストアドプロシージャエラー | 
| --- | --- | 
|  データベース  |  [rdsadmin.activate\$1database エラー](#db2-troubleshooting-activate-database-sp-errors)  | 
|  データベース  |  [rdsadmin.backup\$1database エラー](#db2-troubleshooting-backup-database-sp-errors)  | 
|  データベース  |  [rdsadmin.create\$1database エラー](#db2-troubleshooting-create-database-sp-errors)  | 
|  データベース  |  [rdsadmin.deactivate\$1database エラー](#db2-troubleshooting-deactivate-database-sp-errors)  | 
|  データベース  |  [rdsadmin.drop\$1database エラー](#db2-troubleshooting-drop-database-sp-errors)  | 
|  データベース  |  [rdsadmin.reactivate\$1database エラー](#db2-troubleshooting-reactivate-database-sp-errors)  | 
|  データベース  |  [rdsadmin.restore\$1database エラー](#db2-troubleshooting-restore-database-sp-errors)  | 
|  データベース  |  [rdsadmin.update\$1db\$1param エラー](#db2-troubleshooting-update-db-param-sp-errors)  | 
|  テーブルスペース  |  [rdsadmin.alter\$1tablespace エラー](#db2-troubleshooting-alter-tablespace-sp-errors)  | 

### rdsadmin.activate\$1database エラー
<a name="db2-troubleshooting-activate-database-sp-errors"></a>

[rdsadmin.activate\$1database](db2-sp-managing-databases.md#db2-sp-activate-database) ストアドプロシージャを呼び出すと、以下のエラーが発生する場合があります。


| エラー | エラーメッセージ | 
| --- | --- | 
|  [Failed to allocate shared memory](#activate-database-sp-failed-to-allocate-shared-memory)  |  `SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.`  | 
|  [Unable to activate because of running processes](#activate-database-sp-unable-to-activate-processes)  |  `The database can’t be activated because it's in the process of being created or restored.`  | 

**共有メモリの割り当てに失敗した**

次のエラーメッセージは、DB インスタンスに十分なメモリがないため、ストアドプロシージャがデータベースのアクティブ化に失敗したことを示しています。

```
SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.
```

DB インスタンスのメモリを増やしてから、`rdsadmin.activate_database` ストアドプロシージャを再度呼び出してください。データベースのメモリ使用量と推奨事項については、「[Amazon RDS for Db2 DB インスタンス上の複数のデータベース](db2-multiple-databases.md)」を参照してください。

**実行中のプロセスが原因でアクティブ化できない**

次のエラーメッセージは、`rdsadmin.create_database` または `rdsadmin.restore_database` ストアドプロシージャが実行されているため、ストアドプロシージャがデータベースをアクティブ化できなかったことを示しています。

```
The database can’t be activated because it's in the process of being created or restored.
```

数分間待ってから、再度 `rdsadmin.activate_database` ストアドプロシージャを呼び出してください。

### rdsadmin.alter\$1tablespace エラー
<a name="db2-troubleshooting-alter-tablespace-sp-errors"></a>

[rdsadmin.alter\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-alter-tablespace) ストアドプロシージャを呼び出すと、以下のエラーが発生する場合があります。


| エラー | エラーメッセージ | 
| --- | --- | 
|  [Statement not valid](#alter-tablespace-sp-statement-not-valid)  |  `DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: ` `SQL1763N Invalid ALTER TABLESPACE statement for table space "TBSP_TEST" due to reason "12"`  | 
|  [tablespace_prefetch_size value not valid](#alter-tablespace-sp-prefetch-value-not-valid)  |  `Invalid tablespace_prefetch_size. Set value to AUTOMATIC or to a non-zero positive numerical value.`  | 
|  [tablespace_prefetch_size numerical value not valid](#alter-tablespace-sp-prefetch-numerical-value-not-valid)  |  `Invalid tablespace_prefetch_size. The number of pages can't be greater than 32767.`  | 
|  [Parameter can't be used with tablespace_prefetch_size](#alter-tablespace-sp-prefetch-incompatible-parameter)  |  `You can't use tablespace_prefetch_size with {parameter}.`  | 
|  [Tablespace change failed](#alter-tablespace-sp-tablespace-change-failed)  |  `The change to tablespace {tablespace_name} failed because you can only alter LARGE or REGULAR tablespaces.`  | 

**ステートメントが無効です**

次のエラーメッセージは、ストアドプロシージャが相互に排他的なオプションパラメータと他のオプションパラメータを組み合わせたことを示しています。`rdsadmin.alter_tablespace` ストアドプロシージャのオプションパラメータ `reduce_max, reduce_stop`、`reduce_value`、`lower_high_water`、`lower_high_water_stop`、`switch_online` は、相互に排他的です。`rdsadmin.alter_tablespace` ストアドプロシージャで、これらを他のオプションパラメータ (`buffer_pool_name` など) と組み合わせることはできません。組み合わせると、`rdsadmin.get_task_status` ユーザー定義関数を呼び出したときに、このエラーメッセージが Db2 から返されます。

```
DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: 
SQL1763N Invalid ALTER TABLESPACE statement for table space "TBSP_TEST" due to reason "12"
```

相互に排他的なオプションパラメータを他のオプションパラメータと組み合わせずに、`rdsadmin.alter_tablespace` ストアドプロシージャを再度呼び出します。次に、`rdsadmin.get_task_status` ユーザー定義関数を呼び出します。詳細については、「[rdsadmin.alter\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-alter-tablespace)」および「[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status)」を参照してください。

**tablespace\$1prefetch\$1size 値が無効です**

次のエラーメッセージは、`tablespace_prefetch_size` を `AUTOMATIC` または正でない数値に設定していないことを示しています。例えば、`testinput` に設定しようとしました。

```
Invalid tablespace_prefetch_size. Set value to AUTOMATIC or to a non-zero positive numerical value.
```

`rdsadmin.alter_tablespace` ストアドプロシージャを再度呼び出し、`tablespace_prefetch_size` を `AUTOMATIC` または正でない数値に設定します。

**tablespace\$1prefetch\$1size の数値が無効です**

次のエラーメッセージは、`tablespace_prefetch_size` を 32767 より大きい数値に設定していることを示しています。

```
Invalid tablespace_prefetch_size. The number of pages can't be greater than 32767.
```

`rdsadmin.alter_tablespace` ストアドプロシージャを再度呼び出し、`tablespace_prefetch_size` を 32767 以下のゼロ以外の正の数値に設定します。

**パラメータは tablespace\$1prefetch\$1size では使用できません**

次のエラーメッセージは、互換性のないパラメータで `tablespace_prefetch_size` を使用しようとしたことを示しています。

```
You can't use tablespace_prefetch_size with {parameter}.
```

`rdsadmin.alter_tablespace` ストアドプロシージャを再度呼び出し、互換性のあるパラメータでのみ `tablespace_prefetch_size` を使用します。`tablespace_prefetch_size` で使用できるパラメータについては、「[rdsadmin.alter\$1tablespace](db2-sp-managing-tablespaces.md#db2-sp-alter-tablespace)」を参照してください。

**テーブルスペースの変更に失敗しました**

次のエラーメッセージは、テーブルスペースを変更しようとしたことを示しています。

```
The change to tablespace {tablespace_name} failed because you can only alter LARGE or REGULAR tablespaces.
```

### rdsadmin.backup\$1database エラー
<a name="db2-troubleshooting-backup-database-sp-errors"></a>

[rdsadmin.backup\$1database](db2-sp-managing-databases.md#db2-sp-backup-database) ストアドプロシージャを呼び出すと、以下のエラーが発生する場合があります。


| エラー | エラーメッセージ | 
| --- | --- | 
|  [Insufficient disk space](#backup-database-sp-insufficient-disk-space)  |  `Aborting task. Reason Backing up your database failed because of insufficient disk space. Increase the storage for your DB instance and rerun the rdsadmin.backup_database stored procedure.`  | 
|  [Internal error](#backup-database-sp-internal-error)  |  `Caught exception during executing task id 104, Aborting task. Reason Internal Error`  | 

**ディスク容量の不足**

次のエラーメッセージは、DB インスタンスにデータベースをバックアップするのに十分なディスク容量がないことを示しています。

```
Aborting task. Reason Backing up your database failed because of insufficient disk space. Increase the storage for your DB instance and rerun the rdsadmin.backup_database stored procedure.
```

データベースをリモートストレージにバックアップするときは、バックアップセッションと作業ファイルに十分な空きディスク容量があることを確認してください。各バックアップセッションは最大 5 GB のデータを処理しますが、トランザクションログ、一時ファイル、継続的なデータベースオペレーションには追加のスペースが必要です。

データベースサイズに基づいて、バックアップ用に次の空きディスク容量を用意することをお勧めします。
+ 5 GB 未満のデータベースの場合 – データベースサイズ \$1 3 GB バッファ
+ 5 GB 以上のデータベースの場合 – 10 GB 以上の空き容量

この空きディスク容量は、バックアップセッション処理、バックアップ中のトランザクションログの蓄積、一時作業ファイル、および設定されている場合は並列バックアップストリームを考慮したものです。詳細については、「[DB インスタンスストレージの容量を増加する](USER_PIOPS.ModifyingExisting.md)」を参照してください。

ディスク容量を増やしてから、[rdsadmin.backup\$1database](db2-sp-managing-databases.md#db2-sp-backup-database) ストアドプロシージャを再度呼び出してください。データベースが正しくバックアップされたことを確認するには、[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status) を使用してタスクのステータスを確認します。*s3\$1prefix/dbi\$1resource\$1id/db\$1name* の Amazon S3 バケットにバックアップファイルが存在することを確認することもできます。

**内部エラー**

次のエラーメッセージは、ストアドプロシージャで内部エラーが発生したことを示します。

```
Caught exception during executing task id 104, Aborting task. Reason Internal Error
```

[AWS Support](https://aws.amazon.com/premiumsupport/) にお問い合わせください。

### rdsadmin.create\$1database エラー
<a name="db2-troubleshooting-create-database-sp-errors"></a>

[rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database) ストアドプロシージャを呼び出すと、次のエラーが発生する場合があります。


| エラー | エラーメッセージ | 
| --- | --- | 
|  [Failed to allocate shared memory](#create-database-sp-failed-to-allocate-shared-memory)  |  `SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.`  | 

**共有メモリの割り当てに失敗した**

次のエラーメッセージは、DB インスタンスに十分なメモリがないため、ストアドプロシージャがデータベースの作成に失敗したことを示しています。

```
SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.
```

DB インスタンスのメモリを増やしてから、`rdsadmin.create_database` ストアドプロシージャを再度呼び出してください。データベースのメモリ使用量と推奨事項については、「[Amazon RDS for Db2 DB インスタンス上の複数のデータベース](db2-multiple-databases.md)」を参照してください。

データベースが作成されたことを確認するには、[rdsadmin.list\$1databases](db2-user-defined-functions.md#db2-udf-list-databases) ユーザー定義関数を呼び出し、新しいデータベースがリストに表示されていることを確認します。

### rdsadmin.deactivate\$1database エラー
<a name="db2-troubleshooting-deactivate-database-sp-errors"></a>

[rdsadmin.deactivate\$1database](db2-sp-managing-databases.md#db2-sp-deactivate-database) ストアドプロシージャを呼び出すと、次のエラーが発生する場合があります。


| エラー | エラーメッセージ | 
| --- | --- | 
|  [Unable to deactivate because of running processes](#deactivate-database-sp-unable-to-deactivate-processes)  |  `The database can’t be deactivated because it's in the process of being created or restored.`  | 

**実行中のプロセスが原因で非アクティブ化できない**

次のエラーメッセージは、`rdsadmin.create_database` または `rdsadmin.restore_database` ストアドプロシージャが実行されているため、ストアドプロシージャがデータベースを非アクティブ化できなかったことを示しています。

```
The database can’t be deactivated because it's in the process of being created or restored.
```

数分間待ってから、再度 `rdsadmin.deactivate_database` ストアドプロシージャを呼び出してください。

### rdsadmin.drop\$1database エラー
<a name="db2-troubleshooting-drop-database-sp-errors"></a>

[rdsadmin.drop\$1database](db2-sp-managing-databases.md#db2-sp-drop-database) ストアドプロシージャを呼び出すと、以下のエラーが発生する場合があります。


| エラー | エラーメッセージ | 
| --- | --- | 
|  [Database name doesn't exist](#drop-database-sp-database-name-not-exist)  |  `SQL0438N Application raised error or warning with diagnostic text: "Cannot drop database. Database with provided name does not exist". SQLSTATE=99993`  | 
|  [Return status = 0](#drop-database-sp-return-status-zero)  |  `Return Status = 0`  | 
|  [Dropping database not allowed](#drop-database-sp-not-allowed)  |  `1 ERROR DROP_DATABASE RDSDB 2023-10-10-16.33.03.744122 2023-10-10-16.33.30.143797 - 2023-10-10-16.33.30.098857 Task execution has started. 2023-10-10-16.33.30.143797 Caught exception during executing task id 1, Aborting task. Reason Dropping database created via rds CreateDBInstance api is not allowed. Only database created using rdsadmin.create_database can be dropped`  | 

**データベース名が存在しません**

次のエラーメッセージは、`rdsadmin.drop_database` ストアドプロシージャで誤ったデータベース名を渡したことを示しています。

```
SQL0438N Application raised error or warning with diagnostic text: "Cannot
drop database. Database with provided name does not exist". SQLSTATE=99993
```

正しいデータベース名を使用して `rdsadmin.drop_database` ストアドプロシージャを再度呼び出します。データベースが破棄されたことを確認するには、[rdsadmin.list\$1databases](db2-user-defined-functions.md#db2-udf-list-databases) ユーザー定義関数を呼び出し、破棄されたデータベースがリストに表示されていないことを確認します。

**戻りステータス = 0**

次のエラーメッセージは、ストアドプロシージャを完了できなかったことを示しています。

```
Return Status = 0
```

`Return Status = 0` を受け取ったら、[rdsadmin.get\$1task\$1status](db2-user-defined-functions.md#db2-udf-get-task-status) ユーザー定義関数を呼び出します。

**データベースの削除は許可されていません**

次のエラーメッセージは、Amazon RDS コンソールまたは AWS CLI を使用してデータベースを作成したことを示しています。`rdsadmin.drop_database` ストアドプロシージャは、[rdsadmin.create\$1database](db2-sp-managing-databases.md#db2-sp-create-database) ストアドプロシージャを呼び出してデータベースを作成した場合のみ使用できます。

```
1 ERROR DROP_DATABASE RDSDB 2023-10-10-16.33.03.744122 2023-10-10-16.33.30.143797 - 2023-10-10-16.33.30.098857 Task execution has started.
2023-10-10-16.33.30.143797 Caught exception during executing task id 1, Aborting task. 
Reason Dropping database created via rds CreateDBInstance api is not allowed. 
Only database created using rdsadmin.create_database can be dropped
```

Amazon RDS コンソールまたは AWS CLI を使用して作成したデータベースを削除するには、クライアントを使用してデータベースに接続し、適切なコマンドを実行します。

### rdsadmin.reactivate\$1database エラー
<a name="db2-troubleshooting-reactivate-database-sp-errors"></a>

[rdsadmin.reactivate\$1database](db2-sp-managing-databases.md#db2-sp-reactivate-database) ストアドプロシージャを呼び出すと、次のエラーが発生する場合があります。


| エラー | エラーメッセージ | 
| --- | --- | 
|  [Failed to allocate shared memory](#reactivate-database-sp-failed-to-allocate-shared-memory)  |  `SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.`  | 
|  [Unable to reactivate because of running processes](#reactivate-database-sp-unable-to-reactivate-processes)  |  `The database can’t be reactivated because it's in the process of being created or restored.`  | 

**共有メモリの割り当てに失敗した**

次のエラーメッセージは、DB インスタンスに十分なメモリがないため、ストアドプロシージャがデータベースのアクティブ化に失敗したことを示しています。

```
SQL1643C The database manager failed to allocate shared memory because the database manager instance memory limit has been reached.
```

DB インスタンスのメモリを増やしてから、`rdsadmin.activate_database` ストアドプロシージャを再度呼び出してください。データベースのメモリ使用量と推奨事項については、「[Amazon RDS for Db2 DB インスタンス上の複数のデータベース](db2-multiple-databases.md)」を参照してください。

**実行中のプロセスが原因で再アクティブ化できない**

次のエラーメッセージは、`rdsadmin.create_database` または `rdsadmin.restore_database` ストアドプロシージャが実行されているため、ストアドプロシージャがデータベースを再アクティブ化できなかったことを示しています。

```
The database can’t be reactivated because it's in the process of being created or restored.
```

数分間待ってから、再度 `rdsadmin.reactivate_database` ストアドプロシージャを呼び出してください。

### rdsadmin.restore\$1database エラー
<a name="db2-troubleshooting-restore-database-sp-errors"></a>

[rdsadmin.restore\$1database](db2-sp-managing-databases.md#db2-sp-restore-database) ストアドプロシージャを呼び出すと、次のエラーが発生する可能性があります。


| エラー | エラーメッセージ | 
| --- | --- | 
|  [Insufficient disk space](#restore-database-sp-insufficient-disk-space)  |  `Aborting task. Reason Restoring your database failed because of insufficient disk space. Increase the storage for your DB instance and rerun the rdsadmin.restore_database stored procedure.`  | 
|  [Internal error](#restore-database-sp-internal-error)  |  `Caught exception during executing task id 104, Aborting task. Reason Internal Error`  | 
|  [Non-fenced routines not allowed](#restore-database-sp-non-fenced-routines)  |  `Caught exception during executing task id 2, Aborting task. Reason Non fenced routines are not allowed. Please delete the routines and retry the restore.`  | 
| [Tablespaces not restored](#restore-database-sp-tablespaces-not-restored) |  `Reason SQL0970N The system attempted to write to a read-only file. Reason SQL2563W The Restore process has completed successfully. However one or more table spaces from the backup were not restored.`  | 

**ディスク容量の不足**

次のエラーメッセージは、DB インスタンスにデータベースを復元するのに十分なディスク容量がないことを示しています。

```
Aborting task. Reason Restoring your database failed because of insufficient disk space. Increase the storage for your DB instance and rerun the rdsadmin.restore_database stored procedure.
```

DB インスタンスの空き容量は、バックアップイメージの 2 倍以上である必要があります。バックアップイメージが圧縮されている場合、DB インスタンスの空き容量はバックアップイメージの 3 倍以上である必要があります。詳細については、「[DB インスタンスストレージの容量を増加する](USER_PIOPS.ModifyingExisting.md)」を参照してください。

ディスク容量を増やしてから、`rdsadmin.restore_database` ストアドプロシージャを再度呼び出してください。データベースが復元されたことを確認するには、[rdsadmin.list\$1databases](db2-user-defined-functions.md#db2-udf-list-databases) ユーザー定義関数を呼び出し、復元されたデータベースがリストに表示されていることを確認します。

**内部エラー**

次のエラーメッセージは、ストアドプロシージャで内部エラーが発生したことを示します。

```
Caught exception during executing task id 104, Aborting task. Reason Internal Error
```

[AWS Support](https://aws.amazon.com/premiumsupport/) にお問い合わせください。

**フェンスなしのルーチンは許可されません**

次のエラーメッセージは、データベースにフェンスのないルーチンが含まれていることを示します。

```
Caught exception during executing task id 2, Aborting task. Reason Non fenced routines are not allowed. Please delete the routines and retry the restore.
```

RDS for Db2 は、フェンスされていないルーチンをサポートしていません。フェンスされていないルーチンをソースデータベースから削除し、もう一度 `rdsadmin.restore_database` を呼び出します。データベースが復元されたことを確認するには、[rdsadmin.list\$1databases](db2-user-defined-functions.md#db2-udf-list-databases) ユーザー定義関数を呼び出し、復元されたデータベースがリストに表示されていることを確認します。詳細については、「[フェンスされていないルーチン](db2-known-issues-limitations.md#db2-known-issues-limitations-non-fenced-routines)」を参照してください。

**テーブルスペースが復元されていません**

次のエラーメッセージは、RDS for Db2 がデータベースを正常に復元したが、1 つ以上のテーブルスペースを復元できなかったことを示しています。

```
Reason SQL0970N The system attempted to write to a read-only file.
Reason SQL2563W The Restore process has completed successfully. However one or more table spaces from the backup were not restored.
```

RDS for Db2 は、非自動ストレージをサポートしていません。非自動ストレージを自動ストレージに変換してから、もう一度 `rdsadmin.restore_database` を呼び出します。詳細については、「IBM Db2 ドキュメント」の「[非自動ストレージストレージデータベースを自動ストレージを使用するように変換する](https://www.ibm.com/docs/en/db2/11.5?topic=databases-converting-nonautomatic-storage-database-use-automatic-storage)」を参照してください。

非自動 SMS ストレージのデータベースは、手動で復元する必要があります。データベースに非自動 SMS ストレージがある場合は、[AWS サポート](https://aws.amazon.com/premiumsupport/)にお問い合わせください。

非自動ストレージと 1 回限りの移行の詳細については、「[移行中の非自動ストレージテーブルスペース](db2-known-issues-limitations.md#db2-known-issues-limitations-non-automatic-storage-tablespaces)」を参照してください。

### rdsadmin.update\$1db\$1param エラー
<a name="db2-troubleshooting-update-db-param-sp-errors"></a>

[rdsadmin.update\$1db\$1param](db2-sp-managing-databases.md#db2-sp-update-db-param) ストアドプロシージャを呼び出すと、次のエラーが発生する場合があります。


| エラー | エラーメッセージ | 
| --- | --- | 
|  [Parameter not supported or modifiable](#update-db-param-sp-parameter-not-supported-modifiable)  | SQL0438N Application raised error or warning with diagnostic text: "Parameter is either not supported or not modifiable to customers". SQLSTATE=99993 | 

**パラメータはサポートされていないか、変更不可です**

次のエラーメッセージは、変更しようとしたデータベース設定パラメータがサポートされていないか、変更不可であることを示しています。

```
SQL0438N Application raised error or warning with diagnostic text: "Parameter
is either not supported or not modifiable to customers". SQLSTATE=99993
```

パラメータグループを参照することで、変更可能なパラメータを確認できます。詳細については、「[Amazon RDS のDB パラメータグループのパラメータ値の表示](USER_WorkingWithParamGroups.Viewing.md)」を参照してください。