Postgres 升级(10.9 到 12.2)偶尔会失败
- 我们已将 postgres 集群从 10.5 升级到 12.2
- 10.5 版本还具有扩展库 PLV8。但是我们想在升级版(12.2)中去掉那个扩展
- 在升级之前,我们删除了扩展(PLV8)并删除了所有相关的存储过程。
- 使用 12.2 版本创建新集群,然后从该二进制位置使用 pg_upgrade 命令。
- 首先我们使用“检查”,如果成功则使用“链接”进行升级。
但我们观察到,升级有时会在“检查”步骤 ( pg_upgrade --check
) 中失败,而有时在“链接”( pg_upgrade --link
) 步骤中会失败,尽管检查步骤是成功的。
带有以下日志
pg_upgrade --check
失败,输出如下
[-----------------------------]
[Performing Consistency Checks]
[Checking cluster versions ok]
[Checking database user is the install user ok]
[Checking database connection settings ok]
[Checking for prepared transactions ok]
[Checking for reg* data types in user tables ok]
[Checking for contrib/isn with bigint-passing mismatch ok]
[Checking for tables WITH OIDS ok]
[Checking for invalid "sql_identifier" user columns ok]
[]
[*failure*]
[]
“检查是否存在所需库”失败
其他一些时候pg_upgrade --link
失败,输出低于
[-----------------------------]
[][Checking cluster versions ok]
[Checking database user is the install user ok]
[][Checking database connection settings ok]
[][Checking for prepared transactions ok]
[][Checking for reg* data types in user tables ok]
[][Checking for contrib/isn with bigint-passing mismatch ok]
[][Checking for tables WITH OIDS ok]
[][Checking for invalid "sql_identifier" user columns ok]
[][Creating dump of global objects ok]
[][Creating dump of database schemas]
[][ postgres]
[][*failure*]
“检查是否存在所需库”失败
笔记:
- 失败是零星的
- 在“检查所需库”阶段,链接和检查均失败
- 问题是只在虚拟机上。