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將爲我們提供一個實例。我想我需要問亞馬遜客戶服務。 –

相關問題