跳至内容

如何在执行 Amazon RDS for PostgreSQL 的主要版本升级后保持应用程序行为的一致性?

1 分钟阅读
0

我想防止在升级 Amazon Relational Database Service (Amazon RDS) for PostgreSQL 时出现应用程序性能问题。

解决方法

为您的 Amazon RDS for PostgreSQL 生产实例设置测试环境

要构建测试环境,必须从最近的快照恢复数据库。或者,对数据库执行时间点恢复,以恢复到最新的可恢复时间,然后对新恢复的快照](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Process.html)执行升级[。

完成以下步骤:

  1. 从最近的快照恢复数据库或执行时间点恢复。
  2. 在已恢复的数据库上执行版本升级

进行功能测试

**注意:**有关详细信息,请参阅 PostgreSQL 网站上的 Amazon RDS for PostgreSQL updatesMigration to Version 17.2

当执行主要版本升级时,任何版本更改都可能会影响应用程序兼容性。例如,如果未正确调整 Max_connection 参数,则 RDS for PostgreSQL 中的连接管理更改可能会导致应用程序中断。

要识别任何版本兼容性问题,必须在测试数据库中使用类似生产环境的工作负载来测试应用程序功能。然后,您可以对应用程序代码进行必要的更改。

进行性能测试

建立当前性能基准

完成以下步骤:

  1. 为查询计划日志记录启用 auto_explain。有关详细信息,请参阅 PostgreSQL 网站上的 auto_explain
    **注意:**有关详细信息,请参阅如何记录 Amazon RDS PostgreSQL 或 Aurora PostgreSQL 查询的执行计划以调优查询性能?
  2. 启用包含持续时间的查询日志记录。有关详细信息,请参阅如何使用 Amazon RDS 为 PostgreSQL 启用查询日志记录?
  3. 激活增强监控性能详情
  4. 要将数据库性能和工作负载进行历史比较,请将数据库日志 PostgreSQL 日志导出到 Amazon CloudWatch

识别性能问题

要比较不同数据库版本之间的执行策略和成本,请使用 EXPLAIN 查询计划。要监控并比较旧版本中的实际查询响应时间和资源利用模式,请使用查询日志记录性能详情

完成以下步骤:

  1. 比较不同版本之间的 EXPLAIN 计划。有关详细信息,请参阅 PostgreSQL 网站上的 EXPLAIN
  2. 要更新表统计数据,请使用 ANALYZE,并增加 default_statistics_target 的值。有关详细信息,请参阅 PostgreSQL 网站上的 ANALYZE
  3. 要删除索引膨胀,请使用 REINDEX。有关详细信息,请参阅 PostgreSQL 网站上的 REINDEX
  4. (可选)要为相关列创建扩展统计数据,请使用 CREATE STATISTICS 命令。有关详细信息,请参阅 PostgreSQL 网站上的 CREATE STATISTICS
    **注意:**如果需要,请使用 pg_hint_plan 扩展名。

进行压力测试

完成以下步骤:

  1. 根据您的应用程序工作负载,通过自定义脚本使用 pgbench。有关详细信息,请参阅 PostgreSQL 网站上的 pgbench
  2. 要测试数据库在高负载下的行为并监控性能指标,必须应用类似生产环境的工作负载。有关详细信息,请参阅 PostgreSQL benchmark observations and considerationsBenchmark Amazon RDS for PostgreSQL with Dedicated Log Volumes

相关信息

PostgreSQL 网站上的 Planner Method Configuration

Understanding statistics in PostgreSQL

如何执行 RDS for PostgreSQL 的主要版本升级