我在Ubuntu Linux 11和Postgresql 9.1上。我使用CREATE TABLE。选择在DBLINK,并与约200万行的表,我得到Postgresql 9.1在创建表时出现内存不足选择
ERROR: out of memory
DETAIL: Failed on request of size 432.
所以我里面取整个表的内容从一个数据库,并插入(或创建它们)另一个数据库(在同一台机器上)。我正在使用Postgresql的默认值,但是我尝试了使用pgtune的值以及无效。在插入过程中,我看到内存使用量正在增加,但是在达到我的机器限制之前出现错误。的ulimit -a说
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 30865
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 30865
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
如果我做创建表作为...在同一个数据库中选择,然后它的工作原理没有问题。有任何想法吗?
编辑:我试着调整postgresql.conf中的各种内存设置,并没有帮助。我错过了什么?
您是否启用了自动提交功能?如果是,请尝试关闭它。 – 2012-08-09 06:46:10
我试过它没有工作。我发现这个链接http://www.postgresql.org/docs/8.4/static/populate.html与大插入的建议 – user423805 2012-08-09 07:21:53
这给了我一个想法 - 我可能会更好使用pg_dump和工作文件。 – user423805 2012-08-09 07:22:19