如何将大型文件导入PostgreSQL?

10

我现在参与一个新项目,需要与现有的PostgreSQL数据库一起工作。应用程序是使用CakePHP构建的。我在导入时遇到的问题是,数据库文件的大小约为4.8GB,而我对PostgreSQL完全不熟悉。

我曾经使用过MySql和NoSql,但PostgreSQL对我来说似乎有点棘手。 我甚至尝试通过控制台导入文件,但仍然失败了。我正在Ubuntu上使用PostgreSQL(Core i3)。请帮助我摆脱这个问题。

提前致谢。

Nishant Shrivastava


文件是什么格式?您尝试如何导入,控制台显示了什么错误?您的数据库模式是什么? - Daniel Lyons
3
你需要恢复的是完整的数据库转储(包括架构和数据),还是只有你想要插入的数据?文件中是否包含“INSERT”或“COPY”语句?你正在运行哪个版本的PostgreSQL? - tscho
3
但是再次失败”不是有效的PostgreSQL错误消息。 - user330315
请展示您尝试导入的文件布局和表格布局。您只是将一个文件导入到一个表格中吗? - Kuberchaun
1个回答

7

有更多的可能性

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

psql yourdb
\i yourdb

我有大约8GB的SQL文件,所有这些命令都返回“内存不足”的消息。 - Said Kaldybaev
请检查您的PostgreSQL配置,主要是work_memmaintenance_work_mem。接下来重要的是操作系统虚拟管理配置,例如Linux上的overcommit_ratio。也许您的Postgres从操作系统中获得的内存太少了。 - Pavel Stehule
我在我的postgresql.conf文件中检查了这些配置,#work_mem = 1MB,#maintenance_work_mem = 16MB。我应该更改它们吗?如果是的话,改成什么呢? - Said Kaldybaev
你可以将其作为第一步增加。 - Pavel Stehule
更改后:work_mem = 500MB,maintenance_work_mem = 1000MB,但仍返回相同的错误。 - Said Kaldybaev
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接