我想最大限度地减少停机时间并优化 Amazon Relational Database Service (Amazon RDS) for PostgreSQL 数据库主要版本升级的性能。
简短描述
**注意:**主要版本升级可能包含数据库更改,这些更改与现有应用程序不兼容。在升级之前,请务必在非生产环境中全面测试升级过程。有关更多信息,请参阅如何执行 RDS for PostgreSQL 的主要版本升级。
要升级数据库 (DB) 实例,请使用以下方法之一:
- 快照还原
- 手动升级
- 蓝绿部署
- AWS Database Migration Service (AWS DMS)
先决条件:
解决方法
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
优化升级性能
为了最大限度地减少在执行主要引擎版本时出现的潜在问题,请执行以下操作:
要识别处于 running(正在运行)状态超过 10 分钟的事务,请运行以下命令:
SELECT * FROM pg_stat_activity
WHERE pid <> pg_backend_pid()
AND state in ('idle', 'idle in transaction', 'idle in transaction (aborted)', 'disabled','active')
AND state_change < current_timestamp - INTERVAL '10' MINUTE
AND usename != 'rdsadmin';
如果您发现长时间运行的事务,请使用 pg_cancel_backend 或 pg_terminate_backend 结束该事务。有关详细信息,请参阅 PostgreSQL 网站上的 Server signaling functions(服务器信令函数)。
使用快照还原进行升级
为数据库实例创建数据库快照,将快照升级到更新的主要版本,然后将其还原到新的数据库实例。
**注意:**新数据库实例必须使用不同的名称,并且在升级过程中应用程序必须停止。此外,在升级完成后必须更新应用程序端点。
手动升级数据库实例
要手动升级数据库实例,请参阅手动升级引擎版本。
**注意:**手动升级数据库需要停机。为了最大限度地减少停机时间,请使用蓝绿部署。
使用蓝绿部署升级
要创建蓝绿部署,请参阅创建蓝绿部署。在绿色环境中,请指定更新的引擎版本。
有关蓝绿部署的更多信息,请参阅 Amazon RDS 蓝绿部署的限制和注意事项。
使用 AWS DMS 进行升级
使用 AWS Database Migration Service (AWS DMS) 将数据从当前数据库实例迁移到具有升级版本的新实例。AWS DMS 支持更改数据捕获 (CDC) 以进行持续复制。
升级 pg_statistics 表
完成主要引擎版本升级后,对所有数据库运行 ANALYZE VERBOSE; 命令以升级 pg_statistics 表。有关详细信息,请参阅 PostgreSQL 网站上的 ANALYZE。