PostgreSQL 11 安装——从源代码安装还是通过 PG 的存储库安装

PostgreSQL 11 安装——从源代码安装还是通过 PG 的存储库安装

我已经使用 PostgreSQL 16 或 17 年了(大约从 7.2 或 7.3 版本开始)。无论出于什么原因,我一开始都是使用 PG 从源代码安装。由于惰性/害怕改变,直到今天我从未直接通过发行版的存储库安装过 PG。

我想将其更改为 --- 不是本机发行版的 PG 版本,而是 postgres 提供的存储库,以便我可以安装最新版本。我正在运行的服务器是 Debian 9/stretch。

我一定会仔细查看文档,但我欢迎对以下方面提出任何意见:

  • 我总是遵循“简洁版本“---但我没有看到initdbpg_ctl。有没有直接替代这些的?
  • 就此而言,我看到了pg_wrapper,根据man页面,“它确定用户配置的集群和数据库,并调用所需程序的适当版本来连接到该集群和数据库“。这让我毛骨悚然。不应该吗?[让我毛骨悚然?]
  • 我有一个正在运行的 9.x 安装,它使用SQL_ASCII编码和C语言环境。(最初按照“短版本”安装过程从源代码安装)。如何在运行 Debian 9 的全新/开箱即用的服务器上迁移到全新 PG 11 安装?这是我通常做的事情:

    • [postgres]$ pg_dumpall > dumpall.sql并将备份复制到新机器。
    • 在新机器上从源安装,包括/usr/local/pgsql/bin/initdb -D /home/postgres/data -E SQL_ASCII --locale=C(对于我们正在讨论的遗留应用程序,我无法改变这一点)。
    • 以用户 postgres 身份运行:
      [postgres]$ psql -f dumpall.sql
       

    迁移到基于存储库的安装时会有什么差异或意外吗?

  • 它能与 Debian 兼容吗unattended-upgrades

  • 那么 contrib 模块呢?我们的应用程序使用pgcrypto;我通常做的是,运行前psql恢复,我转到下载的源目录,cd contrib/pgcryptomakesudo make install(可能还需要重新启动 postgres?)。然后,dumpall.sql包含导入pgcrypto功能和创建必要函数的所有内容。

还有什么需要注意的方面吗?

答案1

我已经使用 Debian PostgreSQL 包有几年了,没有遇到任何问题,我可以推荐这种安装方式。

以及您问题的答案:

  • 当你安装 Debian 软件包时,它将创建一个名为的数据库模板。像往常一样,有一个“超级用户”用户 - 系统用户 postgres。initdb并且pg_ctl我在 下有/usr/lib/postgres/ver.sion/bin

  • 也许我无法理解您的问题,但我已尝试回答您:Debian 可以管理两个或更多版本的数据库(但运行在不同的端口上)。例如,我可以在端口 5432(默认 PostgreSQL 端口)上运行 PostgreSQL 10.0 版,在端口 5433 上运行 PostgreSQL 11.0 版。如果我必须升级到新版本的 PostgreSQL,Debian 会将新版本安装到另一个端口(5433),并且有一个命令pg_upgradecluster可以让您自动将 PostgreSQL 从旧版本升级到新版本。运行此命令后,端口 5432(默认 PostgreSQL 端口)上将有新版本的 Po stgreSQL(在本例中为 11.0),而端口 5433 上将是旧版本(在本例中为 10.0 版)的 PostgreSQL。您可以测试它,如果一切正常,您可以删除旧版本并卸载旧版本的 PostgreSQL。我对这个过程有很好的经验,我可以推荐它。我的升级过程是这样的:

    • pg_lscluster将列出正在使用的集群。

    • pg_dropcluster --stop 11.0 main(Debian 将为新版本的 PostgreSQL 创建一个新集群,但如果我使用 pg_upgradecluster,它将为我创建一个新集群...)

    • pg_upgradecluster 10.0 main 11.0(它将把我的旧集群升级到新版本的 PostgreSQL,并且将更改新旧版本的端口:在调用此命令之前,旧版本将位于端口 5432 上,而新版本将位于端口 5433 上,调用此命令后,新版本将位于端口 5432 上,而端口 5433 上将是旧版本的 PostgreSQL)。

  • PostgreSQL 建议使用迁移过程(pg_dumpall 然后是 psql -f dump_file)(PG 版本迁移)我可以推荐它。它会很好。

  • 我没有遇到unattended-upgrades任何问题。

  • 我没有使用pgcrypto模块,但恕我直言,您可以使用这个程序(我希望它可以在版本 11 中运行):Ubuntu下PostgreSQL 8.4中pgcrypto模块的安装

相关内容