1. 程式人生 > >Oracle日誌檔案達到4G

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