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