清理监听日志处理的方法
1:首先停止监听服务进程(tnslsnr)记录日志。
lsnrctl ?set log_status off;?
2:将监听日志文件(listener.log)复制一份,以listener.log.yyyymmdd格式命名
cp listener.log listener.log.20150622
3、将监听日志文件(listener.log)清空。清空文件的方法有很多
cat /dev/null > listener.log
4:开启监听服务进程(tnslsnr)记录日志
lsnrctl set log_status on;
对于这种listener.log增长非常迅速的系统,可以关闭监听日志lsnrctl ?set log_status off,不让监听写日志到文件。也可以写个job定期清理。
rq=` date +"%d" `
cp $ORACLE_HOME/network/log/listener.log $ORACLE_BACKUP/network/log/listener_$rq.log
su - oracle -c "lsnrctl set log_status off"
cp /dev/null $ORACLE_HOME/network/log/listener.log
su - oracle -c "lsnrctl set log_status on"
监听日志文件改变:
11g开始引入ADR,监听日志就从原来的$ORACLE_HOME/network/log/listener.log变为了$ORACLE_BASE/diag/tnslsnr/hostname/listener/alert/log.xml
$ORACLE_BASE/diag/tnslsnr/hostname/listener/alert 目录下的xml文件以每个10m的方式在不停增多,之前简单的只定期清理
$ORACLE_HOME/network/log/listenr.log变为还需多清理alert目录下的
C:\Documents and Settings\Administrator>lsnrctl status
若要变回老的方式,需在 listener.ora文件添加如下行DIAG_ADR_ENABLED_listener = OFF ?注意,红色部分是监听名,需替换实际的监听名字。
C:\Documents and Settings\Administrator>lsnrctl reload
DIAG_ADR_ENABLED_LISTENER=OFF
DIAG_ADR_ENABLED_LISTENER_SCAN1=OFF
INBOUND_CONNECT_TIMEOUT_LISTENER = 110
INBOUND_CONNECT_TIMEOUT_LISTENER_SCAN1 = 110
转摘自 https://blog.csdn.net/wll_1017/article/details/46637057