如何在线操作监听日志listener.log

时间:2021-03-09 08:17:38

转自itpub http://blog.itpub.net/30162081/viewspace-1784677/


    Oracle监听器日志文件(通常叫做listener.log)是一个纯文本文件,它的大小是一直不断增长的,在一个生产Oracle服务器上,DBA会每日查看该文件,如检查监听器是否有异常停止,是否有恶意攻击连接等。

    然而,当这个文件特别大的时候,打开和浏览文件内容时可能比较慢(有时候根本打不开)。 这时可能会想到将当前的日志文件备份一下,然后重新创建一个新的日志文件,但Oracle的监听器在运行时是不允许对其日志文件做删除、重命名操作。
    我以前的习惯做法是首先通过lsntctl stop停止监听器;
重命名后,再启动监听器,启动时会自动创建一个新的监听器日志文件,这样虽然不会影响已有连接,但是会造成客户端无法建立新的的连接。下面分享一种方法在不停止监听器的情况下,重命名监听器日志文件。

操作环境
    我在Oracle 10g+Windows Server 2008 Standard R2进行操作。

点击(此处)折叠或打开

  1. SQL>
  2. SQL> select * from v$version;

  3. BANNER
  4. ----------------------------------------------------------------

  5. Oracle Database 10g Enterprise Edition Release 10.2.0.4.- 64bi
  6. PL/SQL Release 10.2.0.4.- Production
  7. CORE 10.2.0.4.0 Production
  8. TNS for 64-bit Windows: Version 10.2.0.4.- Production
  9. NLSRTL Version 10.2.0.4.- Production


  10. SQL>

1.设置log_status为off
    在cmd命令窗口下执行lsnrctl set log_status off命令,设置log_status为off。顾名思义,此时数据库不再记录监听日志。

点击(此处)折叠或打开

  1. C:\Users\Administrator>
  2. C:\Users\Administrator>lsnrctl set log_status off
  3. LSNRCTL for 64-bit Windows: Version 10.2.0.4.0 - Production on 27-8月 -2015 15:21:30
  4. Copyright (c) 1991, 2007, Oracle. All rights reserved.
  5. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hoeghserver)(PORT=1521)))
  6. LISTENER 参数 "log_status" 设为 OFF
  7. 命令执行成功
  8. C:\Users\Administrator>
 


2.操作监听日志文件listener.log
    现在,就可以在$ORACLE_HOME/network/admin/log目录下直接操作监听日志文件listener.log。
    通常有以下两种操作:
    重命名——备份监听日志文件,用于故障分析等;
    删除——删除监听日志文件,节省存储空间;

   


3.设置log_status为on
    在cmd命令口下行lsnrctl set log_status on命令,设置log_status为on。这样,就重新打开了监听日志功能。
    同
时,在$ORACLE_HOME/network/admin/log目录下重新生成一个全新的监听日志文件listener.log。

点击(此处)折叠或打开

  1. C:\Users\Administrator>lsnrctl set log_status on
  2. LSNRCTL for 64-bit Windows: Version 10.2.0.4.0 - Production on 27-8月 -2015 15:22:02
  3. Copyright (c) 1991, 2007, Oracle. All rights reserved.
  4. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hoeghserver)(PORT=1521)))
  5. LISTENER 参数 "log_status" 设为 ON
  6. 命令执行成功
  7. C:\Users\Administrator>
hoegh 15.8.28 -- The End --