我正在运行在Ubuntu 16.04.3。上安装的Postgres 9.4。 Postgres是使用apt-get安装的,我也使用apt-get下载了源代码和依赖项。我下载了pg_rewind REL9_4_STABLE分支并进行了构建。当我尝试运行pg_rewind命令时,得到以下信息:
The servers diverged at WAL position 0/6148D50 on timeline 1.
Rewinding from Last common checkpoint at 0/5000098 on timeline 1
SQL command failed
CREATE OR REPLACE FUNCTION rewind_support.rewind_support_ls_dir(text, boolean) RETURNS SETOF text AS '$libdir/pg_rewind_support' LANGUAGE C STRICT;
ERROR: could not access file "$libdir/pg_rewind_support": No such file or directory
Failure, exiting
我找到了pg_rewind_support.so库文件,并将其放置在pg_config --libdir和--pkglibdir返回的位置,但没有成功。我什至创建了一个不带.so扩展名的副本。
$ls -la $(pg_config --pkglibdir)/pg_rewind_support*
-rw-r--r-- 1 root root 18768 Jul 16 17:59 /usr/lib/postgresql/9.4/lib/pg_rewind_support
-rw-r--r-- 1 root root 18768 Jul 16 17:50 /usr/lib/postgresql/9.4/lib/pg_rewind_support.so
$ls -la $(pg_config --libdir)/pg_rewind_support*
-rw-r--r-- 1 root root 18768 Jul 16 17:59 /usr/lib/x86_64-linux-gnu/pg_rewind_support
-rw-r--r-- 1 root root 18768 Jul 16 17:44 /usr/lib/x86_64-linux-gnu/pg_rewind_support.so
任何想法如何使我安装了apt-get的Postgres识别pg_rewind库?我不想最终在生产环境中运行打包并在内部构建的完整postgres。
答案 0 :(得分:0)
在通过OP进行此操作时,构建pg_rewind的步骤为:
配置PostgreSQL以匹配Debian / Ubuntu使用的目录布局:
./ configure --libdir = / usr / lib / postgresql / 9.4 / lib --bindir = / usr / lib / postgresql / 9.4 / bin
在PostgreSQL上执行“ make”操作。
pg_rewind
必须同时安装在源系统上(以便.so在此处可用)和目标系统上(因此pg_rewind
二进制文件都在此处)。