PostgreSQL 由于设备空间不足而崩溃

Séb*_*ent 2 postgresql disk-space crash

PostgreSQL 11我们在服务器下运行CentOS 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
Run Code Online (Sandbox Code Playgroud)

目录下有几个数据库/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
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 如何在不访问PostgreSQL服务器的情况下知道哪个基目录对应哪个数据库名称?
  2. 一旦我们知道哪个目录分配给哪个数据库,删除它是否安全?

Lau*_*lbe 6

如果不查看pg_database该表或该表的文件(可能/var/lib/pgsql/11/data/global/1262),您就无法知道哪个目录属于哪个数据库。

但您无法开始删除数据目录中的文件或目录。这肯定会破坏你的数据库集群。唯一的解决方案是增加文件系统中的可用磁盘空间,然后就可以启动服务器了。