GBase 8a数据库集群,在磁盘空间满是,会有各种奇怪的报错发生,本文只介绍磁盘满的排查方法,以及已知的几种典型场景。
目录导航
一、检查方法
df –h
检查数据空间是否满
看是否有100%的磁盘,包括系统根目录、数据库目录、tmp等目录,也包括/dev/shm等目录。
df –i
查看inode是否满
二、解决方案
清理磁盘文件或释放内存等资源。
三、现象
磁盘满时,不止查询会报错,比如Disk full;也出现gcware服务不断地重启等;还可能因为一些文件写入完整,导致系统无法启动,或者查询时报文件损坏。
四、典型场景
1、目录意外使用
其它用户使用本机作为数据盘,导致空间被占满。
2、集群磁盘没有正确挂载
集群目录没有正确挂载,导致使用根目录保存数据,导致磁盘空间满。比如没有在fstab里配置挂载或者信息写错了,导致系统reboot后,使用了系统根目录的空间。
这个场景处理方案是将数据,全部迁移到正确的挂载目录下。
a)先停掉数据库服务
b) 将老的目录改名,比如/opt/gbase 改成 /opt/gbase2
3) 新建目录并确保正常mount
4) 将老目录的文件,全部cp到新的目录下,完成数据迁移。注意 建议增加 -a参数,保留原有文件的属性。
5)确认新目录和文件的权限都是正常的,可以和老的比较
6)启动数据库服务,确认是否运行正常
7)根据情况,考虑删除老的目录,释放空间。建议先保留一段时间在删除。