监听日志清理
lsnrctl set log_status off
rename listener.log listener.old
lsnrcl set log_status on
1.offline listener清理
这种方式主要是在停掉了监听或者直接停掉了业务数据库后,对listener.log进程mv或者backup的操作后新建listener.log,
或者就是以清理文件内容的方式进行清理。
2.online listener清理
这种清理可以理解为在不影响业务的情况下清理log,这个以oracle角度来区分,
区别在于是否禁止listener进程持续写日志上,关闭listener写日志命令如下:
LSNRCTL> set current_listener
LSNRCTL> set log_status off
--之后备分listener.log,清除log后恢复listener进程的日志记录。
LSNRCTL> set log_status on
那么这里在清除log的系统命令上有多种,这里介绍下linux下的3种以及windows上的1种
linux/unix平台:
cat /dev/null 要清空的文件
例:
cat /dev/null listener.log
echo "" 要清空的文件
例:
echo "" listener.log
cp /dev/null 要清空的文件
例:
cp /dev/null listener.log
以上三种清理都支持在线直接清理日志,可以不禁止listener进程持续写日志的情况下直接执行,
只是在考虑点上在前面所说的是否禁止listener进程持续写日志。我日常使用方法一的方式,
从系统效率上cp /dev/null的方式会优于其他2种。
Windows平台:
方法一:
@echo.> 要清空的文件
例:
@echo.> listener.log
方法二:
rename file方式清理
操作步骤:
提前备份listener.log加时间方便区分
LSNRCTL> set log_status off
cp /dev/null listener.log
LSNRCTL> set log_status on
lsnrctl reload
sqlplus "sys/oracle@db01 as sysdba"
也可以用脚本来实现:
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"
最后修改时间:2022-08-23 22:08:56
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




