Greenplum/Deepgreen空间满了数据库宕机怎么办?

  1. 云栖社区>
  2. 博客>
  3. 正文

Greenplum/Deepgreen空间满了数据库宕机怎么办?

闻术苑 2018-01-17 23:04:45 浏览983
展开阅读全文

要点

Greenplum/Deepgreen数据库数据存储空间利用率达到100%,数据库宕机无法启动。

背景介绍

来吐槽一个极品案例,我以前服务的一家公司,使用Greenplum数据库,由于工程部管理不到位,运维策略失当,经常出现数据库存储空间不足的情况,空间不足后数据库宕机,业务部门找上来才知道数据库挂了,真是醉了。

出现该问题后,首先想到的是数据库运维失职,在数据库满前有100种方法防止此情况发生:

  1. 利用率达到70%时扩展空间?
  2. 在数据目录下放置大文件,在没有足够空间启动时通过删除大文件获取足够空间启动?
  3. 利用率达到70%时清理数据库无用数据?
    .......................

可是每次都要等到发生了才来找我......

解决办法

  1. 整个Greenplum数据库文件中,最容易通过删除获取存储空间的是pg_log目录下的文件,如果生产系统log日志没有定期清理,那么他会轻松占用1G以上的空间,如果数据库宕机无法启动,首先想到的就是清理该目录下的数据文件(所有节点);清理完后,尝试启动数据库,此时一般不会有问题,都能正常启动;
  2. 最奇葩的是,现场的pg_log保留时间太短,删完了也无法启动。此时还有一种移动文件的办法,首先你查看一下base目录(数据存储的实际目录),找到下面数字较大的文件夹,把里面的几个大文件复制备份一下,然后删除,这样空间就足够启动了,启动数据库后,尽快清理部分表数据后,将原来的数据文件移动回来,保证数据完整性。

第二种方法是在实际工作中总结的经验,使用前一定要做好备份工作,因为涉及删除生产数据,一旦误操作,可能导致数据无法恢复~~

致敬一直奋斗在数据库路上的小伙伴~~

网友评论

登录后评论
0/500
评论
闻术苑
+ 关注