Corremos PostgreSQL 11
em um CentOS 7
servidor. Recentemente, tivemos vários avisos no log que causaram o travamento do servidor 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
Existem vários bancos de dados no /var/lib/pgsql/11/data/base/
diretório:
# 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
Perguntas:
- Como saber qual diretório base corresponde a qual nome de banco de dados sem acesso ao servidor PostgreSQL?
- Uma vez que sabemos qual diretório está atribuído a qual banco de dados, é seguro excluí-lo?
Você não pode saber qual diretório pertence a qual banco de dados sem dar uma olhada no
pg_database
arquivo dessa tabela (provavelmente/var/lib/pgsql/11/data/global/1262
).Mas você não pode começar a excluir arquivos ou diretórios no diretório de dados. Isso certamente destruirá seu cluster de banco de dados. A única solução é aumentar o espaço em disco disponível no sistema de arquivos, então você poderá iniciar o servidor.