目前,我们手动升级 PostgreSQL 版本(例如从 9.6 到 10.1)的方法如下:
- 停止数据库(通过 systemctl)
- 在不同的端口上启动数据库
- pg_dumpall 使用不同的端口
- mv 旧数据目录到其他位置
- 安装新的 RPM,卸载旧的 RPM
- 在不同的端口上启动数据库
- pg_restore 数据库
- 停止在不同端口上运行的 DB,在默认端口上启动 DB。
我们在转储/恢复期间使用不同的端口以使其原子化。我们希望在此阶段阻止连接。
也许这个程序太复杂了,我不知道。
到目前为止,我们都是手工完成这一步,但如果能实现自动化就更好了。
我们使用 Salt 进行配置管理。但这是一个基于状态的工具。上面的配方看起来更像是一个程序性的东西。
如何使用 Salt 实现自动化?
如果有更好的解决方案(不含盐)......很好。请告诉我。
答案1
答案2
看起来不错。是的,这是一种简单的顺序程序方法,不需要面向对象的东西。
将所有手动命令放入 shell 脚本中。
#/bin/sh
必须是第一行。确保所有命令都使用完整路径。
如果交互模式是命令的默认设置,则使用非交互模式的参数。