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



这个问题涉及Postgresql8.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!

Linux运行良好,并且有足够的可用磁盘空间。Postgresql在/var/lib/上安装了自己的partion,并且没有可用字节。

我想我应该先释放一些空间,然后才能重新启动数据库服务器,但我不知道该删除哪些文件。日志文件不在同一个分区上,因此清空它们没有帮助。有人能帮我吗?

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

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

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

将该目录(包括任何子目录)的内容复制到另一个文件系统。

删除旧目录,然后创建一个符号链接,将旧目录指向新位置。

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

关闭数据库。

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

事实上,您不能进行文件系统备份,这会让我有点不愿意在您的环境中进行备份。

删除位于/pg_log中的日志文件以清理一些内容并开始。

真空不会回收磁盘空间,你需要真空满。你也可以删除一些索引或其他你现在不需要的东西,只是为了回收空间。

===编辑===

将pg_ident.conf复制到另一个磁盘,或者删除所有注释以腾出一点空间。您也可以在制作副本后清理postgresql.conf。

之后,以单用户模式(使用--single)启动PostgreSQL,并连接到要清理的数据库。清理完成后,停止PostgreSQL并以正常模式重新启动。

您必须将数据文件移动到另一个分区,然后启动服务器,然后清空,然后将文件移回。容易的

相关内容

  • 没有找到相关文章

最新更新