

# Amazon RDS 中的建议参考
<a name="USERRecommendationsManage.RecommendationReference"></a>

Amazon RDS 在创建或修改资源时，为资源生成建议。可以在下表中找到 Amazon RDS 中的建议示例。


| 类型 | 描述 | 建议 | 需要停机 | 附加信息 | 
| --- | --- | --- | --- | --- | 
|  磁性介质卷正在使用中  |  您的数据库实例在使用磁性介质存储。对于大多数数据库实例，不建议使用磁性介质存储。选择其它存储类型：通用型（SSD）或预调配 IOPS。  |  选择其它存储类型：通用型（SSD）或预调配 IOPS。  |  是  |  Amazon EC2 文档中的[上一代卷](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html#vol-type-prev)。  | 
|  资源自动备份已关闭  |  您的数据库实例没有开启自动备份。建议使用自动备份，因为它们可以实现数据库实例的时间点恢复。  |  开启自动备份，保留期最长为 14 天。  |  是  |  [启用自动备份](USER_WorkingWithAutomatedBackups.Enabling.md) AWS 数据库博客上的 [Demystifying Amazon RDS backup storage costs](https://aws.amazon.com/blogs/database/demystifying-amazon-rds-backup-storage-costs/)   | 
|  需要引擎次要版本升级  |  您的数据库资源未运行最新次要数据库引擎版本。最新的次要版本包含最新的安全修复和其它改进。  |  升级到最新的引擎版本。  |  是  |  [升级数据库实例 引擎版本](USER_UpgradeDBInstance.Upgrading.md)  | 
|  增强监控已关闭  |  您的数据库资源未开启增强监控。增强监控提供用于监控和故障排除的实时操作系统指标。  |  打开增强监控。  |  否  |  [使用增强监控来监控操作系统指标](USER_Monitoring.OS.md)  | 
|  存储加密已关闭  |  Amazon RDS 支持使用您在 AWS Key Management Service（AWS KMS）中管理的密钥对所有数据库引擎进行静态加密。在采用 Amazon RDS 加密的活动数据库实例上，静态存储在存储中的数据会加密，类似于自动备份、只读副本和快照。 如果在创建数据库实例时未开启加密，则需要先创建并还原数据库实例的解密快照的加密副本，然后再开启加密。  |  为您的数据库实例开启静态数据加密。  |  是  |  [Amazon RDS 中的安全性](UsingWithRDS.md) [复制 Amazon RDS 的数据库快照](USER_CopySnapshot.md)  | 
| 性能详情已关闭 | 性能详情用于监控数据库实例负载，有助于您分析和解决数据库性能问题。建议您开启性能详情。 | 开启性能详情。 | 否 |  [在 Amazon RDS 上使用性能详情监控数据库负载](USER_PerfInsights.md)  | 
| 数据库实例已关闭存储自动扩缩 | 您的数据库实例没有开启存储自动扩缩功能。当数据库工作负载增加时，RDS 存储自动扩缩会自动扩展存储容量，且无停机时间。 | 使用指定的最大存储阈值启用 Amazon RDS 存储自动扩缩 | 否 |  [使用 Amazon RDS 存储自动扩展功能自动管理容量](USER_PIOPS.Autoscaling.md)  | 
|  需要更新 RDS 资源主要版本 | 不支持使用数据库引擎当前主要版本的数据库。建议您升级到包含新功能和增强功能的最新主要版本。 | 升级至数据库引擎的最新主要版本。 | 是 | [升级数据库实例 引擎版本](USER_UpgradeDBInstance.Upgrading.md) [使用 Amazon RDS 蓝绿部署进行数据库更新](blue-green-deployments.md)  | 
| 需要更新 RDS 资源实例类 | 您的数据库实例正在运行更早代次的数据库实例类。我们已经将更早代次的数据库实例类替换为成本和/或性能更高的数据库实例类。建议您使用更新代次的数据库实例类运行数据库实例。 | 升级数据库实例类。 | 是 |  [数据库实例类支持的数据库引擎](Concepts.DBInstanceClass.Support.md)  | 
| RDS 资源使用的是随附许可证的终止支持引擎版本 | 建议您将主要版本升级到 Amazon RDS 支持的最新引擎版本，以继续使用当前的许可证支持。当前许可证不支持数据库的引擎版本。 | 建议您将数据库升级到 Amazon RDS 中支持的最新版本，以便继续使用许可模型。 | 是 |  [Oracle 主要版本升级](USER_UpgradeDBInstance.Oracle.Major.md)  | 
| 数据库实例未使用多可用区部署 | 建议您使用多可用区部署。多可用区部署可增强数据库实例的可用性和持久性。 | 为受影响的数据库实例设置多可用区 | 否 在此更改期间，不会停机。不过，可能会对性能产生影响。有关更多信息，请参阅 [将 Amazon RDS 的数据库实例转换为多可用区部署](Concepts.MultiAZ.Migrating.md)。  |  [Amazon RDS Multi-AZ 的定价](https://aws.amazon.com/rds/features/multi-az/#Pricing)  | 
| 数据库内存参数与默认值不同 | 数据库实例的内存参数与默认值明显不同。这些设置可能会影响性能并导致错误。 建议您将数据库实例的自定义内存参数重置为数据库参数组中的默认值。  | 将内存参数重置为其默认值。 | 否 |   AWS 数据库博客上的 [Best practices for configuring performance parameters for Amazon RDS for MySQL](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/)  | 
| `InnoDB_Change_Buffering` 参数使用的值小于最佳值 | 更改缓冲将允许 MySQL 数据库实例推迟维护二级索引所需的一些写入操作。此功能在磁盘速度较慢的环境中非常有用。更改缓冲配置稍微提高了数据库性能，但在升级期间导致了崩溃恢复延迟和长时间关机。在 MySQL 版本 8.4 中默认设置为 `OFF`。 | 在数据库参数组中将 `InnoDB_Change_Buffering` 参数值设置为 `NONE`。 | 否 | AWS 数据库博客上的 [Best practices for configuring performance parameters for Amazon RDS for MySQL](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/)  | 
| 查询缓存参数已开启 | 当更改要求清除查询缓存时，您的数据库实例将显示为停滞状态。大多数工作负载不会受益于查询缓存。查询缓存已从 MySQL 8.0 及更高版本中删除。建议您将 query\$1cache\$1type 参数设置为 0。 | 在数据库参数组中将 `query_cache_type` 参数值设置为 `0`。 | 是 |  AWS 数据库博客上的 [Best practices for configuring performance parameters for Amazon RDS for MySQL](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/)  | 
| `log_output` 参数设置为表 | 如果 `log_output` 设置为 `TABLE`，则使用的存储比 `log_output` 设置为 `FILE` 时更多。建议您将此参数设置为 `FILE`，以避免达到存储大小限制。在 MySQL 8.4 及更高版本中默认设置为 `FILE`。 | 在数据库参数组中将 `log_output` 参数值设置为 `FILE`。 | 否 |  [MySQL 数据库日志文件](USER_LogAccess.Concepts.MySQL.md)  | 
| 参数组不使用大页 | 大页可以提高数据库的可扩展性，但您的数据库实例不使用大页。建议您在数据库实例的数据库参数组中将 `use_large_pages` 参数值设置为 `ONLY`。 | 在数据库参数组中将 `use_large_pages` 参数值设置为 `ONLY`。 | 是 | [为 RDS for Oracle 实例开启大页](Oracle.Concepts.HugePages.md)  | 
| `autovacuum` 参数已关闭 | 数据库实例 的 autovacuum 参数已关闭. 关闭 autovacuum 会增加表和索引膨胀并影响性能。 建议您在数据库参数组中开启 autovacuum。  | 在数据库参数组中开启 autovacuum 参数。 | 否 |  AWS 数据库博客上的 [Understanding autovacuum in Amazon RDS for PostgreSQL environments](https://aws.amazon.com/blogs/database/understanding-autovacuum-in-amazon-rds-for-postgresql-environments/)  | 
| `synchronous_commit` 参数已关闭 | 关闭 `synchronous_commit` 参数后，数据库崩溃可能会导致数据丢失。数据库的持久性受到威胁。 建议您开启此 `synchronous_commit` 参数。  | 在数据库参数组中开启 `synchronous_commit` 参数。 | 是 |  AWS 数据库博客上的 [Amazon Aurora PostgreSQL parameters: Replication, security, and logging](https://aws.amazon.com/blogs/database/amazon-aurora-postgresql-parameters-part-2-replication-security-and-logging/)。  | 
| `track_counts` 参数已关闭 | 当 `track_counts` 参数处于关闭状态时，数据库不会收集数据库活动统计数据。Autovacuum 需要这些统计信息才能正常工作。 建议您将 `track_counts` 参数设置为 `1`。 | 将 `track_counts` 数据设置为 `1`。 | 否 |  [PostgreSQL 的运行时统计数据](https://www.postgresql.org/docs/current/runtime-config-statistics.html#GUC-TRACK-COUNTS)   | 
| `enable_indexonlyscan` 参数已关闭 | 关闭仅限索引的扫描计划类型时，查询计划程序或优化程序无法使用该类型。 建议您将 `enable_indexonlyscan` 参数值设置为 `1`。 | 将 `enable_indexonlyscan` 参数值设置为 `1`。 | 否 |  [PostgreSQL 的计划程序方法配置](https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-ENABLE-INDEXONLYSCAN)  | 
| `enable_indexscan` 参数已关闭 | 关闭索引扫描计划类型时，查询计划程序或优化程序无法使用该类型。 建议您将 `enable_indexscan` 值设置为 `1`。 | 将 `enable_indexscan` 参数值设置为 `1`。 | 否 |  [PostgreSQL 的计划程序方法配置](https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-ENABLE-INDEXONLYSCAN)  | 
| `innodb_flush_log_at_trx` 参数已关闭 | 您的数据库实例的 `innodb_flush_log_at_trx` 参数值不是安全的值。此参数控制向磁盘提交操作的持久性。 建议您将 `innodb_flush_log_at_trx` 参数设置为 `1`。 | 将 `innodb_flush_log_at_trx` 参数值设置为 `1`。 | 否 |  AWS 数据库博客上的 [Best practices for configuring performance parameters for Amazon RDS for MySQL](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/)  | 
| `sync_binlog` 参数已关闭 | 在数据库实例中确认事务提交之前，不会强制将二进制日志同步到磁盘。 建议您将 `sync_binlog` 参数值设置为 `1`。 | 将 `sync_binlog` 参数值设置为 `1`。 | 否 | AWS 数据库博客上的 [Best practices for configuring replication parameters for Amazon RDS for MySQL](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/) | 
| `innodb_stats_persistent` 参数已关闭 | 您的数据库实例未配置为将 InnoDB 统计信息持久保存到磁盘上。如果不存储统计数据，则每次实例重启和访问表时都会重新计算统计数据。这会导致查询执行计划的差异。您可以在表级别修改此全局参数的值。 建议您将 `innodb_stats_persistent` 参数值设置为 `ON`。 | 将 `innodb_stats_persistent` 参数值设置为 `ON`。 | 否 | AWS 数据库博客上的 [Best practices for configuring performance parameters for Amazon RDS for MySQL](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/)  | 
| `innodb_open_files` 参数较低 | `innodb_open_files` 参数控制 InnoDB 一次可打开的文件数量。当 mysqld 运行时，InnoDB 会打开所有日志和系统表空间文件。 对于您的数据库实例，InnoDB 一次可打开的最大文件数的值较低。建议您将 `innodb_open_files` 参数设置为最小值 `65`。 | 将 `innodb_open_files` 参数设置为最小值 `65`。 | 是 | [InnoDB 对于 MySQL 打开的文件](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_open_files)  | 
| `max_user_connections` 参数较低 | 对于您的数据库实例，每个数据库账户的最大同时连接数的值较低。 建议您将 `max_user_connections` 参数设置为大于 `5` 的数字。 | 将 `max_user_connections` 参数的值增加到大于 `5` 的数字。 | 是 | [设置 MySQL 的账户资源限制](https://dev.mysql.com/doc/refman/8.0/en/user-resources.html) | 
| 只读副本在可写模式下打开 | 您的数据库实例的只读副本处于可写模式，这允许来自客户端的更新。 建议您将 `read_only` 参数设置为 `TrueIfReplica`，这样只读副本就不会处于可写模式。 | 将 `read_only` 参数值设置为 `TrueIfReplica`。 | 否 | AWS 数据库博客上的 [Best practices for configuring replication parameters for Amazon RDS for MySQL](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-2-parameters-related-to-replication/)  | 
| `innodb_default_row_format` 参数设置不安全 | 您的数据库实例遇到一个已知问题：当索引超过 767 字节时，在低于 8.0.26 的 MySQL 版本中创建且 `row_format` 设置为 `COMPACT` 或 `REDUNDANT` 的表将不可访问且无法恢复。 建议您将 `innodb_default_row_format` 参数值设置为 `DYNAMIC`。 | 将 `innodb_default_row_format` 参数值设置为 `DYNAMIC`。 | 否 | [MySQL 8.0.26 中的变化](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-26.html#mysqld-8-0-26-bug) | 
| `general_logging` 参数已开启 | 您的数据库实例已开启常规日志记录。在排查数据库问题时，此设置非常有用。但是，开启常规日志记录会增加 I/O 操作量和分配的存储空间量，这可能导致争用和性能降级。 请检查您对常规日志记录使用情况的要求。建议您将 `general_logging` 参数值设置为 `0`。 | 请检查您对常规日志记录使用情况的要求。如果它不是强制性的，建议您将 `general_logging` 参数值设置为 `0`。 | 否 |  [RDS for MySQL 数据库日志概览](USER_LogAccess.MySQL.LogFileSize.md)  | 
| RDS 实例的系统内存容量预调配不足 | 建议您调整查询以使用更少的内存，或者使用所分配内存更高的数据库实例类型。当实例内存不足时，数据库性能就会受到影响。 | 使用内存容量更高的数据库实例 | 是 |  AWS 数据库博客上的 [Scaling Your Amazon RDS Instance Vertically and Horizontally](https://aws.amazon.com/blogs/database/scaling-your-amazon-rds-instance-vertically-and-horizontally/) [Amazon RDS 实例类型](https://aws.amazon.com/rds/instance-types/) [Amazon RDS 定价](https://aws.amazon.com/rds/pricing/)  | 
| RDS 实例的系统 CPU 容量预调配不足 | 建议您调整查询来使用更少的 CPU，或修改数据库实例来使用所分配的 vCPU 更高的数据库实例类。当运行数据库实例的 CPU 容量不足时，数据库性能可能会下降。 | 使用 CPU 容量更高的数据库实例 | 是 |  AWS 数据库博客上的 [Scaling Your Amazon RDS Instance Vertically and Horizontally](https://aws.amazon.com/blogs/database/scaling-your-amazon-rds-instance-vertically-and-horizontally/) [Amazon RDS 实例类型](https://aws.amazon.com/rds/instance-types/) [Amazon RDS 定价](https://aws.amazon.com/rds/pricing/)  | 
| RDS 资源未正确地利用连接池 | 建议您启用 Amazon RDS 代理，以便高效地池化和共享现有数据库连接。如果您已经在为数据库使用代理，请正确地配置代理，来改善多个数据库实例之间的连接池和负载均衡。RDS 代理有助于降低连接耗尽和停机的风险，同时提高可用性和可扩展性。 | 启用 RDS 代理或修改现有的代理配置 | 否 |  AWS 数据库博客上的 [Scaling Your Amazon RDS Instance Vertically and Horizontally](https://aws.amazon.com/blogs/database/scaling-your-amazon-rds-instance-vertically-and-horizontally/) [Amazon RDS 代理](rds-proxy.md) [Amazon RDS 代理定价](https://aws.amazon.com/rds/proxy/pricing/)  | 
| RDS 实例正在创建过多的临时对象 | 建议您调整工作负载以防止创建过多的临时对象，或者切换到支持优化读取的 RDS 实例类。RDS 优化型读取功能可提高涉及大量临时对象和/或大型临时对象的工作负载的数据库性能。评估您的工作负载，以确定使用具有 RDS 优化型读取功能的实例是否有利于您的数据库工作负载。 | 使用带 RDS 优化型读取功能的数据库实例类型 | 是 |  [Amazon RDS 实例类型](https://aws.amazon.com/rds/instance-types/) [使用 Amazon RDS 优化型读取功能提高 RDS for MySQL 的查询性能](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-optimized-reads.html) [使用 Amazon RDS 优化型读取功能提高 RDS for MariaDB 的查询性能](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-optimized-reads-mariadb.html) [使用 Amazon RDS 优化型读取功能提高 RDS for PostgreSQL 的查询性能](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PostgreSQL.optimizedreads.html)  | 
| RDS 实例的系统 IOPS 容量预调配不足 | 我们建议调整数据库工作负载以降低 IOPS，或者将数据库实例纵向扩展到具有更高的默认 IOPS 限制的类型。当前数据库实例无法支持预调配 IOPS，或者数据库工作负载具有较高的 IOPS 利用率。 | 使用默认 IOPS 限制更高的数据库实例类型 | 是 |  [Amazon RDS 实例类型](https://aws.amazon.com/rds/instance-types/) [Amazon RDS 数据库实例存储](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) [数据库负载](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html)  | 
| RDS 实例具有预调配不足的 Amazon EBS 卷 | 我们建议调整数据库工作负载以降低 IOPS 或增加数据库的预调配 IOPS。当 IOPS 利用率接近预调配 IOPS 时，数据库性能可能会下降。 | 为数据库实例预调配更多 IOPS | 是 |  [Amazon RDS 实例类型](https://aws.amazon.com/rds/instance-types/) [Amazon RDS 数据库实例存储](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) [数据库负载](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html)  | 
| RDS 实例的吞吐能力预调配不足 | 我们建议调整数据库工作负载以降低吞吐量或增加数据库的预调配吞吐量。当吞吐量利用率接近预调配吞吐量时，数据库性能可能会受到影响。 | 为数据库实例预调配更多吞吐量 | 是 |  [Amazon RDS 实例类型](https://aws.amazon.com/rds/instance-types/) [Amazon RDS 数据库实例存储](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) [数据库负载](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.Overview.ActiveSessions.html)  | 
| RDS 实例的 EBS I/O 预置不足 | 我们建议调整数据库工作负载来减少 I/O 操作，或者修改数据库实例来使用 Amazon RDS io2 Block Express 卷，这些卷专为需要高性能、高吞吐量和低延迟的数据库工作负载而设计。在当前工作负载下，数据库可能无法以所需的速率处理 I/O 操作，这可能导致性能下降。 | 将 Amazon RDS io2 Block Express 卷用于 RDS 实例 | 否 |  [Amazon RDS 数据库实例存储](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) [Amazon RDS 的 Amazon CloudWatch 指标](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-metrics.html) 《Amazon EBS 用户指南》中的 [Provisioned IOPS SSD volumes](https://docs.aws.amazon.com/ebs/latest/userguide/provisioned-iops.html)  | 