2012-03-06 52 views
7

我正在一個新項目中,現在我必須使用現有的PostgreSQL數據庫。該應用程序由CakePHP構建。導入時遇到的問題是數據庫的文件大小約爲4.8 GB,而我對PostgreSQL完全不熟悉。如何將大文件導入PostgreSQL?

我曾在MySql和NoSqls上工作過,但PostgreSQL似乎對我來說是一個棘手的部分。 我甚至試圖通過控制檯導入文件,但又失敗了。我在Ubuntu上使用PostgreSQL(Core i3)。請幫我解決這個問題。

在此先感謝。

NISHANT Shrivastava

+0

什麼格式的文件?你是如何嘗試進行導入操作的?你在控制檯上得到的錯誤是什麼?你的數據庫模式是什麼? – 2012-03-06 07:18:23

+3

這是您要恢復的完整數據庫轉儲(模式+數據)還是您想要插入的數據?該文件是否包含「INSERT」或「COPY」語句?你在運行什麼PostgreSQL版本? – tscho 2012-03-06 07:40:42

+3

「*但失敗*」不是有效的PostgreSQL錯誤消息 – 2012-03-06 09:33:28

回答

5

有更多的可能性

psql yourdb -f yourfile 
psql yourdb < yourfile 
cat yourfile | psql yourdb 

psql yourdb 
\i yourdb 
+0

我已經有大約8GB的sql文件,所有這些命令都會返回「不符合memeory」消息 – 2014-10-24 04:54:45

+0

,請重新檢查您的postgresql配置 - 主要是'work_mem'和'maintenance_work_mem'。其次,重要的是操作系統虛擬管理配置 - 例如Linux上的overcommit_ratio。也許你的Postgres從你的o.s中獲得的內存太少了。 – 2014-10-24 06:48:05

+0

在我的postgresql.conf中檢查了這些配置,#work_mem = 1MB,#maintenance_work_mem = 16MB 我應該改變他們,如果是的話,是什麼? – 2014-10-24 06:57:54