Postgresql
PostgreSQL在導入大數據時退出shell
我遇到了這個完全奇怪的場景:我們在 Scientific Linux 虛擬伺服器中有一個基於 PostgreSQL 的存檔伺服器。我想將數據(20+ GB)遷移到物理科學 Linux 機器上,所以我使用了
\copy (select * from table) to '/path/to/file
這執行成功,數據在輸出文件中。
在物理機上,我嘗試使用導入數據
\copy table from '/path/to/file'
當我在終端模擬器上嘗試這個命令時,它會在幾分鐘後退出。此外,登錄後在終端本身上嘗試了它,但幾分鐘後它也退出了。在這兩種情況下,都沒有導入數據。
會不會是伺服器超載了?我們可以克服這個問題並導入整個文件嗎?
編輯:我將 RAM 增加到 3 GB,崩潰需要更長的時間。
編輯 2: 下有一個日誌文件
/var/lib/pgsql/data/pg_log
,該日誌文件的最後幾行有以下幾行:Context: COPY sample, line 77324116 Statement: COPY sample from STDIN ERROR: Unexpected EOF on client connection Context: COPY sample, line 77324116 Statement: COPY sample from STDIN Log: Could not send data to client: Broken pipe Statement: COPY sample from STDIN ERROR: Unexpected EOF on client connection
非常感謝任何幫助!
您的物理機是否使用自動註銷?
$ echo $TMOUT
當存在大於零的值時,您應該取消設置該環境變數。
$ unset TMOUT
http://www.cyberciti.biz/faq/unset-tmout-under-unix-appleosx-bash-ksh-tcsh-shell/
您與終端或終端與伺服器之間的防火牆可能會丟棄連接,因為它“看到”沒有流量,並認為連接已被放棄。