为什么我无法连接到我的 Amazon RDS for Oracle 数据库实例?

上次更新时间:2021 年 10 月 14 日

我无法连接到我的 Amazon Relational Database Service(Amazon RDS)for Oracle 数据库实例。

简短描述

无法连接到 Amazon RDS for Oracle 数据库实例的一些最常见原因包括以下几点:

  • 您的安全组、网络访问控制列表(ACL)或本地防火墙中的配置不正确,可能会阻止流向实例的流量。
  • 您的实例未处于可用状态。
  • 您使用了错误的用户凭证。

解决方法

在满足以下条件时,使用 tnsping 实用程序检查 Oracle 客户端是否可以连接到 RDS for Oracle 数据库实例:

  • 您已经安装了 Oracle 客户端。
  • 您已将数据库条目添加到客户端的 tnsnames.ora 文件中。

如果 Oracle 客户端无法连接到数据库实例,请检查以下内容:

  • 如果您是从 VPC 外部进行连接,请确保将数据库实例的 Publicly Accessible(可公开访问)属性设置为 Yes(是)。如果此属性设置为 No(否),则不会为数据库分配公有 IP 地址。只有 Amazon Elastic Compute Cloud(Amazon EC2)实例和 Amazon Virtual Private Cloud(Amazon VPC)内的客户端可以使用 Amazon RDS 私有 IP 地址连接到您的数据库。必须配置其他配置,例如 VPC 对等连接AWS Direct Connect,以便从不同的 VPC 或本地网络进行访问。如果实例的 Publicly Accessible(可公开访问)属性设置为 Yes(是),则来自托管 RDS 的 VPC 外部的客户端可以使用互联网网关连接到数据库实例。
  • 请确保 RDS 数据库实例的安全组允许向数据库传入适当的流量。
  • 网络 ACL 在 VPC 中充当防火墙,以保护特定子网内的资源。如果您在 VPC 中使用 ACL,则请确保其具有允许出入数据库实例的入站和出站流量的规则。默认情况下,网络 ACL 允许所有的入站和出站流量。如果您的网络 ACL 具有更高的限制,则您必须明确允许至临时端口范围的流量。
  • 如果客户端连接源自本地网络,请咨询您的网络管理员以确定您的网络是否允许进出数据库实例用于入站和出站通信的端口的流量。
  • 运行以下命令验证网络连接。请务必将命令中的 example-rds-endpointexample-port-number 值替换为 RDS 端点和端口号。
    注意:Amazon RDS 不支持 ping 在内的互联网控制消息协议(ICMP)流量。
telnet example-rds-endpoint example-port-number
  • 使用 NSLOOKUP 命令验证在客户端配置的 DNS 服务器是否已将 RDS 实例的 DNS 端点名称解析为正确的 IP 地址:
nslookup  example-instance.example-accountcode.example-region.rds.amazonaws.com
  • 请确保您的 RDS for Oracle 数据库实例处于可用状态。数据库活动(例如版本升级、实例类升级或多可用区故障转移)可能会导致短暂停机。中断可能会更改数据库实例的状态,并导致与数据库的连接出现问题。
  • 如果连接到达 RDS for Oracle 数据库实例,但仍然失败,则请确保用于连接到数据库实例的用户凭证(如用户名和密码)准确无误。如果需要,您可以重置主用户密码

这篇文章对您有帮助吗?


您是否需要账单或技术支持?