升级到 postgres 10 想要使用校验和

9 postgresql upgrade postgresql-10

我有一个 postgresql 9.3 实例,我想升级到 postgresql 10。我有一个我认为应该有效的命令,但它包含校验和。我的旧实例没有启用校验和(甚至可以吗?忘记太久以前了),这导致我的试运行无法正常工作。

错误信息

Performing Consistency Checks on Old Live Server
------------------------------------------------
Checking cluster versions                                   ok

old cluster does not use data checksums but the new one does
Failure, exiting
Run Code Online (Sandbox Code Playgroud)

我的命令剥夺了真实路径

time ${PGBINNEW}/pg_upgrade --old-bindir=${PGBINOLD} --new-bindir=${PGBINNEW} --old-datadir=${PGDATAOLD} --new-datadir=${PGDATANEW} --old-port=${PGPORT} --new-port=${PGPORT} --jobs=$(nproc | awk '{ {print ($1 > 4) ? 4 : ($1 == 1 ? 1 : $1 - 1)} }') --link --username=postgres --check
Run Code Online (Sandbox Code Playgroud)

我可以做什么来解决这个问题?

S.G*_*ami 8

在 pg_upgrade 期间发生在我身上。我刚刚禁用了校验和:

$ pg_checksums -d /var/lib/postgres/data/
pg_checksums: syncing data directory
pg_checksums: updating control file
Checksums disabled in cluster
Run Code Online (Sandbox Code Playgroud)

在我的例子中 /var/lib/postgres/data 是数据目录。你的可能会有所不同。


小智 0

要解决上述问题,旧集群不使用数据校验和,但新集群在安装新数据集群时失败,退出错误:

.initdb -k -D /你的数据目录路径/ 然后执行升级