

# 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 インスタンスに復元する準備が整いました。