这是Oracle数据库日常运维中很常见的一个场景,安装目录满有时不光会导致无法记录最新数据库的日志信息,导致遇到问题无法查到最新的日志信息,还会引发一些奇怪的问题。
所以日常巡检要保证Oracle的安装目录要有一定的空闲空间。
如果已经巡检发现安装目录满了,可以按照这样的思路来解决。
1.切到安装目录下
cd $ORACLE_BASE
2.用下面的命令,逐层找出大文件或文件夹
du -sk * |sort -rn
举例说,比如最终查到/u01/app/oracle/diag/rdbms/jyzhao/jyzhao/trace这个目录的空间大小占比最大。
3.移动或删除不必要的文件
由于此目录都是oracle的一些跟踪和日志文件,可以删除,但考虑最近日志可能会在其他故障问题处理中查看的需求,故只删除7天以前的日志。
cd /u01/app/oracle/diag/rdbms/jyzhao/jyzhao/trace
find . -mtime +7 | xargs rm -rf
如果N多年都没清理过,那么此目录的文件数量会很多,对应删除的时间也会很长,可以关注上面删除的进程是否还在:
ps -ef|grep find
注:Oracle安装目录的下的各种文件和子目录比较多,建议由DBA来操作判断,避免由于不了解造成误删除重要文件形成事故。
4.建议
①建议项目规范时,给oracle的安装目录至少50G可用空间,且不要存放其他无关文件。
②如有必要,可以写定时脚本删除一定时间之前的跟踪和日志文件。alert<SID>.log
也可以定期打包。