重新启动postgre报错时,解决方案 ( 由备份文件占用空间太大造成 ) (linux 命令 df -h 查看磁盘空间)
在这里使用了一个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
----------------------------------------
注意:
是什么吃掉了磁盘空间
是备份文件吃掉的巨大的磁盘空间
其实,那几百万条数据并没有占用多少磁盘空间
更多推荐
所有评论(0)