

# Amazon RDS Custom for Oracle 的已知问题
<a name="custom-known-issues"></a>

使用 RDS Custom for Oracle 时，请注意数据库实例存在的以下问题。
+ 不支持调整根卷或 dbbin 卷的大小。
**警告**  
强烈建议您不要手动调整根卷或 dbbin 卷的大小。建议您将所有配置存储在修补后仍然存在的数据卷中，并且仅使用 RDS 扩展存储 API 调整卷的大小。
+ 当数据库实例位于较旧的 AMI（比如使用 Oracle Linux 7 的 AMI）上时，某些 RDS API 可能会被阻止。要解决此问题，请使用操作系统修补功能将数据库实例修补到最新的 AMI。有关更多信息，请参阅 [CEV 升级选项](custom-upgrading.md#custom-upgrading.overview.cev-options)。
+ 在执行 RDS 操作之前，请确保您的 AWS 账户中有足够的计算和存储配额。
+ 如果数据库处于创建状态，并且您主动登录该数据库或 Amazon EC2 主机并运行命令，则数据库创建可能无法完成。
+ 由于只读副本问题，目前不支持控制文件多路复用。在创建只读副本之前，请确保在源数据库上的 `CONTROL_FILES` 初始化参数中仅指定一个文件名。
+ 您无法将数据库模式从 `PHYSICAL STANDBY`（已装载或只读）更改为 `SNAPSHOT STANDBY`（转换为读/写）。
+ 如果 AWS 账户是具有服务控制策略（SCP）的 AWS Organization 的一部分，并且 SCP 包含条件键，则可能无法创建 RDS Custom for Oracle 数据库实例，并会显示以下错误：

  ```
  You can't create the DB instance because of incompatible resources. 
  The IAM instance profile role [AWSRDSCustomInstanceRole1-us-east-1] is missing the following permissions: 
  EFFECT [Allow] on ACTION(S) [ssm:DescribeAssociation, ssm:DescribeDocument, ssm:GetConnectionStatus, 
    ssm:GetDeployablePatchSnapshotForInstance, ssmmessages:OpenControlChannel, ssm:GetParameters, 
    ssm:ListInstanceAssociations, ssm:PutConfigurePackageResult, ssmmessages:CreateControlChannel, 
    ssm:GetParameter, ssm:UpdateAssociationStatus, ssm:GetManifest, ssmmessages:CreateDataChannel, 
    ssm:PutInventory, ssm:UpdateInstanceInformation, ssm:DescribeInstanceInformation, 
    ssmmessages:OpenDataChannel, ssm:GetDocument, ssm:ListAssociations, ssm:PutComplianceItems, 
    ssm:UpdateInstanceAssociationStatus] for RESOURCE(S) [], EFFECT [Allow] on ACTION(S) [ec2messages:DeleteMessage, 
    ec2messages:FailMessage, ec2messages:GetEndpoint, ec2messages:AcknowledgeMessage, ec2messages:GetMessages, 
    ec2messages:SendReply] for RESOURCE(S) [], EFFECT [Allow] on ACTION(S) [logs:CreateLogStream, 
    logs:DescribeLogStreams, logs:PutRetentionPolicy, logs:PutLogEvents]
  ```

  要解决此问题，请向 支持 创建支持工单。

## 数据库用户帐户存在的已知问题
<a name="custom-known-issues-accounts"></a>

请注意以下问题：
+ 不要删除以字符串 `RDS` 开头的数据库用户账户，例如 `RDSADMIN` 和 `RDS_DATAGUARD`。RDS Custom for Oracle 使用 `RDS` 账户执行自动化操作。如果删除此用户帐户，RDS Custom 会将实例移至不受支持的配置状态。
+ 不能使用 `ModifyDBInstance` API 更改 RDS Custom for Oracle 数据库实例的主用户名。
+ RDS Custom for Oracle 会轮换所有数据库实例的用户账户凭证。有关更多信息，请参阅 [轮换 RDS Custom for Oracle 凭证以遵循合规性计划](custom-security.cred-rotation.md)。如果使用本地主/备用配置，则凭证轮换可能会影响以下资源：
  + 手动创建的备用 RDS Custom for Oracle 实例

    要解决此问题，请删除手动创建的备用数据库，然后使用 API 调用创建 Oracle 只读副本。手动管理手动创建的备用数据库的密钥，使其与源数据库实例相匹配。
  + 手动创建的跨区域只读副本

    要解决此问题，请手动保存密钥，使其与主数据库实例相匹配。

## 参数和配置文件存在的已知问题
<a name="custom-known-issues-files"></a>
+ 在执行扩展计算、操作系统升级以及 RDS Custom 替换根卷的其他操作之后，必须配置 `crontab` 文件。强烈建议您保留 `crontab` 的备份。
+ 配置 `listener.ora` 文件时，请注意以下准则：
  + 确保该文件中的每个条目都位于一行中。这种方法可以避免在创建实例期间出现缩进问题。
  + 确保 `GLOBAL_DBNAME` 等于 `SID_NAME` 的值。
  + 确保 `LISTENER` 的值遵循命名约定 `L_dbname_001`。
  + 确保 `listener.ora` 文件保持与数据库名称的联系。RDS Custom 使用此联系来验证数据库的启动。如果您错误地修改此文件，则诸如扩展计算或修补之类的操作可能会失败。

    以下示例显示正确配置的 `listener.ora` 参数。

    ```
    ADR_BASE_L_ORCL_001=/rdsdbdata/log/
    USE_SID_AS_SERVICE_L_ORCL_001=ON
    SID_LIST_L_ORCL_001=(SID_LIST = (SID_DESC = (SID_NAME = ORCL)(GLOBAL_DBNAME = ORCL) (ORACLE_HOME = /rdsdbbin/oracle.19.custom.r1.EE.1)))
    SUBSCRIBE_FOR_NODE_DOWN_EVENT_L_ORCL_001=OFF
    L_ORCL_001=(DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(PORT = XXXX)(HOST = x.x.x.x))) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(PORT = XXXX)(HOST = 127.0.0.1))))
    ```
+ 在服务器参数文件或初始化参数文件中不支持注释。
+ 您必须在服务器参数文件（`/rdsdbdata/config/oracle_pfile`）中声明以下初始化参数：
  + `MEMORY_MAX_TARGET`
  + `MEMORY_TARGET`
  + `PGA_AGGREGATE_TARGET`
  + `PROCESSES`
  + `SGA_TARGET`
  + `USE_LARGE_PAGES`

  如果未在 `/rdsdbdata/config/oracle_pfile` 中声明上述参数，则只读副本创建和扩展计算可能会失败。
+ 您无法删除配置文件（例如服务器参数文件、审计文件、`listener.ora`、`tnsnames.ora` 或 `sqlnet.ora`）的符号链接。也无法修改这些文件的目录结构。RDS Custom 自动化要求这些文件存在于特定的目录结构中。

  要从初始化参数文件创建服务器参数文件，请使用以下语法。

  ```
  CREATE SPFILE='/rdsdbdata/admin/$ORACLE_SID/pfile/spfile$ORACLE_SID.ora' 
      FROM PFILE='/rdsdbdata/config/oracle_pfile';
  ```