2013-12-09 78 views
0

我要恢復從9.1版本PostgreSQL的備份(本地使用)到較早版本:8.1(在服務器上)恢復PostgreSQL的9.1備份到8.1

我能做到這一點,而不升級的服務器?

我試過使用pg_dump來創建一個SQL轉儲。

當我試圖恢復它,我得到一個錯誤信息: 錯誤:參數「standard_conforming_strings」不能改變

和 錯誤:在語法錯誤或接近「(」在人物365 17行: geom900913幾何(的MultiPolygon,900913),

我試圖在9.1 postgres.conf設置standard_conforming_strings到了,但我仍然得到這個消息。

難道Postgres的9變更爲幾何列的配置?

+0

也許我需要設置postgreSQL 8.1數據庫,以便它使用postGIS?這將解釋爲什麼它不能識別幾何列。如果是這樣,我該怎麼做? –

+4

如果完全是*降級*而不是*升級*。無論如何你不應該使用8.1。但你的問題的答案很明確:不。您不能使用較低版本的較高版本生成的轉儲(至少不能手動編輯生成的SQL文件)。 –

+0

我準備手動編輯SQL文件。 –

回答

1

降級通常具有挑戰性。

特別是,如果您的新服務器運行PostGIS 2,並且您的舊服務器運行1.x,那麼您將不會有太多機會將備份還原到舊服務器。 PostGIS具有新的數據類型,新的數據表示,不同的功能和目錄表等等。我強烈懷疑你必須將數據導出到shapefile,然後在舊版本上使用shp2pg重新加載它們。

如果它們都在同一個PostGIS上(兩者都爲1.x或2.x),則可以使用pg_dump -Fc進行備份,然後使用pg_restore將它從9.1恢復到8.1。這將檢測目標服務器的版本並處理不兼容的參數等問題。您可能需要使用8.1的pg_dumppg_restore,但請嘗試9.1的第一個。

8.1已過時,不受支持,且未收到錯誤或安全修復。請不要降級,請考慮使用文檔中描述的升級過程將8.1服務器升級到9.1或更高版本。降級對於沒有真正的好處會是很大的痛苦,然後你只需要很快再次升級。