Help us learn about your current experience with the documentation. Take the survey.
升级外部 PostgreSQL 数据库
在升级您的 PostgreSQL 数据库引擎时,请务必遵循 PostgreSQL 社区和您的云服务提供商推荐的所有步骤。PostgreSQL 数据库有两种升级方式:
-
次版本升级:此类升级仅包含错误修复和安全补丁。它们始终与您现有的应用程序数据库模型向后兼容。
次版本升级过程包括替换 PostgreSQL 二进制文件并重启数据库服务。数据目录保持不变。
-
主版本升级:此类升级会更改内部存储格式和数据库目录。因此,查询优化器使用的对象统计信息不会转移到新版本,必须使用
ANALYZE重新构建。如果不遵循文档中记录的主版本升级流程,通常会导致数据库性能不佳以及数据库服务器上的 CPU 使用率过高。
所有主流云服务提供商都支持使用 pg_upgrade 工具对数据库实例进行原地主版本升级。但是,您必须遵循升级前和升级后的步骤,以降低性能下降或数据库中断的风险。
请仔细阅读您的外部数据库平台的主版本升级步骤:
- Amazon RDS for PostgreSQL
- Azure Database for PostgreSQL Flexible Server
- Google Cloud SQL for PostgreSQL
- PostgreSQL community
pg_upgrade
主版本升级后务必对数据库执行 ANALYZE
在主版本升级后,必须运行 ANALYZE 操作来刷新 pg_statistic 表,因为优化器统计信息不会通过 pg_upgrade 转移。应对已升级的 PostgreSQL 服务/实例/集群上的所有数据库执行此操作。
在规划您的维护时段时,应将 ANALYZE 的执行时间考虑在内,因为此操作可能会显著降低 GitLab 的性能。
要加速 ANALYZE 操作,请使用 vacuumdb 工具,并搭配 --analyze-only --jobs=njobs 参数,通过同时运行 njobs 个命令来并行执行 ANALYZE 命令。