今天早上突然发现测试环境服务全挂了,排查了一下是测试环境的数据库监听无响应。老样子,重启oracle呗!
#进入对应的测试数据库服务器
su - oracle
#进入sqlplus控制台
sqlplus /nolog
#以系统管理员登录
connect / as sysdba
还没等我shutdown oracle就报错了——No space left on device
,看来是数据库空间满了,需要去释放一下
直接df -h
查看磁盘占用情况,好家伙,直接use 100%,接下来就去找出是哪块占用过多,清理就好,一般是日志文件。
du -sh *
查看当前目录下文件大小情况,发现home目录下面40G占用,直接进去查看问题
这里也发现了,是oracle下面的监听文件日志占用太大空间导致的。其中alert是oracle存放告警日志的地方,tract是oracle的监听日志。
一般这两个文件夹的路径为:
#(文本监听日志)
$ORACLE_BASE/diag/tnslsnr/hostname/listener/trace
#(xml监听日志)
$ORACLE_BASE/diag/tnslsnr/hostname/listener/alert
接下来就是清理了,这里大家可参考另外一个博客上的方法Oracle清理alert、trace、listener.log、aud审计文件
不过因为我这个空间本来就不足了,所以就没有备份(毕竟是测试库——),直接删除一个月前的alert日志文件
find -ctime +30 -name "log_*.xml" -exec /bin/rm -rf {} \;
然后再查看磁盘占用情况,发现已经从100%降为77%了。然后直接重启oracle即可!