Oracle 监听器日志配置与管理

时间:2021-07-31 08:38:33
--========================
--
Oracle 监听器日志配置与管理
--========================

    Oracle 监听器是一个服务器端程序,用于监听所有来自客户端的请求,并为其提供数据库服务。因此对监听器的管理与维护相当重要。

本文主要描述对Oracle监听器日志文件的配置与管理。有关监听器的描述请参考

    配置 ORACLE 客户端连接到数据库

    配置非默认端口的动态服务注册   

一、监听器日志特性

1.  监听器日志是一个纯文本文件,通常位于$ORACLE_HOME/network/log目录下,与sqlnet.log日志文件处于同一路径           
2.  其缺省的文件名为listener.log。对于非缺省的监听器,则产生的日志文件通常为listenername.log                       
3.  该文件缺省由监听器自动创建,当日志文件丢失时或不存在时,会自动重新创建一个同名的文件,与alert_<SID>.log文件类似
4.  该文件的尺寸会不断自动增长,当尺寸过大时或不便于阅读时,考虑将其备份                                           
5.  Oracle监听器在运行时不允许对日志文件做删除,重命名操作                                                         
6.  可以设置日志状态为ON或OFF来实现启用或关闭日志    

二、设置日志文件目录及路径

       1.  设置日志文件目录的两种方法        

  1. lsnrctl SET LOG_DIRECTORY directory 
  2.          
  3. LSNRCTL> SET LOG_DIRECTORY /usr/oracle/admin/log 
       2.   设置日志文件的两种方法      
  1. lsnrctl SET LOG_FILE file_name 
  2.         
  3. LSNRCTL> SET LOG_FILE file_name 
       3.   设置日志的状态      
  1. lsnrctl SET LOG_STATUS {on | off
  2.  
  3. LSNRCTL> SET LOG_STATUS {on | off
       4.   演示设置
        a.   切换到日志目录查看日志文件          
  1. [oracle@test ~]$ cd $ORACLE_HOME/network/log     
  2. [oracle@test log]$ ls -hltr 
  3. total 348K 
  4. -rw-r--r--  1 oracle oinstall 305K Apr  6 05:30 listener.log 
  5. -rw-r--r--  1 oracle oinstall  26K Jun 27 01:52 listener_demo92.log 
       b.   查看当前监听器的状态          
  1. [oracle@test log]$ lsnrctl status listener_demo92 
  2.             
  3. LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 27-JUN-2011 01:54:31 
  4.             
  5. Copyright (c) 1991, 2006, Oracle Corporation.  All rights reserved. 
  6.             
  7. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521))) 
  8. STATUS of the LISTENER 
  9. ------------------------ 
  10. Alias                     listener_demo92 
  11. Version                   TNSLSNR for Linux: Version 9.2.0.8.0 - Production 
  12. Start Date                27-JUN-2011 01:52:18 
  13. Uptime                    0 days 0 hr. 2 min. 13 sec 
  14. Trace Level               off 
  15. Security                  ON 
  16. SNMP                      OFF 
  17. Listener Parameter File   /oracle/92/network/admin/listener.ora 
  18. Listener Log File         /oracle/92/network/log/listener_demo92.log 
  19. Listening Endpoints Summary... 
  20. (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=test)(PORT=1521))) 
  21. (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC))) 
  22. Services Summary... 
  23. Service "demo92" has 1 instance(s). 
  24.              Instance "demo92", status READY, has 1 handler(s) for this service... 
  25.            The command completed successfully         
  26.         

        c.   设置监听器目录及日志文件

  1. LSNRCTL> set current_listener listener_demo92                                   
  2. Current Listener is listener_demo92                                             
  3. LSNRCTL> set password                                                           
  4. Password:                                                                       
  5. The command completed successfully                                              
  6. LSNRCTL> set log_directory /home/oracle/log                                     
  7. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))      
  8. listener_demo92 parameter "log_directory" set to /home/oracle/log               
  9. The command completed successfully                                              
  10. LSNRCTL> set log_file listener_test.log                                         
  11. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))      
  12. listener_demo92 parameter "log_file" set to listener_test.log                   
  13. The command completed successfully                                              
  14. LSNRCTL> set log_status on                                                      
  15. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))      
  16. listener_demo92 parameter "log_status" set to ON                                
  17. The command completed successfully                                              
  18. LSNRCTL> save_config                                                            
  19. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test)(PORT=1521)))      
  20. Saved listener_demo92 configuration parameters.                                 
  21. Listener Parameter File   /oracle/92/network/admin/listener.ora                 
  22. Old Parameter File   /oracle/92/network/admin/listener.bak                      
  23. The command completed successfully                                              
  24. LSNRCTL> exit                                                                   
        d.   查看新路径下产生的日志文件 
  1. [oracle@test admin]$ cd /home/oracle/log                                                               
  2. [oracle@test log]$ ls -hltr                                                                            
  3. total 16K                                                                                              
  4. -rw-r--r--  1 oracle oinstall  41 Jun 27 02:11 listener_demo92.log  -->设置目录之后生成的              
  5. -rw-r--r--  1 oracle oinstall 113 Jun 27 02:12 listener_test.log    -->设置日志文件名之后的新日志文件  
  6.                                                                                                        
  7. [oracle@test log]$ ls -hltr    -->隔段时间查看,原来的日志文件不再增长,使用设定的日志文件名记录日志   
  8. total 16K                                                                                              
  9. -rw-r--r--  1 oracle oinstall   41 Jun 27 02:11 listener_demo92.log                                    
  10. -rw-r--r--  1 oracle oinstall 1.3K Jun 27 02:17 listener_test.log                                      
        e.   查看listener.ora配置文件的变化
  1. [oracle@test admin]$ more listener.ora              
  2. #----ADDED BY TNSLSNR 27-JUN-2011 02:12:37---       
  3. LOG_DIRECTORY_listener_demo92 = /home/oracle/log    
  4. LOG_FILE_listener_demo92 = listener_test.log        
  5. LOGGING_listener_demo92 = ON                        
  6. #--------------------------------------------       

三、日志文件的备份与重命名

    通常情况下,需要停止监听器来对日志文件进行备份,下面使用不停止监听的情况下对日志文件重命名以实现备份
        1. Windows平台的处理           
  1. C:\>cd \oracle\ora92\network\log     -->切换到监听器日志文件所在目录                                          
  2. C:\oracle\ora92\network\log> lsnrctl set log_status off -->暂停或脱机记录日志文件                             
  3. C:\oracle\ora92\network\log> rename listener.log listener.old -->重命名日志文件,一般加上日期                 
  4. C:\oracle\ora92\network\log> lsnrctl set log_status on -->联机监听器日志文件,会自动重新创建一个新的日志文件  
        2. Unix/Linux平台的处理          
  1. $ lsnrctl set log_status off                                                                              
  2. $ mv listener.log listener.old -->另一种方法,cp listener.log /log/bak/. 然后 cp /dev/null >listener.log  
  3. $ lsnrctl set log_status on                                                                                   
        3. 演示Linux平台下重命名日志文件                           
  1. [oracle@test ~]$ cd /home/oracle/log                                                     
  2. [oracle@test log]$ lsnrctl set log_status off  -->如果存在密码,应使用LSNRCTL界面来完成  
  3.                                                                                          
  4. LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 27-JUN-2011 02:41:09                
  5.                                                                                          
  6. Copyright (c) 1991, 2006, Oracle Corporation.  All rights reserved.                      
  7.                                                                                          
  8. Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))                                        
  9. LISTENER parameter "log_status" set to OFF                                               
  10. The command completed successfully                                                       
  11. [oracle@test log]$ mv listener_test.log listener_test.old                                
  12. [oracle@test log]$ lsnrctl set log_status on                                             
  13.                                                                                          
  14. LSNRCTL for Linux: Version 9.2.0.8.0 - Production on 27-JUN-2011 02:41:31                
  15.                                                                                          
  16. Copyright (c) 1991, 2006, Oracle Corporation.  All rights reserved.                      
  17.                                                                                          
  18. Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))                                        
  19. LISTENER parameter "log_status" set to ON                                                
  20. The command completed successfully