重新启动postgre报错时,解决方案 ( 由备份文件占用空间太大造成 ) (linux 命令 df -h 查看磁盘空间)

来源:互联网 发布:第一次sql注入教程 编辑:程序博客网 时间:2024/05/06 13:07

在这里使用了一个liunx下的命令查看磁盘空间

df: disk free  http://www.cnblogs.com/chenwenbiao/archive/2011/08/07/2129831.html

常用参数:df -h

-------------------------------------

1.在Linux下重新启动postgre

pg_ctl restart (postgres 用户)

今天遇到的问题

由于导入数据,造成数据库不断生成备份文件,占满了空间

无法继续启动。

解决方法:

备份文件所在目录结构

root

   databases

       archieves

       data

       pg_xlog

           archive_status

(archieves 档案;文件;记录)

删除这些目录下面的数据备份文件

-------------------------------------------------------------------------------

错误现象

执行pg_ctl restart命令

报错

could not change directory to "/root"

pg_ctl:PID file "/database/data/postmaster.pid" does not exist

出现这种问题的原因

不是因为目录下没有这个文件,而是因为磁盘空间太小

进程执行时,没有足够的空间来读取这个文件。

使用postgres用户执行以下命令

df -h可以查看数据库的空间的使用状况

FIlesystem     size   used   avail    Use%   Mounted on                     

/dev/sda3        70     70         0       100         /                                    

进程没有足够的空间来运行,所以出现了上面的错误

----------------------------------------------------

问题产生

使用存储过程对postgre插入数据

每次插入10万条数据,由此在上面的那些目录产生了n多的备份文件

这些备份文件占用了大量的磁盘空间

当最后一次执行这个批处理命令时

控制台报错,说磁盘空间不足,紧接着这边就再也连接不上数据库了

查看进程,发现postgre的进程已经停掉

重新启动时,就报了上面的那个错误

could not change directory to "/root"

pg_ctl:PID file "/database/data/postmaster.pid" does not exist

----------------------------------------

注意:

是什么吃掉了磁盘空间

是备份文件吃掉的巨大的磁盘空间

其实,那几百万条数据并没有占用多少磁盘空间

原创粉丝点击