自动升级 PostgreSQL

自动升级 PostgreSQL

目前,我们手动升级 PostgreSQL 版本(例如从 9.6 到 10.1)的方法如下:

  1. 停止数据库(通过 systemctl)
  2. 在不同的端口上启动数据库
  3. pg_dumpall 使用不同的端口
  4. mv 旧数据目录到其他位置
  5. 安装新的 RPM,卸载旧的 RPM
  6. 在不同的端口上启动数据库
  7. pg_restore 数据库
  8. 停止在不同端口上运行的 DB,在默认端口上启动 DB。

我们在转储/恢复期间使用不同的端口以使其原子化。我们希望在此阶段阻止连接。

也许这个程序太复杂了,我不知道。

到目前为止,我们都是手工完成这一步,但如果能实现自动化就更好了。

我们使用 Salt 进行配置管理。但这是一个基于状态的工具。上面的配方看起来更像是一个程序性的东西。

如何使用 Salt 实现自动化?

如果有更好的解决方案(不含盐)......很好。请告诉我。

答案1

根据 PostgreSQL 网站,现在有一个名为 pg_upgrade 的实用程序,专门用于帮助升级。

您可以找到更多信息那里. 它们包含详细的使用示例。

问候。

答案2

看起来不错。是的,这是一种简单的顺序程序方法,不需要面向对象的东西。

将所有手动命令放入 shell 脚本中。

#/bin/sh

必须是第一行。确保所有命令都使用完整路径。

如果交互模式是命令的默认设置,则使用非交互模式的参数。

相关内容