我在一个 docker 容器上有一个 PostgreSQL 数据库,里面有 50MB 的数据:
SELECT pg_size_pretty(pg_database_size('db_1'));
pg_size_pretty
------------------
50 MB
但卷大小为 8.5GB:
sudo du -hd1 db_volume
8.5G db_volume
我的 docker-compose 是这样的:
version: '3.8'
services:
r3-db:
image: postgres:12
restart: always
ports:
- 5432:5432
environment:
POSTGRES_PASSWORD: PASSWORD
POSTGRES_USER: USER
POSTGRES_DB: db_1
volumes:
- ./db_volume/:/var/lib/postgresql/data:Z
我尝试VACUUM(FULL, ANALYZE, VERBOSE)
在任何表上使用,但数据库的文件大小没有改变!
该卷包含许多core.NUMBER
大小为 145MB 的文件,
如何减少数据库的磁盘使用率?
这些是 PostgreSQL 崩溃时生成的核心转储。您可以将它们与 gdb 一起使用,以找出它崩溃的原因。您可以删除它们。您可以保存一个以使用它来找出 PostgreSQL 不断崩溃的原因,因为这绝对不应该发生。还可以查看 PostgreSQL 日志文件,了解它崩溃的原因。