为 Amazon RDS Custom for Oracle 创建并连接到数据库实例 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

为 Amazon RDS Custom for Oracle 创建并连接到数据库实例

您可以创建 RDS Custom 数据库实例,然后使用安全外壳 (SSH) 或 Amazon Systems Manager 连接到该实例。

重要

务必先完成 为 Amazon RDS Custom for Oracle 设置您的环境 中的任务,然后才能创建或连接到 RDS Custom 数据库实例。

您可以在创建 RDS Custom 数据库实例时标记它们,但不要创建或修改 RDS Custom 自动化所需的 AWSRDSCustom 标签。有关更多信息,请参阅为 RDS Custom for Oracle 资源添加标签

首次创建 RDS Custom for Oracle 数据库实例时,您可能会收到以下错误:The service-linked role is in the process of being created.(服务相关角色正在创建过程中)。请稍后重试。如果您这样做,请等待几分钟,然后重新尝试创建数据库实例。

创建 RDS Custom for Oracle 数据库实例

使用 Amazon Web Services Management Console 或 Amazon CLI 创建 Amazon RDS Custom for Oracle 数据库实例。该过程与创建 Amazon RDS 数据库实例的过程相似。

有关更多信息,请参阅创建 Amazon RDS 数据库实例

要创建 RDS Custom for Oracle 数据库实例

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases (数据库)

  3. 选择创建数据库

  4. Choose a database creation method(选择数据库创建方法)中,选择 Standard create(标准创建)。

  5. Engine options(引擎选项)中,为数据库引擎类型选择 Oracle。Oracle 数据库是唯一受支持的数据库引擎。

  6. 对于 Database management type(数据库管理类型),选择 Amazon RDS Custom

  7. 对于 Edition(版本),选择 Oracle Enterprise Edition(Oracle 企业版)。

  8. 对于 Database version(数据库版本),选择您之前创建的 RDS Custom 自定义引擎版本 (CEV)。CEV 有以下格式:major-engine-version.customized_string。一个示例标识符是 19.my_cev1

  9. Templates(模板)中,选择 Production(生产)。

  10. Settings(设置)中,为 DB instance identifier(数据库实例标识符)输入一个唯一的名称。

  11. 请通过执行以下操作输入主密码:

    1. 设置部分中,打开凭证设置

    2. 清除自动生成密码复选框。

    3. 更改 Master username(主用户名)值,并在 Master password(主密码)和 Confirm password(确认密码)中输入相同的密码。

    预设情况下,新的 RDS Custom 数据库实例对主用户使用自动生成的密码。

  12. DB instance size(数据库实例大小)中,请选择一个 DB instance class(数据库实例类)。

    有关支持的类,请参阅 RDS Custom for Oracle 的数据库实例类支持

  13. 选择 Storage(存储)设置。

  14. 对于 RDS Custom 安全性,执行以下操作:

    1. 对于 IAM instance profile(IAM 实例配置文件),为 RDS Custom for Oracle 数据库实例选择实例配置文件。

      IAM 实例配置文件必须以 AWSRDSCustom 开头,例如,AWSRDSCustomInstanceProfileForRdsCustomInstance

    2. 对于 Encryption(加密),选择 Enter a key ARN(输入一个密钥 ARN)以列出可用的 Amazon KMS 密钥。然后从列表中选择您的密钥。

      RDS Custom 需要 Amazon KMS 密钥。有关更多信息,请参阅请确保您有对称的加密 Amazon KMS 密钥

  15. (可选)在 Additional configuration(其他配置)中,输入您想要的 Initial database name(初始数据库名称)。

    原定设置数据库名称为 ORCL

  16. 对于其余部分,请指定首选的 RDS Custom 数据库实例设置。有关每项设置的信息,请参阅 数据库实例的设置。以下设置不会显示在控制台中,也不受支持:

    • 处理器功能

    • Storage autoscaling (存储自动扩展)

    • 可用性与持久性

    • Database authentication(数据库身份验证)中的 Password and Kerberos authentication(密码和 Kerberos 身份验证)选项(仅支持 Password authentication(密码身份验证))

    • Additional configuration(其他配置)中的 Database options(数据库选项)组

    • Performance Insights

    • 日志导出

    • 启用自动次要版本升级

    • 删除保护

    Backup retention period(备份保留期)受支持,但您不能选择 0 天

  17. 选择 Create database(创建数据库)。

    View credential details(查看凭证详细信息)按钮显示在 Databases(数据库)页面中。

    要查看 RDS Custom 数据库实例的主用户名和密码,请选择 View credential details(查看凭证详细信息)。

    要以主用户身份连接到数据库实例,请使用显示的用户名和密码。

    重要

    您无法再次查看主用户密码。如果您不记录它,您可能需要更改它。如果需要在 RDS Custom 数据库实例可用后更改主用户密码,则可以修改数据库实例以执行此操作。有关修改数据库实例的更多信息,请参阅 管理 Amazon RDS Custom for Oracle 数据库实例

  18. 选择 Databases(数据库)以查看 RDS Custom 数据库实例列表。

  19. 选择您刚创建的 RDS Custom 数据库实例。

    在 RDS 控制台上,将显示新 RDS Custom 数据库实例的详细信息。

    • 数据库实例具有 creating(正在创建)状态,直到 RDS Custom 数据库实例完成创建并可供使用。当状态变为 Available (可用) 时,您可以连接到该数据库实例。根据所分配的实例类和存储的不同,新数据库实例可能需要数分钟时间才能变得可用。

    • Role(角色)具有值 Instance (RDS Custom)(实例 (RDS Custom))。

    • RDS Custom automation mode(RDS Custom 自动化模式)具有值 Full automation(完全自动化)。此设置意味着数据库实例可以提供自动监控和实例恢复。

您可以通过使用 create-db-instance Amazon CLI 命令创建 RDS Custom 数据库实例。

以下选项为必填:

  • --db-instance-identifier

  • --db-instance-class(有关支持的实例类的列表,请参阅 RDS Custom for Oracle 的数据库实例类支持

  • --engine custom-oracle-ee

  • --engine-version cev(其中 cev 是您在 创建 CEV 中指定的自定义引擎版本的名称)

  • --kms-key-id

  • --no-auto-minor-version-upgrade

  • --custom-iam-instance-profile

以下示例将创建名为 my-custom-instance 的 RDS Custom 数据库实例。备份保留期为三天。

对于 Linux、macOS 或 Unix:

aws create-db-instance \ --engine custom-oracle-ee \ --db-instance-identifier my-custom-instance \ --engine-version 19.my_cev1 \ --allocated-storage 250 \ --db-instance-class db.m5.xlarge \ --db-subnet-group mydbsubnetgroup \ --master-username myawsuser \ --master-user-password mypassword \ --backup-retention-period 3 \ --no-multi-az \ --port 8200 \ --license-model bring-your-own-license \ --kms-key-id my-kms-key \ --no-auto-minor-version-upgrade \ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance

对于 Windows:

aws rds create-db-instance ^ --engine custom-oracle-ee ^ --db-instance-identifier my-custom-instance ^ --engine-version 19.my_cev1 ^ --allocated-storage 250 ^ --db-instance-class db.m5.xlarge ^ --db-subnet-group mydbsubnetgroup ^ --master-username myawsuser ^ --master-user-password mypassword ^ --backup-retention-period 3 ^ --no-multi-az ^ --port 8200 ^ --license-model bring-your-own-license ^ --kms-key-id my-kms-key ^ --no-auto-minor-version-upgrade ^ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance

使用 describe-db-instances 命令以获取有关您的实例的详细信息。

aws rds describe-db-instances --db-instance-identifier my-custom-instance

以下部分输出显示了引擎、参数组和其他信息。

{ "DBInstances": [ { "PendingModifiedValues": {}, "Engine": "custom-oracle-ee", "MultiAZ": false, "DBSecurityGroups": [], "DBParameterGroups": [ { "DBParameterGroupName": "default.custom-oracle-ee-19", "ParameterApplyStatus": "in-sync" } ], "AutomationMode": "full", "DBInstanceIdentifier": "my-custom-instance", ... "TagList": [ { "Key": "AWSRDSCustom", "Value": "custom-oracle" } ] } ] }

RDS Custom 服务相关角色

服务相关角色 为 Amazon RDS Custom 提供针对您的 Amazon Web Services 账户中的资源的访问权限。这样可以让您更轻松地使用 RDS Custom,因为您不必手动添加必要的权限。RDS Custom 定义其服务相关角色的权限,除非另外定义,否则只有 RDS Custom 可以代入该角色。定义的权限包括信任策略和权限策略,以及不能附加到任何其他 IAM 实体的权限策略。

创建 RDS Custom 数据库实例时,将创建并使用 Amazon RDS 和 RDS Custom 服务相关角色(如果它们尚未存在)。有关更多信息,请参阅将服务相关角色用于 Amazon RDS

首次创建 RDS Custom for Oracle 数据库实例时,您可能会收到以下错误:The service-linked role is in the process of being created.(服务相关角色正在创建过程中)。请稍后重试。如果您这样做,请等待几分钟,然后重新尝试创建数据库实例。

使用 SSH 连接到 RDS Custom 数据库实例

创建 RDS Custom 数据库实例后,您可以使用 SSH 客户端连接到此实例。该过程与连接到 Amazon EC2 实例的过程相同。有关更多信息,请参阅使用 SSH 连接到 Linux 实例

要连接到数据库实例,您需要与该实例关联的密钥对。RDS Custom 会代表您创建密钥对。密钥对名称使用前缀 do-not-delete-rds-custom-ssh-privatekey-db-。Amazon Secrets Manager 将私有密钥存储为密钥。

完成以下步骤中的任务:

配置您的数据库实例以允许 SSH 连接

确保数据库实例安全组允许端口 22 上的 TCP 入站连接。要了解如何配置实例安全组,请参阅 配置您的实例安全组

检索您的私有密钥

使用 Amazon Web Services Management Console 或 Amazon CLI 检索私有密钥。

要检索私有密钥

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,请选择 Databases(数据库),然后选择要连接到的 RDS Custom 数据库实例。

  3. 选择 Configuration

  4. 请注意 Resource ID(资源 ID)值。例如,资源 ID 可能为 db-ABCDEFGHIJKLMNOPQRS0123456

  5. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  6. 在导航窗格中,选择实例

  7. 查找 EC2 实例的名称,然后选择与其关联的实例 ID。例如,EC2 实例 ID 可能为 i-abcdefghijklm01234

  8. Details(详细信息)中,查找 Key pair name(密钥对名称)。密钥对名称包括资源 ID。例如,密钥对名称可能为 do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c

  9. 在实例摘要中,查找 Public IPv4 DNS(公有 IPv4 DNS)。例如,公有域名系统 (DNS) 地址可能为 ec2-12-345-678-901.us-east-2.compute.amazonaws.com

  10. 打开位于 https://console.aws.amazon.com/secretsmanager/ 的 Amazon Secrets Manager 控制台。

  11. 选择与密钥对同名的密钥。

  12. 选择 Retrieve secret value (检索密钥值)

  13. 将私有密钥复制到文本文件中,然后使用 .pem 扩展名保存该文件。例如,将文件另存为 /tmp/do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem

要检索私有密钥,请使用 Amazon CLI。

要查找 RDS Custom 数据库实例的数据库资源 ID,请使用 aws rds describe-db-instances

aws rds describe-db-instances \ --query 'DBInstances[*].[DBInstanceIdentifier,DbiResourceId]' \ --output text

以下示例输出显示了 RDS Custom 实例的资源 ID。前缀为 db-

db-ABCDEFGHIJKLMNOPQRS0123456

要查找数据库实例的 EC2 实例 ID,请使用 aws ec2 describe-instances。以下示例将 db-ABCDEFGHIJKLMNOPQRS0123456 用于资源 ID。

aws ec2 describe-instances \ --filters "Name=tag:Name,Values=db-ABCDEFGHIJKLMNOPQRS0123456" \ --output text \ --query 'Reservations[*].Instances[*].InstanceId'

以下示例输出显示了 EC2 实例 ID。

i-abcdefghijklm01234

要查找密钥名称,请指定 EC2 实例 ID。

aws ec2 describe-instances \ --instance-ids i-0bdc4219e66944afa \ --output text \ --query 'Reservations[*].Instances[*].KeyName'

以下示例输出显示了使用前缀 do-not-delete-rds-custom-ssh-privatekey- 的密钥名称。

do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c

要将私有密钥保存在以密钥命名的 .pem 文件中,请使用 aws secretsmanager。以下示例将文件保存在您的 /tmp 目录中。

aws secretsmanager get-secret-value \ --secret-id do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c \ --query SecretString \ --output text >/tmp/do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem

使用 ssh 实用工具连接到 EC2 实例

以下示例假定您创建了包含您的私有密钥的 .pem 文件。

包含您的 .pem 文件的目录的更改。使用 chmod,将权限设置为 400

cd /tmp chmod 400 do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem

要获取您的公有 DNS 名称,请使用命令 ec2 describe-instances

aws ec2 describe-instances \ --instance-ids i-abcdefghijklm01234 \ --output text \ --query 'Reservations[*].Instances[*].PublicDnsName'

以下示例输出显示了公有 DNS 名称。

ec2-12-345-678-901.us-east-2.compute.amazonaws.com

在 ssh 实用工具中,指定 .pem 文件和实例的公有 DNS 名称。

ssh -i \ "do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem" \ ec2-user@ec2-12-345-678-901.us-east-2.compute.amazonaws.com

使用 Amazon Systems Manager 连接到 RDS Custom 数据库实例

创建 RDS Custom 数据库实例后,您可以使用 Amazon Systems Manager 会话管理器。会话管理器是一项 Systems Manager 功能,可让您通过基于浏览器的 shell 或通过 Amazon CLI 管理 Amazon EC2 实例。有关更多信息,请参阅 Amazon Systems Manager 会话管理器

使用会话管理器连接到您的数据库实例

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,请选择 Databases(数据库),然后选择要连接到的 RDS Custom 数据库实例。

  3. 选择 Configuration

  4. 请注意您的数据库实例的 Resource ID(资源 ID)。例如,资源 ID 可能为 db-ABCDEFGHIJKLMNOPQRS0123456

  5. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  6. 在导航窗格中,选择实例

  7. 查找 EC2 实例的名称,然后单击与其关联的实例 ID。例如,实例 ID 可能为 i-abcdefghijklm01234

  8. 选择 Connect(连接)。

  9. 选择 Session Manager(会话管理器)。

  10. 选择 Connect(连接)。

    系统将为您的会话打开一个窗口。

您可以使用 Amazon CLI 连接到 RDS Custom 数据库实例。此方法需要 Amazon CLI 的会话管理器插件。要了解如何安装插件,请参阅安装 Amazon CLI 的会话管理器插件

要查找 RDS Custom 数据库实例的数据库资源 ID,请使用 aws rds describe-db-instances

aws rds describe-db-instances \ --query 'DBInstances[*].[DBInstanceIdentifier,DbiResourceId]' \ --output text

以下示例输出显示了 RDS Custom 实例的资源 ID。前缀为 db-

db-ABCDEFGHIJKLMNOPQRS0123456

要查找数据库实例的 EC2 实例 ID,请使用 aws ec2 describe-instances。以下示例将 db-ABCDEFGHIJKLMNOPQRS0123456 用于资源 ID。

aws ec2 describe-instances \ --filters "Name=tag:Name,Values=db-ABCDEFGHIJKLMNOPQRS0123456" \ --output text \ --query 'Reservations[*].Instances[*].InstanceId'

以下示例输出显示了 EC2 实例 ID。

i-abcdefghijklm01234

使用 aws ssm start-session 命令,以在 --target 参数中提供 EC2 实例 ID。

aws ssm start-session --target "i-abcdefghijklm01234"

成功的连接如下所示。

Starting session with SessionId: yourid-abcdefghijklm1234 [ssm-user@ip-123-45-67-89 bin]$