2

我在Amazon EC2实例上使用PostgreSQL数据库转储文件150 GB。在从EC2服务器转储RDS数据时出错。为什么Postgres DUMP数据数据库连接丢失在Amazon RDS上?

该命令的输出如下所示。它给错误

1. psql connection not open  
2. connection to server was lost 
on RDS dump postgres copy command 

Command Output: 
SET 
SET 
SET 
SET 
SET 
SET 
SET 
SET 
ALTER TABLE 
ALTER TABLE 
ALTER SEQUENCE 
ALTER TABLE 
psql:filename.sql:1396266: connection not open 
psql:filename.sql:1396266: connection to server was lost 

应用程序配置:

Ruby 1.9.3 
Rails 3 
PostgreSQL 9.3 

请帮助为什么它是在复制数据打破。当连接建立并且命令正在运行时。在执行复制命令时突然中断。

更新调查结果

命令/脚本,我使用的数据转储数据低于:

psql -h instance.id.region-2.rds.amazonaws.com -p 5432 -U username -W -d database_name -f filename.sql 

解决方法查找问题如下:

我把head 100 rowstail 200 rows1 file从大150 GB文件它转换为56KB.当我运行这个命令时,它成功转储了。

所以文件大小是造成问题。对于在RDS上转储数据的小型文件,正在运行相同的命令。

我该如何解决这个问题?

+0

你能告诉我们脚本(或只是脚本的行导致问题)吗?没有脚本我们无法帮助你。 –

+0

@IgorRomanchenko请看我更新的答案。 –

+0

你能在第1396266行显示'filename.sql'的内容吗? –

回答

0

我认为你的连接在tcp连接级别断开连接。 这些是你的env从你的客户端到RDS的限制吗? 像netflow控制,空闲会话杀死等...

+0

感谢您的回复..我连接EC2实例的RDS。所以连接不会中断。但同时倾销巨大的文件在千兆字节它失败... –

+0

你可以尝试设置tcp keepalive时间间隔(在postgresql.conf或linux sysctl.conf中),当转储大数据时,会在tcp会话链接中出现很长时间的空闲,某些网络硬件将杀死空闲会话,设置tcp keepalive将在客户端和服务器之间发送数据包。 –

+0

嘿谢谢,但我们无法更新postgresql的RDS配置。 RDS将为我们提供一个实例。我想我需要问亚马逊客户服务。 –

相关问题