Postgresql

PostgreSQL 因設備空間不足而崩潰

  • May 12, 2022

我們PostgreSQL 11CentOS 7伺服器下執行。最近,我們在日誌中有幾個警告導致 PostgreSQL 伺服器崩潰:

2022-05-09 23:26:29 EDT pg_restore      db123      132.132.132.32  postgres        ERROR:  could not extend file "base/71592268/71621568": No space left on device
2022-05-09 23:26:29 EDT pg_restore      db123      132.132.132.32  postgres        HINT:  Check free disk space.
(...)
2022-05-09 23:26:33 EDT                                 DETAIL:  Could not open file "pg_notify/0000": No space left on device.
2022-05-09 23:26:34 EDT                                 LOG:  database system is shut down

目錄下有幾個數據庫/var/lib/pgsql/11/data/base/

# du -h /var/lib/pgsql/11/data/base/
7.7M    /var/lib/pgsql/11/data/base/1
7.7M    /var/lib/pgsql/11/data/base/13877
8.1M    /var/lib/pgsql/11/data/base/13878
0       /var/lib/pgsql/11/data/base/pgsql_tmp
61M     /var/lib/pgsql/11/data/base/852671
166M    /var/lib/pgsql/11/data/base/852672
699M    /var/lib/pgsql/11/data/base/852673
83M     /var/lib/pgsql/11/data/base/852674
14M     /var/lib/pgsql/11/data/base/852675
476M    /var/lib/pgsql/11/data/base/852676
131M    /var/lib/pgsql/11/data/base/852677
14G     /var/lib/pgsql/11/data/base/1102146
9.9M    /var/lib/pgsql/11/data/base/30205118
9.4M    /var/lib/pgsql/11/data/base/34117470
274M    /var/lib/pgsql/11/data/base/71255881
9.2G    /var/lib/pgsql/11/data/base/71501647
9.2G    /var/lib/pgsql/11/data/base/71592267
9.8M    /var/lib/pgsql/11/data/base/60242430
9.2G    /var/lib/pgsql/11/data/base/71423479
8.1G    /var/lib/pgsql/11/data/base/71423480
6.5G    /var/lib/pgsql/11/data/base/71592268

問題:

  1. 在不訪問 PostgreSQL 伺服器的情況下,如何知道哪個基目錄對應哪個數據庫名稱?
  2. 一旦我們知道哪個目錄分配給哪個數據庫,刪除它是否安全?

pg_database如果不查看該表的文件或該表的文件(可能/var/lib/pgsql/11/data/global/1262),您將無法知道哪個目錄屬於哪個數據庫。

但是您不能開始刪除數據目錄中的文件或目錄。那肯定會破壞您的數據庫集群。唯一的解決方案是增加文件系統中的可用磁碟空間,然後您就可以啟動伺服器了。

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