
如何删除大量oracle中的小trace文件
3个回答
展开全部
要先看看数据库的alert日志,有没有错误。所有dump目录下的trace文件大部分是错误补充文件,如果alert日志没什么问题,那么直接操作系统级别删除就行。不过我说的是各个dump目录下的,比如adump,bdump,cdump下的,如果是其他目录下的我不知道,是什么文件。不过个人建议,可以保留一部分(10-15内生成的),毕竟这东西很小不占用什么空间,没准哪天查什么错误或者问题用到。
2016-02-13 · 知道合伙人互联网行家
关注

展开全部
删除大量的oracle的trace文件需要写shell脚本。
比如删除一个月前的trace文件
find /u01/app/oracle/diag/rdbms/testgg1/testgg1/trace -mtime +30 -type f -name "*" -exec rm -rf {} \;
可以写成shell脚本如下:
[oracle@Primary shell]$ vi delete_trace.sh
#! /bin/sh
export ORACLE_SID=testgg1
VALUE=`sqlplus -S "/ as sysdba" << EOF_SQLPLus
set pagesize 0 feedback off verify off heading off echo off
select value from v\\\$diag_info where name='Diag Trace';
exit;
END`
find $VALUE -mtime +30 -type f -name "*" -exec rm -rf {} \;
~
配合crontab自动删除一个月前的trace文件,由于某些数据库可能会产生trace文件比较多如果没有及时去清理这些无效的trace文件,很容易导致空间暴涨,做一个job自动去删除,免去了DBA的烦恼。
Shell可以在DBA的运维过程中带来了很多的方便,目前正在学习shell,谨以此纪录并提高自己
比如删除一个月前的trace文件
find /u01/app/oracle/diag/rdbms/testgg1/testgg1/trace -mtime +30 -type f -name "*" -exec rm -rf {} \;
可以写成shell脚本如下:
[oracle@Primary shell]$ vi delete_trace.sh
#! /bin/sh
export ORACLE_SID=testgg1
VALUE=`sqlplus -S "/ as sysdba" << EOF_SQLPLus
set pagesize 0 feedback off verify off heading off echo off
select value from v\\\$diag_info where name='Diag Trace';
exit;
END`
find $VALUE -mtime +30 -type f -name "*" -exec rm -rf {} \;
~
配合crontab自动删除一个月前的trace文件,由于某些数据库可能会产生trace文件比较多如果没有及时去清理这些无效的trace文件,很容易导致空间暴涨,做一个job自动去删除,免去了DBA的烦恼。
Shell可以在DBA的运维过程中带来了很多的方便,目前正在学习shell,谨以此纪录并提高自己
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
set trace off
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询