配置 RDS for Oracle CDB - Amazon Relational Database Service

配置 RDS for Oracle CDB

配置 CDB 与配置非 CDB 类似。

创建 RDS for Oracle CDB 实例

在 RDS for Oracle 中,创建 CDB 实例与创建非 CDB 实例几乎完全相同。不同之处在于,您在创建数据库实例时选择了 Oracle 多租户架构,还选择了架构配置:多租户或单租户。如果您在创建使用多租户配置的 CDB 时创建标签,则 RDS 会将标签传播到初始租户数据库。要创建 CDB,请使用 AWS Management Console、AWS CLI 或 RDS API。

创建 CDB 实例
  1. 登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在 Amazon RDS 控制台的右上角,选择要在其中创建 CDB 实例的 AWS 区域。

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

  4. 选择创建数据库

  5. 选择数据库创建方法中,选择标准创建

  6. 引擎选项下面,选择 Oracle

  7. 对于数据库管理类型,选择 Amazon RDS

  8. 对于架构设置,选择 Oracle 多租户架构

  9. 对于架构配置,请执行以下操作之一:

    • 选择多租户配置,继续执行下一步。

    • 选择单租户配置并跳至步骤 11。

  10. (多租户配置)对于租户数据库设置,请进行以下更改:

    • 对于租户数据库名称,输入初始 PDB 的名称。PDB 名称必须与 CDB 名称不同,后者默认为 RDSCDB

    • 对于租户数据库主用户名,输入 PDB 的主用户名。您不能使用租户数据库主用户名登录 CDB 本身。

    • 对于凭证管理,选择以下任一其它凭证管理选项:

      • 在 AWS Secrets Manager 管理

        托管式密码适用于初始租户数据库,而不适用于实例。在选择加密密钥中,选择 Secrets Manager 创建的 KMS 密钥或您已创建的密钥。

        注意

        我们建议将 AWS Secrets Manager 作为管理凭证的最安全的方法。将收取额外费用。有关更多信息,请参阅 使用 Amazon RDS 和 AWS Secrets Manager 管理密码

      • 自行管理

        要指定密码,请清除自动生成密码复选框(如果已选中)。在主密码确认主密码中输入相同的密码。

    • 租户数据库字符集中,为 PDB 选择一个字符集。您可以选择与 CDB 字符集不同的租户数据库字符集。

      默认 PDB 字符集是 AL32UTF8。如果选择非默认 PDB 字符集,则创建 CDB 的速度可能会变慢。

    注意

    您无法在创建操作中指定多个租户数据库。创建 CDB 时,它有一个 PDB。您可以在单独的操作中将 PDB 添加到现有的 CDB。

  11. (单租户配置)根据数据库实例的设置中列出的选项选择所需的设置:

    1. 设置部分中,打开凭证设置。然后执行以下操作:

      1. 主用户名中,输入 PDB 中本地用户的名称。您不能使用主用户名登录 CDB 根目录。

      2. 对于凭证管理,选择以下任一其它凭证管理选项:

        • 在 AWS Secrets Manager 管理

          选择加密密钥中,选择 Secrets Manager 创建的 KMS 密钥或您已创建的密钥。

          注意

          我们建议将 AWS Secrets Manager 作为管理凭证的最安全的方法。将收取额外费用。有关更多信息,请参阅 使用 Amazon RDS 和 AWS Secrets Manager 管理密码

        • 自行管理

          要指定密码,请清除自动生成密码复选框(如果已选中)。在主密码确认主密码中输入相同的密码。

  12. 对于其余部分,请指定数据库实例设置。有关每个设置的信息,请参阅数据库实例的设置

  13. 选择创建数据库

要使用多租户配置创建 CDB,请结合以下参数使用 create-db-instance 命令:

  • --db-instance-identifier

  • --db-instance-class

  • --engine { oracle-ee-cdb | oracle-se2-cdb }

  • --master-username

  • --master-user-password--manage-master-user-password

  • --multi-tenant(对于单租户配置,不要指定 multi-tenant--no-multi-tenant

  • --allocated-storage

  • --backup-retention-period

有关每项设置的信息,请参阅 数据库实例的设置

以下示例采用多租户配置创建了一个名为 my-cdb-inst 的 RDS for Oracle 数据库实例。如果您指定 --no-multi-tenant 或未指定 --multi-tenant,则默认 CDB 配置为单租户配置。引擎是 oracle-ee-cdb:一个指定 oracle-ee--multi-tenant 但因错误失败的命令。初始租户数据库名为 mypdb

对于 Linux、macOS 或 Unix:

aws rds create-db-instance \ --engine oracle-ee-cdb \ --db-instance-identifier my-cdb-inst \ --multi-tenant \ --db-name mypdb \ --allocated-storage 250 \ --db-instance-class db.t3.large \ --master-username pdb_admin \ --manage-master-user-password \ --backup-retention-period 3

对于 Windows:

aws rds create-db-instance ^ --engine oracle-ee-cdb ^ --db-instance-identifier my-cdb-inst ^ --multi-tenant ^ --db-name mypdb ^ --allocated-storage 250 ^ --db-instance-class db.t3.large ^ --master-username pdb_admin ^ --manage-master-user-password \ ^ --backup-retention-period 3
注意

作为安全最佳实践,请指定除此处所示提示以外的密码。

此命令生成类似于下述信息的输出。输出中不包括数据库名称、字符集、国家/地区字符集、主用户和主用户密钥。您可以使用 CLI 命令 describe-tenant-databases 查看此信息。

{ "DBInstance": { "DBInstanceIdentifier": "my-cdb-inst", "DBInstanceClass": "db.t3.large", "MultiTenant": true, "Engine": "oracle-ee-cdb", "DBResourceId": "db-ABCDEFGJIJKLMNOPQRSTUVWXYZ", "DBInstanceStatus": "creating", "AllocatedStorage": 250, "PreferredBackupWindow": "04:59-05:29", "BackupRetentionPeriod": 3, "DBSecurityGroups": [], "VpcSecurityGroups": [ { "VpcSecurityGroupId": "sg-0a1bcd2e", "Status": "active" } ], "DBParameterGroups": [ { "DBParameterGroupName": "default.oracle-ee-cdb-19", "ParameterApplyStatus": "in-sync" } ], "DBSubnetGroup": { "DBSubnetGroupName": "default", "DBSubnetGroupDescription": "default", "VpcId": "vpc-1234567a", "SubnetGroupStatus": "Complete", ...

要使用 Amazon RDS API 创建数据库实例,请调用 CreateDBInstance 操作。

有关每项设置的信息,请参阅 数据库实例的设置

在 RDS for Oracle CDB 中连接到 PDB

您可以使用像 SQL*Plus 这样的实用程序连接到 PDB。要下载包含独立版本 SQL*Plus 的 Oracle 即时客户端,请参阅 Oracle 即时客户端下载

要将 SQL*Plus 连接到 PDB,您需要以下信息:

  • PDB 名称

  • 数据库用户名和密码

  • 您的数据库实例的端点

  • 端口号

有关查找上述信息的信息,请参阅查找 RDS for Oracle 数据库实例的端点

例 使用 SQL*Plus 连接到您的 PDB

在以下示例中,用您的主用户替换 master_user_name。另外,请将端点替换为您的数据库实例,然后包含端口号和 Oracle SID。SID 值是您在创建数据库实例时指定的 PDB 的名称,而不是数据库实例标识符。

对于 Linux、macOS 或 Unix:

sqlplus 'master_user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=endpoint)(PORT=port))(CONNECT_DATA=(SID=pdb_name)))'

对于 Windows:

sqlplus master_user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=endpoint)(PORT=port))(CONNECT_DATA=(SID=pdb_name)))

您应该可以看到类似于如下所示的输出内容。

SQL*Plus: Release 19.0.0.0.0 Production on Mon Aug 21 09:42:20 2021

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

SQL>
注意

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