您的位置:首页 > 运维架构 > Linux

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

2012-04-23 15:52 447 查看
在这里使用了一个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

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

注意:

是什么吃掉了磁盘空间

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

其实,那几百万条数据并没有占用多少磁盘空间
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: