创建并连接到 Oracle 数据库实例
本教程创建一个 EC2 实例和一个 RDS for Oracle 数据库实例。本教程向您展示如何使用标准 Oracle 客户端从 EC2 实例访问数据库实例。作为最佳实践,本教程在虚拟私有云(VPC)中创建了私有数据库实例。在大多数情况下,同一 VPC 中的其他资源(例如 EC2 实例)可以访问数据库实例,但 VPC 之外的资源无法访问该实例。
完成本教程后,VPC 的每个可用区中都有一个公有和私有子网。在一个可用区中,EC2 实例在公有子网中,数据库实例在私有子网中。
重要
创建 Amazon 账户并不会收费;但是,在完成本教程过程中使用 Amazon 资源可能会产生费用。完成本教程后,如果不再需要这些资源,可以将其删除。
下图显示了教程完成时的配置。
本教程可帮助您通过以下方法之一创建资源:
-
使用 Amazon Web Services Management Console ‑ 步骤 2:创建 Oracle 数据库实例 和 步骤 1:创建 EC2 实例
-
使用 Amazon CloudFormation 创建数据库实例和 EC2 实例 - (可选)使用 Amazon CloudFormation 创建 VPC、EC2 实例和 Oracle 数据库实例
第一种方法使用轻松创建,通过 Amazon Web Services Management Console 创建私有 Oracle 数据库实例。您可以仅指定数据库引擎类型、数据库实例大小和数据库实例标识符。轻松创建为其他配置选项使用默认设置。
如果改用标准创建,则在创建数据库实例时可以指定更多配置选项。这些选项包括可用性、安全性、备份和维护设置。要创建公有数据库实例,必须使用标准创建。有关信息,请参阅创建 Amazon RDS 数据库实例。
主题
先决条件
在开始之前,请完成以下各节中的步骤:
步骤 1:创建 EC2 实例
创建将用于连接到数据库的 Amazon EC2 实例。
创建 EC2 实例
登录到 Amazon Web Services Management Console 并打开 Amazon EC2 控制台(https://console.aws.amazon.com/ec2/
)。 -
在 Amazon Web Services Management Console的右上角,选择要在其中创建 EC2 实例的 Amazon Web Services 区域。
-
选择 EC2 控制面板,然后选择启动实例,如下图所示。
启动实例页面打开。
-
在启动实例页面上选择以下设置。
-
在 Name and tags(名称和标签)下,对于 Name(名称),输入
ec2-database-connect
。 -
在应用程序和操作系统映像(Amazon 机器映像)下,选择 Amazon Linux,然后选择 Amazon Linux 2023 AMI。对于其他选项,保留默认选择。
-
在 Instance type(实例类型)下,选择 t2.micro。
-
在 Key pair (login) [密钥对(登录)] 下,选择 Key pair name(密钥对名称)以使用现有密钥对。要为 Amazon EC2 实例创建新的密钥对,请选择 Create new key pair(创建新的密钥对),然后使用 Create key pair(创建密钥对)窗口来创建它。
有关创建新的密钥对的更多信息,请参阅《Amazon EC2 用户指南》中的创建密钥对。
-
对于网络设置中的允许 SSH 流量,选择 EC2 实例的 SSH 连接来源。
如果显示的 IP 地址对于 SSH 连接是正确的,您可以选择 My IP(我的 IP)。否则,您可以确定要用来通过 Secure Shell(SSH)连接到 VPC 中的 EC2 实例的 IP 地址。要确定您的公有 IP 地址,请在新的浏览器窗口或标签页中,使用 https://checkip.amazonaws.com
上的服务。IP 地址的示例为 192.0.2.1/32。 在许多情况下,您可能通过互联网服务提供商(ISP)进行连接,或者在不使用静态 IP 地址的情况下从防火墙之后进行连接。如果是这样,请确保确定客户端计算机使用的 IP 地址范围。
警告
如果您使用
0.0.0.0/0
进行 SSH 访问,则所有 IP 地址可能能够使用 SSH 访问您的公有 EC2 实例。在测试环境下短时间内,此方法尚可接受,但它对于生产环境并不安全。在生产环境中,将仅向特定 IP 地址或地址范围授权使用 SSH 访问您的 EC2 实例。下图显示了网络设置部分的示例。
-
对于其余部分保留默认值。
-
查看摘要面板中您的 EC2 实例配置的摘要,当您准备好后,选择启动实例。
-
-
在启动状态页面上,记下新 EC2 实例的标识符,例如:
i-1234567890abcdef0
。 -
选择 EC2 实例标识符以打开 EC2 实例列表,然后选择您的 EC2 实例。
-
在详细信息选项卡中,记下使用 SSH 进行连接时所需的以下值:
-
在实例摘要中,记下公有 IPv4 DNS 的值。
-
在实例详细信息中,记下密钥对名称的值。
-
-
等待 EC2 实例的实例状态变为正在运行,然后继续。
步骤 2:创建 Oracle 数据库实例
Amazon RDS 的基本构建基块是数据库实例。这是您将要在其中运行 Oracle 数据库的环境。
在该示例中,您使用轻松创建来创建一个数据库实例,它运行带有 db.m5.large 数据库实例类的 Oracle 数据库引擎。
使用“轻松创建”创建 Oracle 数据库实例
登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在 Amazon RDS 控制台的右上角,选择要在其中创建数据库实例的 Amazon Web Services 区域。
-
在导航窗格中,选择 Databases (数据库)。
-
选择 Create database (创建数据库),并确保已选择 Easy create (轻松创建)。
-
在配置中,选择 Oracle。
-
对于数据库实例大小,选择设备/测试。
-
对于 DB instance identifier(数据库实例标识符),输入
database-test1
。 -
对于主用户名,输入主用户的名称,或者保留原定设置名称。
创建数据库页面应类似于以下图像。
-
要为数据库实例使用自动生成的主密码,请选择自动生成密码。
要输入主密码,请确保清除自动生成密码,然后在主密码和确认密码中输入相同的密码。
-
要设置与您之前创建的 EC2 实例的连接,请打开设置 EC2 连接 - 可选。
选择连接到 EC2 计算资源。选择您之前创建的 EC2 实例。
-
打开查看轻松创建的默认设置。
您可以检查在启用 Easy create (轻松创建) 时使用的默认设置。可在创建数据库后编辑列显示在创建数据库后可以更改的选项。
-
如果该列中的某个设置为否,而您想要不同的设置,则可以使用标准创建来创建数据库实例。
-
如果某个设置在该列中为是,您可以使用标准创建来创建数据库实例,也可以在创建后修改数据库实例以更改该设置。
-
-
选择创建数据库。
要查看数据库实例的主用户名和密码,请选择查看凭证详细信息。
您可以使用显示的用户名和密码,以主用户身份连接到数据库实例。
重要
您无法再次查看主用户密码。如果您不记录它,您可能需要更改它。
如果需要在数据库实例可用后更改主用户密码,则可以修改数据库实例以执行此操作。有关修改 数据库实例的更多信息,请参阅 修改 Amazon RDS 数据库实例。
-
在数据库列表中,选择新的 Oracle 数据库实例的名称以显示其详细信息。
数据库实例具有正在创建状态,直到此实例就绪可供使用。
当状态变为 Available(可用)时,您便可以连接到该数据库实例。根据数据库实例类和存储量,新实例可能需要等待 20 分钟时间才可用。在创建数据库实例时,您可以继续执行下一步并创建 EC2 实例。
(可选)使用 Amazon CloudFormation 创建 VPC、EC2 实例和 Oracle 数据库实例
您可以使用 Amazon CloudFormation 通过将基础设施视为代码来配置 Amazon 资源,而无需使用控制台创建 VPC、EC2 实例和 Oracle 数据库实例。为了帮助您将 Amazon 资源组织成更小、更易于管理的单元,您可以使用 Amazon CloudFormation 嵌套堆栈功能。有关更多信息,请参阅在 Amazon CloudFormation 控制台上创建堆栈和使用嵌套堆栈。
重要
Amazon CloudFormation 是免费的,但 CloudFormation 创建的资源是实时的。您需要为这些资源支付标准使用费,直到您终止使用它们为止。总费用将应该最少的。有关如何最大限度降低费用的信息,请转至 Amazon Free Tier
要使用 Amazon CloudFormation 控制台创建资源,请执行以下步骤:
步骤 1:下载 CloudFormation 模板
步骤 2:使用 CloudFormation 配置资源
下载 CloudFormation 模板
CloudFormation 模板是一个 JSON 或 YAML 文本文件,其中包含有关您希望在堆栈中创建的资源的配置信息。此模板还为您创建 VPC 和堡垒主机以及 RDS 实例。
要下载模板文件,请打开以下链接 Oracle CloudFormation 模板
在 Github 页面中,单击 Download raw file 按钮以保存模板 YAML 文件。
使用 CloudFormation 配置资源
注意
在开始此过程之前,请确保您的 Amazon Web Services 账户中具有 EC2 实例密钥对。有关更多信息,请参阅 Amazon EC2 密钥对和 Linux 实例。
使用 Amazon CloudFormation 模板时,必须选择正确的参数以确保正确创建资源。按以下步骤操作:
登录到 Amazon Web Services Management Console 并打开 Amazon CloudFormation 控制台 https://console.aws.amazon.com/cloudformation
。 选择创建堆栈。
在“指定模板”部分,选择从您的计算机上传模板文件,然后选择下一步。
在指定堆栈详细信息页面上,设置以下参数:
将堆栈名称设置为 OracleTestStack。
在参数下,通过选择三个可用区来设置可用区。
在 Linux 堡垒主机配置下,在密钥名称中,选择用于登录您的 EC2 实例的密钥对。
在 Linux 堡垒主机配置设置中,将允许的 IP 范围设置为您的 IP 地址。要使用 Secure Shell(SSH)连接到 VPC 中的 EC2 实例,请通过 https://checkip.amazonaws.com
上的服务确定您的公有 IP 地址。IP 地址的示例为 192.0.2.1/32。 警告
如果您使用
0.0.0.0/0
进行 SSH 访问,则所有 IP 地址可能能够使用 SSH 访问您的公有 EC2 实例。在测试环境下短时间内,此方法尚可接受,但它对于生产环境并不安全。在生产环境中,将仅向特定 IP 地址或地址范围授权使用 SSH 访问您的 EC2 实例。在数据库常规配置下,将数据库实例类设置为 db.t3.micro。
将数据库名称设置为
database-test1
。在数据库主用户名中,输入主用户的名称。
在本教程中,将使用 Secrets Manager 管理数据库主用户密码设置为
false
。在数据库密码中,设置所选密码。请记住此密码以便在教程中的后续步骤中使用。
在数据库存储配置下,将数据库存储类型设置为 gp2。
在数据库监控配置下,将启用 RDS 性能详情设置为 false。
将所有其他设置保留为默认值。单击下一步继续。
在配置堆栈选项页面中,保留所有默认选项。单击下一步继续。
在查看堆栈页面中,在检查数据库和 Linux 堡垒主机选项后,选择提交。
堆栈创建过程完成后,查看名为 BastionStack 和 RDSNS 的堆栈,记下连接到数据库所需的信息。有关更多信息,请参阅在 Amazon Web Services Management Console 上查看 Amazon CloudFormation 堆栈数据和资源。
步骤 3:将 SQL 客户端连接到 Oracle 数据库实例
您可以使用任何标准 SQL 客户端应用程序连接到数据库实例。在该示例中,您使用 Oracle 命令行客户端连接到 Oracle 数据库实例。
连接到 Oracle 数据库实例
-
找到您的数据库实例的端点(DNS 名称)和端口号。
登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在 Amazon RDS 控制台的右上角,选择数据库实例的 Amazon Web Services 区域。
-
在导航窗格中,选择 Databases(数据库)。
-
选择 Oracle 数据库实例名称以显示其详细信息。
-
在连接和安全性选项卡上,复制端点。另请注意端口号。您需要端点和端口号才能连接到数据库实例。
-
按照《Amazon EC2 用户指南》中的连接到 Linux 实例中的步骤操作,连接到您之前创建的 EC2 实例。
我们建议您使用 SSH 连接到 EC2 实例。如果 SSH 客户端实用程序安装在 Windows、Linux 或 Mac 上,则可以使用以下命令格式连接到该实例:
ssh -i
location_of_pem_file
ec2-user@ec2-instance-public-dns-name
例如,假设在 Linux 上
ec2-database-connect-key-pair.pem
存储在/dir1
中,而 EC2 实例的公有 IPv4 DNS 为ec2-12-345-678-90.compute-1.amazonaws.com
。SSH 命令将如下所示:ssh -i /dir1/ec2-database-connect-key-pair.pem ec2-user@ec2-12-345-678-90.compute-1.amazonaws.com
-
通过更新 EC2 实例上的软件,获取最新的错误修复和安全更新。为此,请使用以下命令。
注意
-y
选项安装更新时不提示确认。要在安装前检查更新,请忽略该选项。sudo dnf update -y
-
在 Web 浏览器中,转到 https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
。 -
对于网页上显示的最新数据库版本,请复制 Instant Client 基本软件包和 SQL*Plus 软件包的 .rpm 链接(不是 .zip 链接)。例如,以下链接适用于 Oracle Database 21.9 版本:
-
https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-basic-21.9.0.0.0-1.el8.x86_64.rpm
-
https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-sqlplus-21.9.0.0.0-1.el8.x86_64.rpm
-
-
在 SSH 会话中,运行
wget
命令以从您在上一步中获得的链接下载 .rpm 文件。以下示例下载 Oracle Database 21.9 版本的 .rpm 文件:wget https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-basic-21.9.0.0.0-1.el8.x86_64.rpm wget https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-sqlplus-21.9.0.0.0-1.el8.x86_64.rpm
-
通过运行
dnf
命令安装软件包,如下所示:sudo dnf install oracle-instantclient-*.rpm
-
启动 SQL**Pus,然后连接到 Oracle 数据库实例。例如,输入以下命令。
将
替换为数据库实例端点(DNS 名称),并将oracle-db-instance-endpoint
替换为您使用的主用户名。对于 Oracle 使用轻松创建时,数据库名称为admin
DATABASE
。提示输入密码时,提供所使用的主密码。sqlplus
admin
@oracle-db-instance-endpoint
:1521/DATABASE在输入用户的密码后,您应该会看到类似于以下内容的输出。
SQL*Plus: Release 21.0.0.0.0 - Production on Wed Mar 1 16:41:28 2023 Version 21.9.0.0.0 Copyright (c) 1982, 2022, Oracle. All rights reserved. Enter password: Last Successful login time: Wed Mar 01 2023 16:30:52 +00:00 Connected to: Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production Version 19.18.0.0.0 SQL>
有关连接到 RDS for Oracle 数据库实例的更多信息,请参阅连接到 RDS for Oracle 数据库实例。如果您无法连接到数据库实例,请参阅 无法连接到 Amazon RDS 数据库实例。
出于安全考虑,最佳做法是使用加密连接。仅当客户端和服务器位于同一 VPC 中,并且网络受信任时,才会使用未加密的 Oracle 连接。有关使用加密连接的信息,请参阅 保护 Oracle 数据库实例连接安全。
-
运行 SQL 命令。
例如,以下 SQL 命令显示了当前日期:
SELECT SYSDATE FROM DUAL;
步骤 4:删除 EC2 实例和数据库实例
在连接到并浏览您创建的示例 EC2 实例和数据库实例之后,删除它们,以便不再为其付费。
如果您使用 Amazon CloudFormation 创建了资源,请跳过此步骤,转至下一步。
删除 EC2 实例
登录到 Amazon Web Services Management Console 并打开 Amazon EC2 控制台(https://console.aws.amazon.com/ec2/
)。 -
在导航窗格中,选择实例。
-
选择 EC2 实例,然后依次选择实例状态、终止实例。
-
当系统提示您确认时,选择终止。
有关删除 EC2 实例的更多信息,请参阅《Amazon EC2 用户指南》中的终止实例。
删除无最终数据库快照的数据库实例
登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 Databases (数据库)。
-
选择要删除的数据库实例。
-
对于 Actions,选择 Delete。
-
清除是否创建最终快照?和保留自动备份。
-
完成确认并选择删除。
(可选)删除使用 CloudFormation 创建的 EC2 实例和数据库实例
如果您使用 Amazon CloudFormation 创建了资源,请在连接并浏览 EC2 实例和数据库实例示例之后,删除 CloudFormation 堆栈,以便不再为其付费。
删除 CloudFormation 资源
打开 Amazon CloudFormation 控制台。
-
在 CloudFormationconsole 的堆栈页面上,选择根堆栈(名称不是 VPCStack、BastionStack 或 RDSNS 的堆栈)。
-
选择删除。
-
提示进行确认时,选择删除堆栈。
有关如何删除 CloudFormation 中堆栈的信息,请参阅《Amazon CloudFormation 用户指南》中的在 Amazon CloudFormation 控制台上删除堆栈。
(可选)将您的数据库实例连接到 Lambda 函数
您也可以将您的 RDS for Oracle 数据库实例连接到 Lambda 无服务器计算资源。Lambda 函数支持在不预调配或管理基础设施的情况下运行代码。Lambda 函数还支持自动响应任何规模的代码执行请求,从每天十几个事件到每秒数百个事件。有关更多信息,请参阅 自动连接 Lambda 函数和数据库实例。