我们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
目录下有几个数据库/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
问题:
- 在不访问 PostgreSQL 服务器的情况下,如何知道哪个基目录对应哪个数据库名称?
- 一旦我们知道哪个目录分配给哪个数据库,删除它是否安全?
pg_database
如果不查看该表的文件或该表的文件(可能/var/lib/pgsql/11/data/global/1262
),您将无法知道哪个目录属于哪个数据库。但是您不能开始删除数据目录中的文件或目录。那肯定会破坏您的数据库集群。唯一的解决方案是增加文件系统中的可用磁盘空间,然后您就可以启动服务器了。