← Home

postgresql 大版本升级

22 December, 2023

gitea 的 helm 升级连带升级了 postgresql , postgresql 的大版本升级比较麻烦,这里记录下。

以上都做完,可以停掉老的服务,用以上备份的 k8s pod yaml 改为新版本镜像,挂载老的数据盘,启动一个实例

# 创建 postgres 用户
adduser --uid 1001 postgres

# 老版本bin /bitnami/postgresql/oldbin
# 老版本data /bitnami/postgresql/olddata

mkdir /bitnami/postgresql/data

su postgres

# 初始化
initdb -E UTF8 -U postgres -D /bitnami/postgresql/data

# 升级
pg_upgrade -b /bitnami/postgresql/oldbin -B /opt/bitnami/postgresql/bin -d /bitnami/postgresql/olddata -D /bitnami/postgresql/data

如果此前的老版本没有正常退出,报错

The source cluster was not shut down cleanly

可以用老的 bin 重新启动关闭一下,确保它是正常的退出,然后在尝试执行上面的升级操作

/bitnami/postgresql/oldbin/pg_ctl start -w -D /bitnami/postgresql/olddata
/bitnami/postgresql/oldbin/pg_ctl stop -s -m fast -D /bitnami/postgresql/olddata

参考资料