PostgreSQL 教程: 小版本更新

十月 15, 2023

摘要:PostgreSQL 社区每 3 个月发布一次小版本更新,所有受支持的 PostgreSQL 版本都会发布相应的更新。假设我们使用的是 PostgreSQL 13.1,但新的小版本 PostgreSQL 13.2 已经发布。在本节中,我们将了解如何在使用 PostgreSQL 13 时执行小版本升级。

大版本升级通常会改变系统表和数据文件的内部格式。为了进行大版本升级,需要转储和重新加载数据库,或使用 pg_upgrade 程序。

更新 PostgreSQL 小版本通常不需要转储和恢复;您可以停止数据库服务器,安装更新的二进制文件,然后重新启动服务器。然而,虽然更新总是包含一定程度的风险,但 PostgreSQL 小版本仅修复经常遇到的错误、安全问题和数据损坏问题,以降低与更新相关的风险。

准备工作

为了执行 PostgreSQL 13 的小版本更新,我们应该拥有一个已在运行的 PostgreSQL 13 版本的数据库服务器。要使用yumapt,我们应该配置yumapt软件仓库。

操作步骤

我们将使用以下步骤来完成此操作:

1. 关闭 PostgreSQL 实例:

$ /usr/pgsql-13/bin/pg_ctl -D /var/lib/pgsql/13/data stop

2. 获取现有 PostgreSQL 服务器中安装的所有 PostgreSQL 软件包:

$ rpm -qa | grep postgres
postgresql13-13.1-3PGDG.rhel7.x86_64
postgresql13-server-13.1-3PGDG.rhel7.x86_64
postgresql13-libs-13.1-3PGDG.rhel7.x86_64
postgresql13-contrib-13.1-3PGDG.rhel7.x86_64

3. 使用yumapt为所有已安装的软件包安装最新的小版本。

对于 CentOS/Red Hat,请使用以下命令:

$ sudo yum install postgresql13-server postgresql13-contrib

对于 Ubuntu/Debian,请使用以下命令:

$ sudo apt-get update postgresql13-server postgresql13-contrib

4. 启动 PostgreSQL 实例:

$ /usr/pgsql-13/bin/pg_ctl -D /var/lib/pgsql/13/data start

5. 验证小版本更新:

$ /usr/pgsql-13/bin/psql -c "select version()"

这会产生下面的输出:

                                              version
--------------------------------------------------------------------------------------------------------
 PostgreSQL 13.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39), 64-bit
(1 row)

怎么做到的

更新 PostgreSQL 小版本是一个非常简单的过程。第一步是关闭数据库服务器上运行的 PostgreSQL 实例,如步骤 1 所示。数据库关闭后,我们需要查看已安装和使用的软件包,使用yum或者apt获取最新的 PostgreSQL 软件包的列表,如步骤 2 所示。安装最新的软件包后,我们可以启动 PostgreSQL 实例,并注意到版本已成功更新,如步骤 3 和 4 所示。一旦步骤 4 成功完成,应用程序可以重新启动与数据库的连接。