案例:11G关于监听文件位置与监听文件大小限制
深夜,一个兄弟问他们一体机环境,监听日志文件没有写到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.log1.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进程会将动态注册的信息写到监听日志文件中去。常常遇到监听日志文件中无新内容,一般情况下是:
2.1),日志文件达到4G,部分OS达到4G后,不会向监听日志文件写新的内容。
2.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.log3,清理日志文件
[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------------------作者介绍-----------------------
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
















