Postgresql

pg_dump 將文件轉儲到 ROOT

  • September 13, 2022

我昨晚執行 pg_dump 來備份一些 111Gb 數據庫: time pg_dump -j 5 -Fd -Z 1 db_profans -f /backup-nfs/

我監視大小增長這裡

但是,今天早上突然,數據庫宕機了。我檢查系統目錄。根已滿。PS:我沒有任何訪問伺服器的權限,我們有不同的人來管理它。

到底是怎麼回事 ?為什麼所有備份文件都移動到 root ?或者其他導致根目錄填滿的東西,比如備份期間創建的 WAL 文件或日誌文件堆積?我確實有這個數據庫的複制,但它真的很小,每天只同步 300 條記錄。而且我也沒有打開任何日誌記錄..

如何手動刪除所有備份文件?

這裡是整個目錄的圖片.

更新:

我發現問題的原因實際上是歸檔過程沒有寫入外部磁碟。該文件夾“/Archive”,據說是保存歸檔的 WAL,實際上是在“根”內創建的!我不知道,因為它不像我前幾天要求的那樣。現在,當我刪除存檔的 WAL 時,伺服器重新啟動並執行。所以原因不是來自 pg_dump 程序。

看起來“其他人”沒有很好地設置數據庫。您在根文件系統中沒有數據庫文件。理想情況下,您創建三個文件系統:一個用於數據文件,一個用於日誌文件,pg_wal一個用於日誌文件。這樣,數據庫數據就無法填滿您的根文件系統。

由於您pg_dump在數據庫機器上執行(為什麼??),您的備份最終在同一個(並且唯一的)文件系統中,並且您碰巧填滿了磁碟。不要那樣做!

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