

# Conectar-se à instância de banco de dados do Amazon RDS para Db2 com o IBM Db2 CLP
<a name="db2-connecting-with-clp-client"></a><a name="db2-downloading-package"></a>

É possível usar um utilitário de linha de comandos, como IBM Db2 CLP, para se conectar a instâncias de banco de dados do Amazon RDS para Db2. Esse utilitário faz parte do IBM Data Server Runtime Client. Para baixar o cliente** **do IBM Fix Central, consulte [IBM Data Server Client Packages Version 11.5 Mod 8 Fix Pack 0](https://www.ibm.com/support/pages/node/6830885) no IBM Support. 

**Topics**
+ [Terminologia](#db2-connecting-ibm-clp-terms)
+ [Instalar o cliente](#db2-connecting-ibm-clp-install-client)
+ [Conexão a uma instância de banco de dados](#db2-connecting-ibm-clp-connect-db-instance)
+ [Solução de problema de conexão com a instância de banco de dados do RDS para Db2](#db2-troubleshooting-connections-clp)

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

Os termos a seguir ajudam a explicar os comandos usados ao [se conectar à instância de banco de dados do RDS para Db2](#db2-connecting-ibm-clp-connect-db-instance).

**catalog tcpip node**  
Esse comando registra um nó de banco de dados remoto com um cliente Db2 local, o que torna o nó acessível à aplicação cliente. Para catalogar um nó, você vai fornecer informações, como nome do host, número da porta e protocolo de comunicação do servidor. O nó catalogado então representa um servidor de destino onde residem um ou mais bancos de dados remotos. Para ter mais informações, consulte [CATALOG TCPIP/TCPIP4/TCPIP6 NODE command](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-tcpip-node) na documentação do IBM Db2.

**catalog database**  
Esse comando registra um banco de dados remoto com um cliente Db2 local, o que torna o banco de dados acessível à aplicação cliente. Para catalogar um banco de dados, você vai fornecer informações, como o alias do banco de dados, o nó no qual ele reside e o tipo de autenticação necessário para se conectar ao banco de dados. Para ter mais informações, consulte [CATALOG DATABASE command](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-database) na documentação do IBM Db2.

## Instalar o cliente
<a name="db2-connecting-ibm-clp-install-client"></a>

Depois de [downloading the package for Linux](#db2-downloading-package), instale o cliente usando privilégios raiz ou de administrador.

**nota**  
Para instalar o cliente no AIX ou no Windows, siga o mesmo procedimento, mas modifique os comandos do sistema operacional.

**Como instalar o cliente no Linux**

1. Execute **`./db2_install -f sysreq`** e escolha **`yes`** para aceitar a licença.

1. Selecione o local para instalar o cliente.

1. Execute **`clientInstallDir/instance/db2icrt -s client` *instance\$1name***. Substitua *instance\$1name* por um usuário válido do sistema operacional no Linux. Em Linux, o nome da instância de banco de dados do Db2 está vinculado ao nome de usuário do sistema operacional.

   Esse comando cria um diretório **`sqllib`** no diretório inicial do usuário designado no Linux.

## Conexão a uma instância de banco de dados
<a name="db2-connecting-ibm-clp-connect-db-instance"></a>

Para se conectar à instância de banco de dados do RDS para Db2, você precisa do nome do DNS e do número da porta. Para ter informações sobre como descobri-los, consulte [Encontrar o endpoint](db2-finding-instance-endpoint.md). Também é necessário saber o nome do banco de dados, o nome de usuário principal e a senha mestra que você definiu ao criar a instância de banco de dados do RDS para Db2. Para ter mais informações sobre como descobri-los, consulte [Criar uma instância de banco de dados](USER_CreateDBInstance.md#USER_CreateDBInstance.Creating).

**Como se conectar a uma instância de banco de dados do RDS para Db2 com IBM Db2 CLP**

1. Faça login com o nome de usuário que você especificou durante a instalação do cliente IBM Db2 CLP.

1. Catalogue a instância de banco de dados do RDS para Db2. No exemplo a seguir, substitua *node\$1name*, *dns\$1name* e *port* por um nome para o nó no catálogo local, o nome do DNS da instância de banco de dados e o número da porta.

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

   **Exemplo**

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

1. Catalogue o banco de dados `rdsadmin` e seu banco de dados. Isso permitirá que você se conecte ao banco de dados `rdsadmin` para realizar algumas tarefas administrativas usando procedimentos armazenados do Amazon RDS. Para obter mais informações, consulte [Administrar a instância de banco de dados do RDS para Db2](db2-administering-db-instance.md).

   No exemplo a seguir, substitua *database\$1alias*, *node\$1name * e *database\$1name* por aliases para esse banco de dados, o nome do nó definido na etapa anterior e o nome do banco de dados. O `server_encrypt` criptografa o nome de usuário e a senha na rede.

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

   **Exemplo**

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

1. Conecte-se ao banco de dados do RDS para Db2. No exemplo a seguir, substitua *rds\$1database\$1alias*, *master\$1username* e *master\$1password* pelo nome do banco de dados, o nome de usuário principal e a senha mestra da instância de banco de dados do RDS para Db2.

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

   O comando vai produzir uma saída semelhante ao seguinte exemplo:

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

1. Execute consultas e visualize os resultados. O exemplo a seguir mostra uma declaração SQL que seleciona o banco de dados que você criou.

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

   O comando vai produzir uma saída semelhante ao seguinte exemplo:

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

## Solução de problema de conexão com a instância de banco de dados do RDS para Db2
<a name="db2-troubleshooting-connections-clp"></a>

O erro `NULLID` a seguir geralmente indica que as versões do cliente e do servidor do RDS para Db2 não coincidem. Para ver as versões compatíveis do cliente do Db2, consulte [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) na documentação do IBM Db2.

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

Depois de receber esse erro, você deverá vincular pacotes do cliente do Db2 antigo a uma versão do servidor do Db2 compatível com o RDS para Db2. 

**Como vincular pacotes de um cliente do Db2 mais antigo a um servidor do Db2 mais recente**

1. Localize os arquivos de vinculação na máquina cliente. Normalmente, esses arquivos estão localizados no diretório **bnd** do caminho de instalação do cliente do Db2 e têm a extensão **.bnd**.

1. Conecte-se ao servidor do Db2. No exemplo a seguir, substitua *database\$1name* pelo nome do servidor do Db2. Substitua *master\$1username* e *master\$1password* por suas informações. Esse usuário tem autoridade `DBADM`. 

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

1. Execute o comando `bind` para vincular os pacotes.

   1. Navegue até o diretório onde estão os arquivos de vinculação na máquina cliente.

   1. Execute o comando `bind` para cada arquivo.

      São necessárias as seguintes opções:
      + `blocking all`: vincula todos os pacotes no arquivo de associação em uma única solicitação de banco de dados. 
      + `grant public`: concede permissão a `public` para executar o pacote.
      + `sqlerror continue`: especifica que o processo `bind` continue mesmo se ocorrerem erros.

      Para ter mais informações sobre o comando `bind`, consulte [BIND command](https://www.ibm.com/docs/en/db2/11.5?topic=commands-bind) na documentação do IBM Db2.

1. Verifique se a associação foi bem-sucedida consultando a visualização do catálogo `syscat.package` ou verificando a mensagem exibida após o comando `bind`.

Para ter mais informações, consulte [DB2 v11.5 Bind File and Package Name List](https://www.ibm.com/support/pages/node/6190455) em IBM Support.