Não consigo me conectar a minha instância de banco de dados do Amazon Relational Database Service (Amazon RDS) para Oracle.
Breve descrição
A seguir estão os motivos mais comuns para problemas de conexão com uma instância de banco de dados do RDS para Oracle:
- Seu grupo de segurança, listas de controle de acesso à rede (ACLs da rede) ou firewalls locais estão configurados incorretamente. Configurações incorretas podem bloquear o tráfego para a instância.
- Sua instância não está no estado Available.
- Você usou credenciais de usuário incorretas.
- Você usou o endpoint errado para se conectar à instância de banco de dados do RDS.
- A conexão do cliente para a instância de banco de dados é incompatível.
- Você não tem as permissões necessárias.
Resolução
Use o TNSPING para verificar a conexão
Observação: você deve instalar o cliente Oracle para usar o utilitário TNSPING.
Use o utilitário TNSPING para verificar se o cliente Oracle pode se conectar à instância de banco de dados. Se você adicionou a entrada do banco de dados no arquivo tnsnames.ora, execute o seguinte comando para verificar se o RDS para Oracle está acessível:
tnsping <Service Name>
Se você não adicionou a entrada do banco de dados ao arquivo tnsnames.ora, execute um comando semelhante ao seguinte:
tnsping "(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xxxxx-yyyyy.us-east-1.rds.amazonaws.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))"
TNS Ping Utility for 64-bit Windows: Version 19.0.0.0.0 - Production on 23-JUL-2023 19:48:22
Copyright (c) 1997, 2019, Oracle. All rights reserved.
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xxxxx-yyyyy.us-east-1.rds.amazonaws.com)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))
OK (210 msec)
Se TNSPING confirmar que o cliente Oracle não pode se conectar à instância de banco de dados, verifique as configurações a seguir.
Verifique as configurações de VPC
Se você se conectar à sua instância de banco de dados de fora de uma nuvem privada virtual (VPC), confirme se a propriedade Publicamente acessível da sua instância de banco de dados está definida como Sim. Se a propriedade estiver definida como Não, a instância de banco de dados não receberá um endereço IP público. Somente instâncias e clientes do Amazon Elastic Compute Cloud (Amazon EC2) dentro da VPC podem se conectar ao seu banco de dados por meio do endereço IP privado do Amazon RDS.
Para acessar de diferentes VPCs ou redes on-premises, você deve definir configurações adicionais, como emparelhamento de VPCs ou AWS Direct Connect. Se a propriedade Publicamente accessível estiver definida como Sim, os clientes que estão fora da VPC poderão se conectar à sua instância de banco de dados pela internet com um gateway da internet.
Verifique as configurações do grupo de segurança
Confirme se o grupo de segurança da sua instância de banco de dados permite o tráfego de entrada apropriado para seu banco de dados. Para obter mais informações, consulte Controlar acesso com grupos de segurança.
Verifique as configurações ACL da rede
As listas de controle de acesso à rede (ACLs da rede) atuam como um firewall para recursos em uma sub-rede específica de uma VPC. Se sua VPC tiver ACLs da rede, confirme se elas têm regras para permitir tráfego de entrada e saída de e para sua instância. Por padrão, as ACLs da rede permitem todo o tráfego de entrada e saída. Se sua ACL da rede for mais restritiva, você precisará permitir explicitamente o tráfego para o intervalo de portas temporárias.
Verifique sua rede ou firewall local
Sua conexão de cliente pode ter se originado de uma rede on-premises. Verifique se a rede permite tráfego de e para as portas que sua instância de banco de dados usa para comunicação de entrada e saída. Talvez seja necessário entrar em contato com o administrador da sua rede para obter essas informações.
Verifique as configurações da sua tabela de rotas
Verifique se sua tabela de rotas está configurada corretamente com a sub-rede de banco de dados associada.
Solução de problemas adicionais
Para solucionar ainda mais os problemas de conexão, realize as ações a seguir:
-
Execute o comando a seguir para verificar a conexão de rede. Substitua os valores example-rds-endpoint e example-port-number pelo endpoint do RDS e pelo número da porta da sua instância de banco de dados.
Observação: o Amazon RDS não oferece suporte a tráfego do protocolo de mensagens de controle da internet (ICMP), incluindo ping.
telnet example-rds-endpoint example-port-number
OR
curl -v http://<example-rds-endpoint>:<PORT>
-
Execute o comando nslookup para confirmar se o servidor DNS no lado do cliente resolve o nome do endpoint DNS da instância de banco de dados para o endereço IP correto:
nslookup example-instance.example-accountcode.example-region.rds.amazonaws.com
-
Confirme se o status da sua instância de banco de dados é Available. Atividades de banco de dados, como upgrade de versão, upgrade de classe de instância ou failover Multi-AZ, podem causar breves interrupções. As interrupções podem alterar o estado da instância de banco de dados e causar problemas de conexão.
-
A conexão pode alcançar a instância de banco de dados, mas ainda falhará. Confirme se as credenciais do usuário que você usa para se conectar à instância de banco de dados estão corretas. É possível redefinir a senha do usuário primário, se necessário.
-
Confirme se você tem as permissões necessárias para se conectar à sua instância de banco de dados.
Use o Amazon EC2 para se conectar à sua instância de banco de dados
Para configurar uma conexão entre o Amazon EC2 e sua instância de banco de dados, use o atributo de conexão automática no console do Automática e do RDS.
Observação: para usar o atributo de conexão automática, a instância do EC2 e a instância de banco de dados devem estar na mesma VPC.
Também é possível usar o endpoint de conexão de instância do EC2 sem um bastion host para acessar recursos, como o Amazon RDS, a partir do Console de gerenciamento da AWS. Primeiro, verifique se seu usuário tem as permissões necessárias do AWS Identity and Access Management (AWS IAM) para se conectar ao endpoint de conexão do EC2. Além disso, verifique se o grupo de segurança da sua instância de banco de dados permite tráfego do endpoint da VPC.
Execute o comando aws ec2-instance-connect open-tunnel para abrir um túnel WebSocket:
aws ec2-instance-connect open-tunnel --instance-connect-endpoint-id "VPC Endpoint ID"--private-ip-address "Private IP"--local-port "random port number to use locally" --remote-port "rds port number"
Informações relacionadas
Solução de problema de conexão com a instância de banco de dados Oracle
Não é possível conectar-se à instância de banco de dados do Amazon RDS
TNSPING no site da Oracle