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

管理 Amazon Aurora PostgreSQL

下文将介绍如何管理 Amazon Aurora PostgreSQL 数据库集群的性能和扩缩。还包括有关其他维护任务的信息。

扩展 Aurora PostgreSQL 数据库实例

您可通过两种方式扩展 Aurora PostgreSQL 数据库实例,即实例扩展和读取扩展。有关读取扩展的更多信息,请参阅读取扩展

您可以修改数据库集群中的每个数据库实例的数据库实例类,以扩展 Aurora PostgreSQL 数据库集群。Aurora PostgreSQL 支持多种针对 Aurora 优化的数据库实例类。不要将 db.t2 或 db.t3 实例类用于大小超过 40 TB 的较大 Aurora 集群。

扩缩不会即时完成。可能需要 15 分钟或更长时间才能完成对其他数据库实例类的更改。如果使用此方法修改数据库实例类,我们建议您在下一个计划的维护时段内(而不是立即)应用更改,从而避免影响用户。

作为直接修改数据库实例类的替代方法,您可以使用 Amazon Aurora 的高可用性功能最大限度地减少停机时间。首先,将 Aurora 副本添加到集群中。创建副本时,选择要用于集群的数据库实例类大小。Aurora 副本与集群同步后,您可以故障转移至新添加的副本。要了解更多信息,请参阅Aurora 副本Amazon Aurora PostgreSQL 的快速故障转移

有关 Aurora PostgreSQL 支持的数据库实例类的详细规格,请参阅数据库实例类支持的数据库引擎

至 Aurora PostgreSQL 数据库实例的最大连接数

Aurora 数据库集群根据数据库实例类及其可用内存分配资源。Aurora PostgreSQL 数据库实例允许的最大连接数量由该数据库实例的参数组中指定的 max_connections 参数值确定。

尝试更改 max_connections 参数设置之前,请注意以下事项。

  • 如果 max_connections 值太低,当客户端尝试连接时,Aurora PostgreSQL 数据库实例可能没有足够的可用连接。

  • 如果 max_connections 值超过了实际需要的连接数,未使用的连接可能会导致性能降低。

max_connections 参数的理想设置是既能支持应用程序所需的所有客户端连接,又不会有太多未使用的连接,外加至少 3 个支持 Amazon 自动化的连接。

Aurora PostgreSQL 默认数据库参数组中 max_connections 的值设置为以下 Aurora PostgreSQL LEAST 函数得出的两个值中较低的一个:

LEAST({DBInstanceClassMemory/9531392},5000)

即便无法更改默认参数组中的值,您仍可创建自己的自定义数据库集群参数组并修改 Aurora PostgreSQL 数据库集群加以使用。如果执行此操作,请确保在应用自定义参数组后重启数据库集群。有关更多信息,请参阅 Amazon Aurora PostgreSQL 参数创建数据库集群参数组。要详细了解 Aurora 数据库集群和数据库参数组,请参阅 使用参数组

下表列出了可与 Aurora PostgreSQL 搭配使用的每个数据库实例类的 max_connections 应该使用的最高值。

实例类 max_connections 默认值
db.x2g.16xlarge 5000
db.x2g.12xlarge 5000
db.x2g.8xlarge 5000
db.x2g.4xlarge 5000
db.x2g.2xlarge 5000
db.x2g.xlarge 5000
db.x2g.large 3479
db.r6g.16xlarge 5000
db.r6g.12xlarge 5000
db.r6g.8xlarge 5000
db.r6g.4xlarge 5000
db.r6g.2xlarge 5000
db.r6g.xlarge 3479
db.r6g.large 1722
db.r5.24xlarge 5000
db.r5.16xlarge 5000
db.r5.12xlarge 5000
db.r5.8xlarge 5000
db.r5.4xlarge 5000
db.r5.2xlarge 5000
db.r5.xlarge 3300
db.r5.large 1600
db.r4.16xlarge 5000
db.r4.8xlarge 5000
db.r4.4xlarge 5000
db.r4.2xlarge 5000
db.r4.xlarge 3200
db.r4.large 1600
db.t4g.large 844
db.t4g.medium 405
db.t3.large 844
db.t3.medium 420

如果应用程序需要的连接数超过为数据库实例类列出的数量,请考虑以下替代方案。

Aurora PostgreSQL 的临时存储限制

Aurora PostgreSQL 将表和索引储存在 Aurora 存储子系统中。Aurora PostgreSQL 对于非持久性临时文件使用单独的临时存储。这包括用于在查询处理过程对大型数据集进行排序或者用于索引构建操作等用途的文件。有关存储的更多信息,请参阅 Amazon Aurora 存储和可靠性

下表显示了每个 Aurora PostgreSQL 数据库实例类可用的最大临时存储空间。

数据库实例类 最大可用临时存储空间 (GiB)
db-x2g-16xlarge1829
db-x2g-12xlarge1606
db-x2g-8xlarge1071
db-x2g-4xlarge535
db-x2g-2xlarge268
db-x2g-xlarge134
db-x2g-large67
db.r6g.16xlarge 1008
db.r6g.12xlarge 756
db.r6g.8xlarge 504
db.r6g.4xlarge 252
db.r6g.2xlarge 126
db.r6g.xlarge 63
db.r6g.large 32
db.r5.24xlarge 1500
db.r5.16xlarge 1008
db.r5.12xlarge 748
db.r5.8xlarge 504
db.r5.4xlarge 249
db.r5.2xlarge 124
db.r5.xlarge 62
db.r5.large 31
db.r4.16xlarge 960
db.r4.8xlarge 480
db.r4.4xlarge 240
db.r4.2xlarge 120
db.r4.xlarge 60
db.r4.large 30
db.t4g.large 16.5
db.t4g.medium 8.13
db.t3.large 16
db.t3.medium 7.5

您可以使用 FreeLocalStorage CloudWatch 指标监控数据库实例可用的临时存储,如 Amazon Aurora 的 Amazon CloudWatch 指标中所述。

对于某些工作负载,您可以通过为执行操作的进程分配更多内存来减少临时存储量。要增加操作可用的内存,请增加 work_memmaintenance_work_mem PostgreSQL 参数的值。