在oracle中,如果不對監聽日志文件進行截斷(定期清理),那么監聽日志文件會變得越來越大,由於一些老舊的OS不支持2GB以上的文件,故當listener.log文件超過2GB時,會出現無法處理新的連接,新的操作系統雖然不會出現這個問題,但我們依然需要對其進行定期清理。
查看listener.log日志文件的位置,在RAC數據庫中,其位置為:
unixdev$[/grid/app/diag/tnslsnr/unixdev/listener/trace]ls listener.log
確定日志文件的大小
unixdev$[/grid/app/diag/tnslsnr/unixdev/listener/trace]du -ks listener.log 722795 listener.log
同時,通過上面的命令,我們還可以查看其他文件的大小:
unixdev$[/grid/app/diag/tnslsnr/unixdev/listener]du -ks * 1273999 alert 0 cdump 0 incident 0 incpkg 1 lck 257 metadata 0 metadata_dgif 0 metadata_pv 0 stage 0 sweep 722795 trace
如果覺得listener.log文件較大,我們可以將其清空,主要步驟為:
step1:停止監聽服務進程(tnslsnr)記錄日志,Oracle 11gR2監聽日志存放在grid用戶下
su - grid $lsnrctl set log_status off;
step2:拷貝listener.log文件
$p listener.log data_listener.log
step3:查看該副本內容是否正常
$more date_listener.log
step4:如果副本沒問題,則開始清空listener.log
$echo ‘ ’ > listener.log
step5:查看日志是否被清空
$pwd ../listener/trace $du -ks *
step6:開啟監聽服務進程(tnslsnr)日志
$lsnrctl set log_status on;
step7:查看監聽日志是否正常運行,如果不斷更新,說明沒問題(假如沒人連接數據庫,我們是看不到變化的,此時我們可以使用sqlplus連接數據庫,看listener.log是否會更新
tail -f listener.log