查看 Amazon RDS 建议 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

查看 Amazon RDS 建议

Amazon RDS 在创建或修改资源时,为资源生成建议。

以下区域支持基于配置的建议:

  • 美国东部(俄亥俄)

  • 美国东部(弗吉尼亚州北部)

  • 美国西部(北加利福尼亚)

  • 美国西部(俄勒冈)

  • 亚太地区(孟买)

  • 亚太地区(首尔)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太地区(东京)

  • 加拿大(中部)

  • 欧洲地区(法兰克福)

  • 欧洲地区(爱尔兰)

  • 欧洲地区(伦敦)

  • 欧洲(巴黎)

  • 南美洲(圣保罗)

您可以在下表中找到基于配置的建议的示例。

类型 描述 建议 需要停机 其他信息

磁性介质卷正在使用中

您的数据库实例在使用磁性介质存储。对于大多数数据库实例,不建议使用磁性介质存储。选择其它存储类型:通用型(SSD)或预调配 IOPS。

选择其它存储类型:通用型(SSD)或预调配 IOPS。

Amazon EC2 文档中的上一代卷

资源自动备份已关闭

您的数据库实例没有开启自动备份。建议使用自动备份,因为它们可以实现数据库实例的时间点恢复。

开启自动备份,保留期最长为 14 天。

启用自动备份

Amazon 数据库博客上的 Demystifying Amazon RDS backup storage costs

需要引擎次要版本升级

您的数据库资源未运行最新次要数据库引擎版本。最新的次要版本包含最新的安全修复和其它改进。

升级到最新的引擎版本。

升级数据库实例引擎版本

增强监控已关闭

您的数据库资源未开启增强监控。增强监控提供用于监控和故障排除的实时操作系统指标。

打开增强监控。

使用增强监控来监控操作系统指标

存储加密已关闭

Amazon RDS 支持使用您在 Amazon Key Management Service(Amazon KMS)中管理的密钥对所有数据库引擎进行静态加密。在采用 Amazon RDS 加密的活动数据库实例上,静态存储在存储中的数据会加密,类似于自动备份、只读副本和快照。

如果在创建数据库实例时未开启加密,则需要先创建并还原数据库实例的解密快照的加密副本,然后再开启加密。

为您的数据库实例开启静态数据加密。

Amazon RDS 中的安全性

复制数据库快照

性能详情已关闭

性能详情用于监控数据库实例负载,有助于您分析和解决数据库性能问题。我们建议您开启性能详情。

开启性能详情。

在 Amazon RDS 上使用性能详情监控数据库负载

数据库实例已关闭存储自动扩缩

您的数据库实例没有开启存储自动扩缩功能。当数据库工作负载增加时,RDS 存储自动扩缩会自动扩展存储容量,且无停机时间。

使用指定的最大存储阈值启用 Amazon RDS 存储自动扩缩

使用 Amazon RDS 存储自动扩展功能自动管理容量

需要更新 RDS 资源主要版本

不支持使用数据库引擎当前主要版本的数据库。我们建议您升级到包含新功能和增强功能的最新主要版本。

升级至数据库引擎的最新主要版本。

升级数据库实例引擎版本

使用 Amazon RDS 蓝绿部署进行数据库更新

需要更新 RDS 资源实例类

您的数据库实例正在运行更早代次的数据库实例类。我们已经将更早代次的数据库实例类替换为成本和/或性能更高的数据库实例类。我们建议您使用更新代次的数据库实例类运行数据库实例。

升级数据库实例类。

数据库实例类支持的数据库引擎

RDS 资源使用的是随附许可证的终止支持引擎版本

我们建议您将主要版本升级到 Amazon RDS 支持的最新引擎版本,以继续使用当前的许可证支持。当前许可证不支持数据库的引擎版本。

我们建议您将数据库升级到 Amazon RDS 中支持的最新版本,以便继续使用许可模型。

Oracle 主要版本升级

数据库实例未使用多可用区部署

建议您使用多可用区部署。多可用区部署可增强数据库实例的可用性和持久性。

为受影响的数据库实例设置多可用区

在此更改期间,不会停机。不过,可能会对性能产生影响。有关更多信息,请参阅 将数据库实例修改为多可用区数据库部署

Amazon RDS Multi-AZ 的定价

数据库内存参数与默认值不同

数据库实例的内存参数与默认值明显不同。这些设置可能会影响性能并导致错误。

我们建议您将数据库实例的自定义内存参数重置为数据库参数组中的默认值。

将内存参数重置为其默认值。

Amazon 数据库博客上的 Best practices for configuring performance parameters for Amazon RDS for MySQL

InnoDB_Change_Buffering 参数使用的值小于最佳值

更改缓冲将允许 MySQL 数据库实例推迟维护二级索引所需的一些写入操作。此功能在磁盘速度较慢的环境中非常有用。更改缓冲配置稍微提高了数据库性能,但在升级期间导致了崩溃恢复延迟和长时间关机。

在数据库参数组中将 InnoDB_Change_Buffering 参数值设置为 NONE

Amazon 数据库博客上的 Best practices for configuring performance parameters for Amazon RDS for MySQL

查询缓存参数已开启

当更改要求清除查询缓存时,您的数据库实例将显示为停滞状态。大多数工作负载不会受益于查询缓存。从 MySQL 8.0 版中删除了查询缓存。建议您将 query_cache_type 参数设置为 0。

在数据库参数组中将 query_cache_type 参数值设置为 0

Amazon 数据库博客上的 Best practices for configuring performance parameters for Amazon RDS for MySQL

log_output 参数设置为表

如果 log_output 设置为 TABLE,则使用的存储比 log_output 设置为 FILE 时更多。我们建议您将此参数设置为 FILE,以避免达到存储大小限制。

在数据库参数组中将 log_output 参数值设置为 FILE

MySQL 数据库日志文件

参数组不使用大页

大页可以提高数据库的可扩展性,但您的数据库实例不使用大页。我们建议您在数据库实例的数据库参数组中将 use_large_pages 参数值设置为 ONLY

在数据库参数组中将 use_large_pages 参数值设置为 ONLY

为 RDS for Oracle 实例开启大页

autovacuum 参数已关闭

数据库实例的 autovacuum 参数已关闭。关闭 autovacuum 会增加表和索引膨胀并影响性能。

我们建议您在数据库参数组中开启 autovacuum。

在数据库参数组中开启 autovacuum 参数。

Amazon 数据库博客上的 Understanding autovacuum in Amazon RDS for PostgreSQL environments

synchronous_commit 参数已关闭

关闭 synchronous_commit 参数后,数据库崩溃可能会导致数据丢失。数据库的持久性受到威胁。

建议您开启此 synchronous_commit 参数。

在数据库参数组中开启 synchronous_commit 参数。

Amazon 数据库博客上的 Amazon Aurora PostgreSQL parameters: Replication, security, and logging

track_counts 参数已关闭

track_counts 参数处于关闭状态时,数据库不会收集数据库活动统计数据。Autovacuum 需要这些统计信息才能正常工作。

建议您将 track_counts 参数设置为 1

track_counts 数据设置为 1

PostgreSQL 的运行时统计数据

enable_indexonlyscan 参数已关闭

关闭仅限索引的扫描计划类型时,查询计划程序或优化程序无法使用该类型。

建议您将 enable_indexonlyscan 参数值设置为 1

enable_indexonlyscan 参数值设置为 1

PostgreSQL 的计划程序方法配置

enable_indexscan 参数已关闭

关闭索引扫描计划类型时,查询计划程序或优化程序无法使用该类型。

建议您将 enable_indexscan 值设置为 1

enable_indexscan 参数值设置为 1

PostgreSQL 的计划程序方法配置

innodb_flush_log_at_trx 参数已关闭

您的数据库实例的 innodb_flush_log_at_trx 参数值不是安全的值。此参数控制向磁盘提交操作的持久性。

建议您将 innodb_flush_log_at_trx 参数设置为 1

innodb_flush_log_at_trx 参数值设置为 1

Amazon 数据库博客上的 Best practices for configuring performance parameters for Amazon RDS for MySQL

sync_binlog 参数已关闭

在数据库实例中确认事务提交之前,不会强制将二进制日志同步到磁盘。

建议您将 sync_binlog 参数值设置为 1

sync_binlog 参数值设置为 1

Amazon 数据库博客上的 Best practices for configuring replication parameters for Amazon RDS for MySQL

innodb_stats_persistent 参数已关闭

您的数据库实例未配置为将 InnoDB 统计信息持久保存到磁盘上。如果不存储统计数据,则每次实例重启和访问表时都会重新计算统计数据。这会导致查询执行计划的差异。您可以在表级别修改此全局参数的值。

建议您将 innodb_stats_persistent 参数值设置为 ON

innodb_stats_persistent 参数值设置为 ON

Amazon 数据库博客上的 Best practices for configuring performance parameters for Amazon RDS for MySQL

innodb_open_files 参数较低

innodb_open_files 参数控制 InnoDB 一次可打开的文件数量。当 mysqld 运行时,InnoDB 会打开所有日志和系统表空间文件。

对于您的数据库实例,InnoDB 一次可打开的最大文件数的值较低。我们建议您将 innodb_open_files 参数设置为最小值 65

innodb_open_files 参数设置为最小值 65

InnoDB 对于 MySQL 打开的文件

max_user_connections 参数较低

对于您的数据库实例,每个数据库账户的最大同时连接数的值较低。

我们建议您将 max_user_connections 参数设置为大于 5 的数字。

max_user_connections 参数的值增加到大于 5 的数字。

设置 MySQL 的账户资源限制

只读副本在可写模式下打开

您的数据库实例的只读副本处于可写模式,这允许来自客户端的更新。

我们建议您将 read_only 参数设置为 TrueIfReplica,这样只读副本就不会处于可写模式。

read_only 参数值设置为 TrueIfReplica

Amazon 数据库博客上的 Best practices for configuring replication parameters for Amazon RDS for MySQL

innodb_default_row_format 参数设置不安全

您的数据库实例遇到一个已知问题:当索引超过 767 字节时,在低于 8.0.26 的 MySQL 版本中创建且 row_format 设置为 COMPACTREDUNDANT 的表将不可访问且无法恢复。

建议您将 innodb_default_row_format 参数值设置为 DYNAMIC

innodb_default_row_format 参数值设置为 DYNAMIC

MySQL 8.0.26 中的变化

general_logging 参数已开启

您的数据库实例已开启常规日志记录。在对数据库问题进行故障排除时,此设置非常有用。但是,开启常规日志记录会增加 I/O 操作量和分配的存储空间量,这可能导致争用和性能降级。

请检查您对常规日志记录使用情况的要求。建议您将 general_logging 参数值设置为 0

请检查您对常规日志记录使用情况的要求。如果它不是强制性的,我们建议您将 general_logging 参数值设置为 0

RDS for MySQL 数据库日志概览

RDS 实例的系统内存容量预调配不足

我们建议您调整查询以使用更少的内存,或者使用所分配内存更高的数据库实例类型。当实例内存不足时,数据库性能就会受到影响。

使用内存容量更高的数据库实例

Amazon 数据库博客上的 Scaling Your Amazon RDS Instance Vertically and Horizontally

Amazon RDS 实例类型

定价

RDS 实例的系统 CPU 容量预调配不足

我们建议您调整查询来使用更少的 CPU,或修改数据库实例来使用所分配的 vCPU 更高的数据库实例类。当运行数据库实例的 CPU 容量不足时,数据库性能可能会下降。

使用 CPU 容量更高的数据库实例

Amazon 数据库博客上的 Scaling Your Amazon RDS Instance Vertically and Horizontally

Amazon RDS 实例类型

定价

RDS 资源未正确地利用连接池

我们建议您启用 Amazon RDS 代理,以便高效地池化和共享现有数据库连接。如果您已经在为数据库使用代理,请正确地配置代理,来改善多个数据库实例之间的连接池和负载均衡。RDS 代理有助于降低连接耗尽和停机的风险,同时提高可用性和可扩展性。

启用 RDS 代理或修改现有的代理配置

Amazon 数据库博客上的 Scaling Your Amazon RDS Instance Vertically and Horizontally

使用 Amazon RDS 代理

Amazon RDS 代理定价

使用 Amazon RDS 控制台,您可以查看 Amazon RDS 针对您的数据库资源提出的建议。

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

  2. 在导航窗格中,执行以下任何一项操作:

    • 选择建议建议旁边提供了针对您的资源的活动建议数量和严重性最高的建议数量。要查找每个严重性的活动建议数量,请选择显示最高严重性的数字。

      在控制台中选择建议

      建议页面显示按您账户中所有资源的严重性排序的建议列表。

      控制台中的主建议页面,其中包含所有建议

      您可以选择建议以查看页面底部的部分,其中包含受影响的资源以及如何应用该建议的详细信息。

    • 数据库页中,为资源选择建议

      控制台中“数据库”页面上选择了“建议”选项

      建议选项卡显示所选资源的建议及其详细信息。

      控制台中“数据库”页面上的“建议”选项卡

    以下详细信息可用于建议:

    • 严重性 - 问题的含义级别。严重性级别为信息

    • 检测 - 受影响资源的数量和问题的简短描述。选择此链接可查看建议和分析详细信息。

    • 建议 – 要应用的建议操作的简短描述。

    • 影响 – 对不应用建议时可能产生的影响的简短描述。

    • 类别 - 建议的类型。这些类别包括性能效率安全性可靠性成本优化卓越运营可持续性

    • 状态 – 建议的当前状态。可能的状态为全部活动已忽略已解决待处理

    • 开始时间 – 问题开始的时间。例如,18 小时前

    • 上次修改时间 - 由于严重性更改而导致系统上次更新建议的时间,或者您对建议做出回应的时间。例如,10 小时前

    • 结束时间 - 问题结束的时间。对于任何持续存在的问题,不会显示此时间。

    • 资源标识符 - 一个或多个资源的名称。

  3. (可选)在字段中选择严重性类别运算符以筛选建议列表。

    控制台中包含严重性操作的“建议”页面。

    此时将显示所选操作的建议。

  4. (可选)选择以下任何一个建议状态:

    • 活动(默认)– 显示您可以应用、计划在下一个维护时段应用或忽略的当前建议。

    • 全部 - 显示当前状态的所有建议。

    • 已忽略 - 显示已忽略的建议。

    • 已解决 - 显示已解决的建议。

    • 待处理 - 显示其建议的操作正在进行中或计划在下一个维护时段应用的建议。

    在控制台中按状态筛选建议
  5. (可选)在上次修改时间中选择相对模式绝对模式,以修改显示建议的时间段。在绝对模式下,您可以选择时间段,或者在开始日期结束日期字段中输入时间。

    在控制台中按时间段筛选建议

    将显示设定时间段的建议。

  6. (可选)选择右侧的首选项以自定义要显示的详细信息。您可以选择页面大小、对文本换行以及允许或隐藏列。

  7. (可选)选择建议,然后选择查看详细信息

    控制台中的“建议”页面,选择了所选建议和查看详细信息按钮。

    此时会显示建议详细信息页面。标题提供了检测到问题的资源总数和严重性。

    有关基于异常的被动建议的详细信息页面上组件的信息,请参阅《Amazon DevOps Guru User Guide》中的 Viewing reactive anomalies

    有关基于阈值的主动建议的详细信息页面上组件的信息,请参阅查看性能详情主动建议

    其它自动建议在建议详细信息页面上显示以下组件:

    • 建议 – 建议的摘要以及是否需要停机才能应用建议。

      控制台中显示“建议”部分的“建议详细信息”页面。
    • 受影响的资源 - 受影响资源的详细信息。

      控制台中显示“受影响资源”部分的“建议详细信息”页面。
    • 建议详细信息 – 支持的引擎信息、应用建议所需的任何相关费用以及用于了解更多信息的文档链接。

      控制台中显示“建议详细信息”部分的“建议详细信息”页面。

要查看数据库实例的 Amazon RDS 建议,请在 Amazon CLI 中使用以下命令。

aws rds describe-db-recommendations

要使用 Amazon RDS API 查看 Amazon RDS 建议,请使用 DescribeDBRecommendations 操作。