PG 8.3,磁盘已满,服务器无法启动

Leo*_*ard 4 postgresql postgresql-8.4

这个问题涉及Postgresql 8.3.我还不能创建标签,所以Ichose版本8.4作为标签.

它是一个测试服务器,但我无法连接到它,因为经过几天的密集使用后,Postgres所在的磁盘已满.我不知道RDBMS无法启动,我无法做真空.

在重新启动时,系统说,

Starting PostgreSQL 8.3 database server: mainThe PostgreSQL server failed to sta
rt. Please check the log output: FATAL: could not write lock file "postmaster.pi
d": No space left on device failed!
 failed!
Run Code Online (Sandbox Code Playgroud)

Linux工作正常,并有足够的可用磁盘空间.Postgresql在/ var/lib /上安装了自己的分区,并且没有空闲字节.

我想我应该在重新启动数据库服务器之前释放一些空间,但我不知道要删除哪些文件.日志文件不在同一个分区上,因此无法清除它们.有人可以帮我这个吗?

Gar*_*ary 8

pg_log可以被清除它用于管理员的常规日志不要删除数据库内部的数据库pg_xlogpg_clog目录(将它们视为基数中的数据文件).即使您有空间,删除它们也可能导致重新启动问题.

我尝试的过程(在备份后)是:

/var/lib/pgsql树下找到一个相当大的目录,但不要太大,以至于无法复制到另一个文件系统.它不必是整个base目录等,它可以是那里的子目录.

将该目录(包括所有子目录)的内容复制到另一个文件系统.

删除旧目录,然后创建一个符号链接,其中旧目录位于新位置.

启动数据库和VACUUM FULL(或者现在你可以访问,或者如果你有一个可以不用的数据库就可以删除数据库).

关闭数据库.

删除符号链接,然后再次将文件移回var/lib文件系统.

你无法进​​行文件系统备份的事实会让我有点不愿意在你的环境中做这件事.