对于M程序出现死循环一直写临时globle把ECP或小机的cachetemp写到磁盘满了。这时候网站和程序的体现有。1.网站报没有空间。2.数据库webservice调用报错,报internal error之类的。也可能是大量业务表操作或者业务存储死循环产生大量 journal日志,日志把磁盘空间撑满了。
这类问题很好发现,到windows看看C盘是不是满了或者linux看看cachetemp和 journal的目录是不是满了。
如果是cachetemp库撑满磁盘的那么就把数据库停止然后从相同版本的其他机器拷个小的cachetemp/CACHE.DAT换过去再启动数据库应该可以解决。如果是 journal日志撑满的磁盘,那么移除 journal日志或者删除不用的 journal日志之后重启数据库应该可以恢复。
得看具体的windows和linux的设置目录定。我碰到过虚拟机分配很小磁盘空间,然后数据库有30W数据,执行把所有表数据日期后移操作。基本等于更新30w数据,产生的 journal把服务器撑满了导致数据库不正常,删除不用的 journal之后恢复正常。
以上就是 journal和cachetemp把数据库撑爆的排查和解决。