2012-03-06 50 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