方法一:不需要停掉监听
# ls -l
total 3744573
-rw-r--r--   1 oracle   dba      123287468 Apr 26 16:37 listener.log
-rw-r--r--   1 oracle   dba        6463 Apr 23 09:02 sqlnet.log
# echo '' >listener.log
# ls -l
total 96
-rw-r--r--   1 oracle   dba            1 Apr 26 16:37 listener.log
-rw-r--r--   1 oracle   dba        6463 Apr 23 09:02 sqlnet.log
# ls -l
total 96
-rw-r--r--   1 oracle   dba          725 Apr 26 16:38 listener.log
-rw-r--r--   1 oracle   dba        6463 Apr 23 09:02 sqlnet.log
#


方法二:需要停掉监听,再重启
lsnrctl stop; 
rm listener.log 再touch listener.log; 
lsnrctl start




详细步骤:
1.rm -rf listener.log->ls->lsnrctl
2.lsnrctl>set log_status off --关闭写日志的功能
  lsnrctl>save_config
  lsnrctl>set log_status on  --打开监听写日志的功能
  lsnrctl>save_config


监听日志太大,正确的删除步骤
1.查看日志大小 du -a (或du -h )
2.关闭监听日志 set log_status off
3.把日志改名   mv listener.log listener.log_bak
4.启动监听日志 set log_status on (检查是否自动生成listener.log)


重新定位一个日志文件,解决监听器日志问题
两个比较有用的命令:
lsnrctl>set current_listener <listner name>
lsnrctl>set log_file <sid name>.log
以下是解决步骤:
1.$lsnrctl
2.lsnrctl>set current_listner LISTNER1
3.lsnrctl>set log_file

4.lsnrctl>status

5.lsnrctl>save_config


附加:在windows下清空oracle的listener.log
1.在dos下切换到log的目录下
  如:D:\oracle\product\10.2.0\db_1\NETWORK\log>copy /y sqlnet.log listener.log(将sqlnet.log覆盖到listener.log里面)

Logo

更多推荐