在云sql(GCP)上进行维护后,pg_repack版本不匹配



我在GCP上有一个云sql postgres11实例,并使用pg_repack cron来清理我的数据库。我注意到,自从上次维护(3月21日(以来,我无法进行重新包装。当尝试手动运行重新打包时,我遇到了以下错误消息:

错误:pg_repack失败,错误为:程序"pg_repack1.4.4"与数据库库"pg_repack 1.4.6"不匹配

进行了以下检查:

  • 加载的pg_repack版本是什么:
List of installed extensions
Name        | Version |   Schema   |                         Description
--------------------+---------+------------+--------------------------------------------------------------
pg_repack          | 1.4.4   | public     | Reorganize tables in PostgreSQL databases with minimal locks
pg_stat_statements | 1.6     | public     | track execution statistics of all SQL statements executed
plpgsql            | 1.0     | pg_catalog | PL/pgSQL procedural language
(3 rows)
  • pg_repack的可用版本是什么:
name    | version | installed | superuser | relocatable | schema | requires |                           comment
-----------+---------+-----------+-----------+-------------+--------+----------+--------------------------------------------------------------
pg_repack | 1.4.4   | t         | t         | f           |        |          | Reorganize tables in PostgreSQL databases with minimal locks
(1 row)

我将pg_repack升级到1.4.6版本,但没有帮助,我还尝试删除并创建扩展,或者重新启动sql实例,但没有成功。:-(

我想知道是不是有人怂恿了这个问题。如果是,有什么解决办法吗?

我在Debian 10上使用了一个非常jank的解决方法。基本上,我用注释掉的版本检查构建了1.4.6的副本,并成功地用-k标志运行了它:

sudo apt install build-essential postgresql-server-dev-13 libssl-dev zlib1g-dev libreadline-dev
git clone https://github.com/yunyu/pg_repack.git # My fork with the version checks commented out
cd pg_repack
make && sudo make install
./bin/pg_repack <flags>

它似乎起作用了,我没有遇到任何问题。显然,在可以访问Postgres实例的VM上运行此操作,因为您甚至需要shell访问才能执行pg_repack。

升级扩展:

ALTER EXTENSION pg_repack UPDATE;

相关内容

  • 没有找到相关文章

最新更新