Amazon Relational Database Service
用户指南 (API Version 2014-10-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

与运行 Oracle 数据库引擎的数据库实例连接

在 Amazon RDS 预置 Oracle 数据库实例后,您可以使用任何标准 SQL 客户端应用程序连接到数据库实例。在本主题中,您将使用 Oracle SQL Developer 或 SQL*Plus 连接到运行 Oracle 数据库引擎的数据库实例。

有关指导您完成创建和连接到示例数据库实例的示例,请参阅 创建 Oracle 数据库实例并连接到 Oracle 数据库实例上的数据库

查找数据库实例的终端节点

每个 Amazon RDS 数据库实例都有一个终端节点,每个终端节点都包含数据库实例的 DNS 名称和端口号。要使用 SQL 客户端应用程序连接到您的数据库实例,您需要该数据库实例的 DNS 名称和端口号。

您可使用 Amazon RDS 控制台或 AWS CLI 查找数据库实例的终端节点。

AWS 管理控制台

使用控制台查找终端节点

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

  2. 在控制台的右上角,选择您的数据库实例的 AWS 区域。

  3. 找到您的数据库实例的 DNS 名称和端口号。

    1. 选择 Instances 以显示您的数据库实例的列表。

    2. 选择您的 Oracle 数据库实例所在的行以显示数据库实例的摘要信息。

       找到该数据库实例的终端节点和端口
    3. 复制终端节点。Endpoint 字段具有两个由冒号 (:) 分隔的部分。冒号前面的部分是数据库实例的 DNS 名称,后面的部分是端口号。确保复制这两个部分。

CLI

要使用 AWS CLI 查找 Oracle 数据库实例的终端节点,请调用 describe-db-instances 命令。

例 使用 AWS CLI 查找终端节点

aws rds describe-db-instances

在输出中搜索 Endpoint 以查找数据库实例的 DNS 名称和端口号。输出中的 Address 行包含 DNS 名称。下面是 JSON 终端节点输出的示例:

"Endpoint": { "HostedZoneId": "Z1PVIF0B656C1W", "Port": 3306, "Address": "myinstance.123456789012.us-west-2.rds.amazonaws.com" },

注意

该输出可能包含多个数据库实例的信息。

使用 Oracle SQL Developer 连接到数据库实例

在此过程中,您将使用 Oracle SQL Developer 连接到数据库实例。要下载此实用程序的独立版本,请参阅 Oracle SQL Developer 下载页。

要连接到您的数据库实例,您需要该实例的 DNS 名称和端口号。有关查找数据库实例的 DNS 名称和端口号的信息,请参阅查找数据库实例的终端节点

使用 SQL Developer 连接到数据库实例

  1. 启动 Oracle SQL Developer。

  2. Connections 选项卡上,选择 add (+) 图标。

     突出显示了“添加”图标的 Oracle SQL Developer
  3. New/Select Database Connection 对话框中,提供您的数据库实例的信息:

    • 对于 Connection Name,键入可描述连接的名称,如 Oracle-RDS

    • 对于 Username,键入数据库实例的数据库管理员的名称。

    • 对于 Password,键入数据库管理员的密码。

    • 对于 Hostname,键入或粘贴数据库实例的 DNS 名称。

    • 对于 Port,键入端口号。

    • 对于 SID,键入 Oracle 数据库 SID。

    完成后的对话框应该与下面类似。

     在 Oracle SQL Developer 中创建新连接
  4. 单击 Connect

  5. 您现在可以开始创建您自己的数据库并像往常一样对数据库实例和数据库运行查询。要对数据库实例运行测试查询,请执行以下操作:

    1. 在您的连接的 Worksheet 选项卡中,键入以下 SQL 查询:

      SELECT NAME FROM V$DATABASE;
    2. 单击 execute 图标以运行查询。

       使用“执行”图标在 Oracle SQL Developer 中运行查询

      SQL Developer 将返回数据库名称。

       Oracle SQL Developer 中的查询结果

使用 SQL*Plus 连接到数据库实例

您可以使用实用程序 (如 SQL*Plus) 连接到运行 Oracle 的 Amazon RDS 数据库实例。要下载独立版本的 SQL*Plus,请参阅 SQL*Plus 用户指南和参考

要连接到您的数据库实例,您需要该实例的 DNS 名称和端口号。有关查找数据库实例的 DNS 名称和端口号的信息,请参阅查找数据库实例的终端节点

例 使用 SQL*Plus 连接到 Oracle 数据库实例

在以下示例中,替换您的数据库实例的 DNS 名称,然后包含端口号和 Oracle SID。SID 值是您创建数据库实例时指定的数据库实例数据库的名称,而不是数据库实例的名称。

针对 Linux、OS X 或 Unix:

sqlplus 'mydbusr@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dns_name)(PORT=port))(CONNECT_DATA=(SID=database_name)))'

对于 Windows:

sqlplus mydbusr@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dns_name)(PORT=port))(CONNECT_DATA=(SID=database_name)))

您会看到类似以下内容的输出。

SQL*Plus: Release 12.1.0.2.0 Production on Mon Aug 21 09:42:20 2017

在您输入用户的密码之后,将出现 SQL 提示。

SQL>

注意

较短格式连接字符串 (Easy connect 或 EZCONNECT) (如 sqlplus USER/PASSWORD@LONGER-THAN-63-CHARS-RDS-ENDPOINT-HERE:1521/DATABASE_IDENTIFIER) 可能会遇到最大字符限制,不应用于连接。

安全组注意事项

要连接到您的数据库实例,它必须与包含将用来访问数据库实例的 IP 地址和网络配置的安全组关联。您可以在创建数据库实例时将其与适当的安全组关联。如果在创建数据库实例时分配了一个默认的未配置安全组,则数据库实例防火墙将阻止连接。

如果您需要创建新的安全组来启用访问,则创建的安全组的类型将取决于数据库实例所在的 Amazon EC2 平台。要确定您的平台,请参阅 确定您使用的是 EC2-VPC 还是 EC2-Classic 平台。一般而言,如果数据库实例位于 EC2-Classic 平台上,则创建数据库安全组;如果数据库实例位于 VPC 平台上,则创建 VPC 安全组。有关创建新安全组的信息,请参阅 Amazon RDS 个安全组

在创建新安全组后,您应修改数据库实例以使其与该安全组关联。有关更多信息,请参阅 修改运行 Oracle 数据库引擎的数据库实例

可通过使用 SSL 加密与数据库实例的连接来增强安全性。有关更多信息,请参阅 Oracle SSL

专用和共享服务器进程

服务器进程处理与 Oracle 数据库实例的用户连接。默认情况下,Oracle 数据库实例使用专用服务器进程。使用专用服务器进程,每个服务器进程仅服务一个用户进程。您可以选择配置共享服务器进程。使用共享服务器进程,每个服务器进程可服务多个用户进程。

当大量用户会话占用服务器上的太多内存时,您可以考虑使用共享服务器进程。当会话非常频繁时连接和断开连接,从而导致性能问题时,您也可以考虑使用共享服务器进程。使用共享服务器进程也有缺点。例如,它们可能会耗尽 CPU 资源,并且配置和管理起来更加复杂。

有关专用和共享服务器进程的更多信息,请参阅 Oracle 文档中的关于专用和共享服务器进程。有关在 Amazon RDS Oracle 数据库实例上配置共享服务器进程的更多信息,请参阅知识中心中的如何将 Amazon RDS for Oracle Database 配置为使用共享服务器?

排除与 Oracle 数据库实例的连接故障

下面是您在尝试连接到您的 Oracle 数据库实例时可能遇到的问题。

问题 问题排查建议

无法连接到数据库实例。

对于新创建的数据库实例,数据库实例的状态为 creating,直到该数据库实例可供使用。当状态变为 Available 时,您可以连接到该数据库实例。根据数据库实例类和存储量,新数据库实例可能需要等待 20 分钟时间才可用。

无法连接到数据库实例。

如果您不能通过在创建数据库实例时指定的端口收发消息,您就无法连接到数据库实例。请联系您的网络管理员,核对您为数据库实例指定的端口是否可以进行入站和出站通信。

无法连接到数据库实例。

由本地防火墙强制执行的访问规则与您在数据库实例的安全组中授权用于访问数据库实例的 IP 地址可能不匹配。此问题很可能是由防火墙上的出口和入口规则所致。有关安全组的更多信息,请参阅 Amazon RDS 个安全组

要演练为您的安全组设置规则的过程,请参阅教程:创建 Amazon VPC 以用于 Amazon RDS 数据库实例

Connect failed because target host or object does not exist – Oracle, Error: ORA-12545

确保您指定了正确的服务器名称和端口号。对于 Server name,在控制台中键入或粘贴 DNS 名称。

有关查找数据库实例的 DNS 名称和端口号的信息,请参阅查找数据库实例的终端节点

Invalid username/password; logon denied – Oracle, Error: ORA-01017

您可以访问数据库实例,但连接已被拒绝。这通常是提供的用户名或密码不正确导致的。请验证用户名和密码,然后重试。

相关主题