昨晚群里一个兄弟问他们一体机环境,监听日志文件没有写到XML文件,并且listener.log中也没有写日志文件。
监听状态如下:
部分敏感信息已经被替换 [grid@www.htz.pw ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.3.0 – Production on 03-SEP-2014 02:13:18
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER))) STATUS of the LISTENER ———————— Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.3.0 – Production Start Date 18-JUL-2014 01:11:23 Uptime 47 days 1 hr. 1 min. 54 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/grid/network/admin/listener.ora Listener Log File /u01/app/grid/network/log/listener.log |
这里可以看到监听日志位置到$ORACLE_HOME/network/log位置,而非adr目录,并且listener.log修改时候是在6月份。
1,11G监听文件位置
11G环境中,监听文件默认存放在adr目录中,并且存放2份,一份xml格式,一份文本格式,如下:
xml位置 [oracle@www.htz.pw sql]$lsnrctl status|grep "Log File" Listener Log File /oracle/app/oracle/diag/tnslsnr/orcl9i/listener/alert/log.xml 文件格式位置 [oracle@www.htz.pw sql]$ls -l $ORACLE_BASE/diag/tnslsnr/`hostname`/listener/trace/listener.log -rw-r—– 1 oracle oinstall 1973762 Sep 3 06:22 /oracle/app/oracle/diag/tnslsnr/orcl9i/listener/trace/listener.log |
1.1 禁用监听日志的adr功能
[oracle@www.htz.pw sql]$ps -ef|grep lsn oracle 5165 7845 0 06:18 ? 00:00:00 /oracle/app/oracle/product/11.2.0/db_1123/bin/tnslsnr LISTENER -inherit oracle 5166 7845 0 06:18 ? 00:00:00 /oracle/app/oracle/product/11.2.0/db_1123/bin/tnslsnr LISTENER -inherit oracle 6400 32690 0 06:27 pts/1 00:00:00 grep lsn oracle 7844 1 0 03:00 ? 00:00:00 /oracle/app/oracle/product/11.2.0/db_1123/bin/tnslsnr LISTENER -inherit oracle 7845 7844 0 03:00 ? 00:00:00 /oracle/app/oracle/product/11.2.0/db_1123/bin/tnslsnr LISTENER -inherit [oracle@www.htz.pw sql]$echo "DIAG_ADR_ENABLED_LISTENER=off">>$ORACLE_HOME/network/admin/listener.ora [oracle@www.htz.pw sql]$tail -f !$ tail -f $ORACLE_HOME/network/admin/listener.ora (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = orcl9i)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
ADR_BASE_LISTENER = /oracle/app/oracle
DIAG_ADR_ENABLED_LISTENER=off |
再次加载监听
[oracle@www.htz.pw sql]$lsnrctl reload
LSNRCTL for Linux: Version 11.2.0.3.0 – Production on 03-SEP-2014 06:29:54
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=orcl9i)(PORT=1521))) The command completed successfully [oracle@www.htz.pw sql]$lsnrctl status|grep "Log File" Listener Log File /oracle/app/oracle/product/11.2.0/db_1123/network/log/listener.log |
看到监听日志文件路径已经回到10G的默认的方式,存放$ORACLE_HOME/network/admin/log下面
1.2 修改监听日志文件名与路径
有时由于空间原因,需要修改监听日志文件名与路径的位置,下面将日志文件路径名修改到/tmp,文件名修改为www.htz.pw,文件名自动增加.log结尾
增加参数到listener.ora中 [oracle@www.htz.pw sql]$echo "LOG_DIRECTORY_LISTENER=/tmp">>$ORACLE_HOME/network/admin/listener.ora [oracle@www.htz.pw sql]$echo "LOG_FILE_LISTENER=www.htz.pw">>$ORACLE_HOME/network/admin/listener.ora [oracle@www.htz.pw sql]$cat !$ cat $ORACLE_HOME/network/admin/listener.ora # listener.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/db_1123/network/admin/listener.ora # Generated by Oracle configuration tools.
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = orcl9i)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
ADR_BASE_LISTENER = /oracle/app/oracle
DIAG_ADR_ENABLED_LISTENER=off LOG_DIRECTORY_LISTENER=/tmp LOG_FILE_LISTENER=www.htz.pw 重新加载监听 [oracle@www.htz.pw sql]$lsnrctl reload
LSNRCTL for Linux: Version 11.2.0.3.0 – Production on 03-SEP-2014 06:33:42
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=orcl9i)(PORT=1521))) The command completed successfully 查看监听的状态 [oracle@www.htz.pw sql]$lsnrctl status
LSNRCTL for Linux: Version 11.2.0.3.0 – Production on 03-SEP-2014 06:33:50
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=orcl9i)(PORT=1521))) STATUS of the LISTENER ———————— Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.3.0 – Production Start Date 03-SEP-2014 03:00:20 Uptime 0 days 3 hr. 33 min. 29 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /oracle/app/oracle/product/11.2.0/db_1123/network/admin/listener.ora Listener Log File /tmp/www.htz.pw.log Listening Endpoints Summary… (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orcl9i)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Services Summary… Service "orcl1123" has 1 instance(s). Instance "orcl1123", status READY, has 1 handler(s) for this service… Service "orcl1123XDB" has 1 instance(s). Instance "orcl1123", status READY, has 1 handler(s) for this service… The command completed successfully 这里看到监听文件名与路径都已经修改了 |
2 监听日志文件中无新日志生成
通过监听登陆数据库,都会向监听日志文件写日志,并且使用动态监听,pmon进程会将动态注册的信息写到监听日志文件中去。常常遇到监听日志文件中无新内容,一般情况下是:
1,日志文件达到4G,部分OS达到4G后,不会向监听日志文件写新的内容。
2,无新连接,可以通过lsnrctl service来查看
在这位兄弟的情况就是日志达到4G的大小
[grid@www.htz.pw ~]$ ls -l /u01/app/grid/network/log/listener.log -rw-r—– 1 grid oinstall 4294967366 Aug 6 16:37 /u01/app/grid/network/log/listener.log |
3 清理日志文件
[oracle@www.htz.pw tmp]$lsnrctl
LSNRCTL for Linux: Version 11.2.0.3.0 – Production on 03-SEP-2014 06:54:47
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> set current_listener listener Current Listener is listener LSNRCTL> set log_status off Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=orcl9i)(PORT=1521))) listener parameter "log_status" set to OFF The command completed successfully [oracle@www.htz.pw tmp]$> www.htz.pw.log LSNRCTL> set log_status on Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=orcl9i)(PORT=1521))) listener parameter "log_status" set to ON The command completed successfully |
测试结束
11G关于监听文件位置与监听文件大小限制:等您坐沙发呢!