Postgresql

PostgreSQL在導入大數據時退出shell

  • December 9, 2021

我遇到了這個完全奇怪的場景:我們在 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/

您與終端或終端與伺服器之間的防火牆可能會丟棄連接,因為它“看到”沒有流量,並認為連接已被放棄。

引用自:https://dba.stackexchange.com/questions/150369