Postgresql PG_转储内存出错误

Postgresql PG_转储内存出错误,postgresql,pg-dump,Postgresql,Pg Dump,我正在尝试用pg_Dump备份数据库产品 数据库的总大小为1.6 gb。数据库中的一个表是大小为1gb的product_image 当我在数据库上运行pg_转储时,数据库备份失败,出现此错误 ##pg_dump: Dumping the contents of table "product_image" failed: PQgetCopyData () failed. pg_dump: Error message from server: lost synchronization with s

我正在尝试用pg_Dump备份数据库产品

数据库的总大小为1.6 gb。数据库中的一个表是大小为1gb的product_image

当我在数据库上运行pg_转储时,数据库备份失败,出现此错误

##pg_dump: Dumping the contents of table "product_image" failed: 
PQgetCopyData
() failed.
pg_dump: Error message from server: lost synchronization with server: 
got messag
e type "d", length 6036499
pg_dump: The command was: COPY public.product_image (id, username, 
projectid, session, filename, filetype, filesize, filedata, uploadedon, "timestamp") T
如果我尝试通过排除product_image表来备份数据库,则备份会成功


我尝试将postgres.conf中的共享_缓冲区从128MB增加到1.5gb,但问题仍然存在。如何解决此问题?

我遇到了相同的错误,这是由于6月初(2015年)RedHat for OpenSSL的错误补丁造成的。PostgresSQL邮件列表中有

如果您使用SSL连接并超过传输的大小阈值(取决于您的PG版本)(PG<9.4的默认值为512MB),则隧道将尝试重新协商SSL密钥,并且连接将因您发布的错误而终止

对我有效的修复方法是在postgresql.conf中将设置为0(无限),然后重新加载

ssl_重新协商_限制(整数) 指定在重新协商会话密钥之前,有多少数据可以通过SSL加密连接流动。当可以检查大量流量时,重新协商降低了攻击者进行密码分析的机会,但同时也会带来很大的性能损失。发送和接收的流量之和用于检查限制。如果此参数设置为0,则禁用重新协商。默认值为512MB


呵呵。那可能是个错误。使用的确切PostgreSQL server版本(完整输出
SELECT version()
)和
pg\u dump
版本(完整输出
pg\u dump--version
)是什么?此外,发生此断开连接时,PostgreSQL server错误日志中是否显示任何内容?显示服务器日志。请通过编辑问题进行这些更改,然后在完成后在此处留下评论。您认为“内存不足”的假设来自何方?有没有迹象表明确实如此?我刚刚在Ubuntu服务器上遇到了这个问题,它似乎与提到的唯一答案(RedHat bug)无关。我的问题似乎也是随机的——同样大小(和更大)的pg_转储在观察到的故障前后工作正常,没有明显的变化。