Oracle日志文件达到4G

解决方案一:停止监听器

1)LSNRCTL进入交互模式   cmd 输入 LSNRCTL
2)执行set current_listener LISTENER
3)set log_status off
4)stop 停止监听器
5)手工删除ADR指定的监听日志路径下的listener.log文件
6)start重启监听器
7)status查看状态


解决方案二:脚本定时清除log文件


@echo off
rem FileSize以KB为单位指定当日志文件达到多大时进行截断,默认是2GB
rem FileBakName指定备份的日志文件名,不能使用全路径!
rem FileBak备份日志的文件名,需指定全路径!
rem FileName需要截断的日志文件,需指定全路径!

set /a FileSize=2*1024*1024
set FileBakName="alter.log.bak"
set FileBak="D:\工作文档\temp\alter.log.bak"
set FileName="D:\工作文档\temp\alter.log"
if exist %FileName% (
for %%i in (%FileName%) do (
  set /a CurrentSize=%%~zi/1024
  if %CurrentSize% gtr %FileSize% (
    if exist %FileBak% (
      del %FileBak%
    )
    ren %FileName% %FileBakName%
  )
)
)

很原始,只能监控一个日志文件,而且要手动设置几个参数,最后加入到计划任务里面就行了。
这个问题如果是在Linux下可以用logrotate工具解决,logrotate是一个让日志文件自动按周期归档的工具,以避免日志文件过大。


Windows下可以使用下面的命令来控制
cd E:\app\Administrator\diag\tnslsnr\NDEAM003\listener\trace


lsnrctl set log_status off
rename listener.log listener20170109.old
lsnrctl set log_status on

猜你喜欢

转载自vondon.iteye.com/blog/2351390