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

查看 Amazon Aurora 建议

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

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

  • 美国东部(俄亥俄)

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

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

  • 美国西部(俄勒冈州)

  • 亚太地区(孟买)

  • 亚太地区(首尔)

  • 亚太地区(新加坡)

  • 亚太地区(悉尼)

  • 亚太地区(东京)

  • 加拿大(中部)

  • 欧洲地区(法兰克福)

  • 欧洲地区(爱尔兰)

  • 欧洲地区(伦敦)

  • 欧洲(巴黎)

  • 南美洲(圣保罗)

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

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

资源自动备份已关闭

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

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

备份和还原 Aurora 数据库集群的概述

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

需要引擎次要版本升级

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

升级到最新的引擎版本。

维护 Amazon Aurora 数据库集群

增强监控已关闭

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

打开增强监控。

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

存储加密已关闭

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

如果在创建 Aurora 数据库集群时未开启加密,则必须将解密后的快照还原到加密的数据库集群。

为数据库集群开启静态数据加密。

Amazon Aurora 中的安全性

所有实例都在同一可用区中的数据库集群

数据库集群目前位于单个可用区中。使用多个可用区来提高可用性。

将数据库实例添加到数据库集群中的多个可用区。

Amazon Aurora 的高可用性

集群中具有异构实例大小的数据库实例

我们建议您对数据库集群中的所有数据库实例使用相同的数据库实例类和大小。

对数据库集群中的所有数据库实例使用相同的实例类和大小。

使用 Amazon Aurora 进行复制

集群中具有异构实例类的数据库实例

我们建议您对数据库集群中的所有数据库实例使用相同的数据库实例类和大小。

对数据库集群中的所有数据库实例使用相同的实例类和大小。

使用 Amazon Aurora 进行复制

集群中具有异构参数组的数据库实例

我们建议数据库集群中的所有数据库实例使用同一数据库参数组。

将数据库实例和与数据库集群中的写入器实例关联的数据库参数组相关联。

使用参数组

Amazon RDS 数据库集群有一个数据库实例

向数据库集群再添加至少一个数据库实例,以提高可用性和性能。

将读取器数据库实例添加到数据库集群。

Amazon Aurora 的高可用性

Performance Insights 已关闭

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

开启 Performance Insights。

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

需要更新 RDS 资源主要版本

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

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

Amazon Aurora 更新

创建蓝绿部署

数据库集群只支持最高 64TiB 的卷

您的数据库集群支持最高 64TiB 的卷。最新引擎版本对于您的数据库集群支持高达 128TiB 的卷。我们建议您将数据库集群的引擎版本升级到最新版本,以支持高达 128TiB 的卷。

升级数据库集群的引擎版本以支持高达 128TiB 的卷。

Amazon Aurora 大小限制

数据库集群的所有读取器实例都在同一可用区中

在每个 Amazon 区域内,可用区(AZ)是相互不同的位置,以便在发生中断时提供隔离。我们建议您将数据库集群中的主实例和读取器实例分配到多个可用区,以提高数据库集群的可用性。在创建集群时,您可以使用 Amazon 管理控制台、Amazon CLI 或 Amazon RDS API 创建多可用区集群。您可以通过添加新的读取器实例并指定不同的可用区,修改现有 Aurora 集群以转为多可用区集群。

您的数据库集群的所有读取实例都在同一可用区中。我们建议您将读取器实例分布在多个可用区中。这一分布可提高可用性,并通过减少客户端与数据库之间的网络延迟来缩短响应时间。

Amazon Aurora 的高可用性

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

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

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

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

使用参数组

查询缓存参数已开启

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

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

使用参数组

log_output 参数设置为表

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

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

Aurora MySQL 数据库日志文件

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

配置刷新日志缓冲区的频率

innodb_stats_persistent 参数已关闭

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

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

innodb_stats_persistent 参数值设置为 ON

使用参数组

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

使用参数组

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

Aurora MySQL 数据库日志概览

数据库集群的读取工作负载预调配不足

我们建议您向数据库集群添加读取器数据库实例,实例类和大小与集群中的写入器数据库实例相同。当前配置中有一个数据库实例的数据库负载持续很高,这主要是由读取操作造成的。通过向集群添加另一个数据库实例并将读取工作负载定向到数据库集群只读端点来分配这些操作。

向集群添加读取器数据库实例。

将 Aurora 副本添加到数据库集群

管理 Aurora 数据库集群的性能和扩展

Amazon RDS 定价

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

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

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

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

Amazon RDS 实例类型

Amazon RDS 定价

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

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

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

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

Amazon RDS 实例类型

Amazon RDS 定价

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

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

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

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

将 Amazon RDS 代理用于 Aurora

Amazon RDS 代理定价

使用 Amazon RDS 控制台,您可以查看 Amazon Aurora 针对您的数据库资源提出的建议。对于数据库集群,将显示针对该数据库集群及其实例的建议。

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

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

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

      在控制台中选择“建议”

      默认情况下,建议页面显示上个月的新建议列表。Amazon Aurora 会针对您账户中的所有资源提供建议,并按其严重性对建议进行排序。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    在控制台中按状态筛选建议
  5. (可选)在上次修改时间中选择相对模式绝对模式,以修改时间段。建议页面显示该时间段内生成的建议。默认时间段为最近 1 个月。在绝对模式下,您可以选择时间段,或者在开始日期结束日期字段中输入时间。

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

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

    请注意,将范围设置为全部,即可查看您账户中资源的所有相关建议。

  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 操作。