2011-05-06 68 views
1

我試圖給pg_bulkload一個嘗試。pg_bulkload錯誤:「致命:無法識別的配置參數」wal_level「」

當我嘗試使用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的一個實例上。我不明白這與我的情況有什麼關係 - 我有Postgres的兩個版本,但我確定我正指向正確的目錄...任何想法都是非常受歡迎的。

回答

5

據我從文檔中可以看出,PostgreSQL 9.x支持名爲「wal_level」的配置參數,但版本8.4不支持。我的9.0.something服務器的postgresql.conf文件具有該參數;我的8.4服務器沒有。

你的錯誤消息表明您正在運行8.4版,但它讀取針對的9.x服務器的配置文件。檢查你的postgresql.conf和安裝過程。我認爲pg_bulkload可能以你沒有預料到的方式「幫助」你。

+1

啊,我認爲你是對的,@ Catcall--這是我最初的預感,但我不確定它是如何找到非9.x可執行文件的。答案很簡單,我的postgresql指向8.4.4。 有一個-p/path/to/postgresql參數 - 我還沒有機會嘗試這種方式,但我會並將回報。我假設你的回答是正確的,但考慮到上述觀察(doh!)。感謝您幫助Unix/DBA新手出來! – Stew 2011-05-09 20:27:19

+0

只是確認你是對的,@ Catcall - 再次感謝! – Stew 2011-05-11 22:12:58

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必須在-lpgcommon之前添加。最後但並非最不重要的一點,要編譯和安裝pg_bulkload,你應該修改你的路徑:PATH =/PostgreSQL的當前位置/PostgreSQL/pgsql/bin:$ PATH make USE_PGXS = 1 [install];這可以確保您的pg_bulkload將被添加到正確版本的PostgreSQL中(在我的情況下爲9.3)。請享用!

相關問題