pg_bulkload错误:“致命:无法识别的配置参数”wal_level“”

时间:2011-05-06 19:02:46

标签: sql postgresql

我正试图尝试pg_bulkload

当我尝试使用它提供的postgresql可执行文件时,我收到以下错误:

/usr/local/src/pg_bulkload-3.0.1/bin> ./postgresql start -D /pg_data
server starting
/usr/local/src/pg_bulkload-3.0.1/bin>
FATAL:  unrecognized configuration parameter "wal_level"
当有人使用9.0版本的psql在Postgres 8.4的实例上运行脚本时,Google出现了与此错误完全匹配的问题。我不知道这与我的情况有什么关系 - 我有两个版本的Postgres,但我确定我指的是正确的目录...任何想法都非常受欢迎。

2 个答案:

答案 0 :(得分:5)

据我所知,PostgreSQL 9.x支持名为“wal_level”的配置参数,但版本8.4不支持。我的9.0.something服务器的postgresql.conf文件具有该参数;我的8.4服务器的那个没有。

您的错误消息表明您正在运行版本8.4,但它正在读取9.x服务器的配置文件。检查postgresql.conf和安装过程。我认为pg_bulkload可能会以你没想到的方式“帮助”你。

答案 1 :(得分:0)

如果您的计算机上安装了多个版本的PostgreSQL,我认为将pg_bulkload安装到正确位置可能有点棘手。我的第一个问题是pg_bulkload(版本3.1.6)找不到pg_port库。我将库libpgport.a(一个静态库)复制到了找到它的/ usr / local / lib,但是不推荐这种方法,因为这只是一个在最后不起作用的快速修复。所以,很快就出现了另一个问题:“对'pstrdup'的未定义引用”。我认为在pg_bulkload中应该有可能指出PostgreSQL的安装位置。好吧,我在pg_bulkload-3.1.6 / bin中更改了pg_bulkload的Makefile,即与PG_LIBS一致: PG_LIBS = $(libpq)-L / PostgreSQL的当前位置 / PostgreSQL / pgsql / lib -lpgport -lpgcommon 。必须在-lpgcommon之前添加-lpgport。最后但并非最不重要的是,要编译和安装pg_bulkload,你应该修改你的PATH: PATH = / 你的PostgreSQL的当前位置 / PostgreSQL / pgsql / bin:$ PATH make USE_PGXS = 1 [install] ;这样可以确保将pg_bulkload添加到正确版本的PostgreSQL中(在我的例子中为9.3)。享受!