解決Windows上alert日誌和listener日誌不能超過4GB的問題

舊夢依稀發表於2014-05-22

前幾天又遇到Windows上面listener日誌和alert日誌達到4G,導致資料庫當機的問題,所以自己捉摸了一個自動清理的指令碼。

@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是一個讓日誌檔案自動按週期歸檔的工具,以避免日誌檔案過大。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28998293/viewspace-1167667/,如需轉載,請註明出處,否則將追究法律責任。

相關文章