

# 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)」を参照してください。