listener.ora超过2G,提示TNS-12547

来源:互联网 发布:网络ra表示什么意思 编辑:程序博客网 时间:2024/05/16 23:44

登陆服务器,查看listener的状态。
[oracle@localhost ~]$ lsnrctl status
LSNRCTL for Linux: Version 9.2.0.7.0 - Production on 26-NOV-2006 06:58:25
Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
竟然报这样的错误,以前可是没有遇到过,本来以为手到擒来的事,看来是遇上点麻烦了。
开始以为是网片坏了,但是用这台机的网卡可以ping 通别的服务器,这就将网卡坏的可能性给排除了。
没办法了,baidu一下吧。简索Linux Error: 32: Broken pipe 找到原因,原来是listener.log超出2G了,以前只是听说过这个错误,没想到竟然被碰上了,晕。

[oracle@localhost log]$ pwd
/opt/oracle/product/network/log
[oracle@localhost log]$ du -sh *
4.0K    dbsnmp.nohup
4.0K    listenerdb.log
2.1G    listener.log
4.0K    sqlnet.log
4.0K    start.log
4.0K    status.log
4.0K    stop.log
0       z
[oracle@localhost log]$ mv listener.log listener.log.bak
[oracle@localhost log]$ cat /dev/null > listener.log
[oracle@localhost log]$ ls -l
total 2099228
-rw-r--r--  1 oracle oinstall        813 Mar  1  2006 dbsnmp.nohup
-rw-r--r--  1 oracle oinstall       1880 Sep 22 10:34 listenerdb.log
-rw-r--r--  1 oracle oinstall          0 Nov 26 07:09 listener.log
-rw-r--r--  1 oracle oinstall 2147483647 Nov 26 04:27 listener.log.bak
-rw-r--r--  1 oracle oinstall       3098 Nov 26 06:55 sqlnet.log
-rw-r--r--  1 oracle oinstall        484 Aug 20 10:29 start.log
-rw-r--r--  1 oracle oinstall        976 Mar  1  2006 status.log
-rw-r--r--  1 oracle oinstall       1927 Aug 20 10:29 stop.log
-rw-r--r--  1 oracle oinstall          0 Feb 18  2004 z
再次重起listener。

[oracle@localhost bin]$ ./lsnrctl stop

[oracle@localhost bin]$ ./lsnrctl start


客户端tnsping试一下:
[oracle@smsgw admin]$ tnsping $ORACLE_SID
TNS Ping Utility for Linux: Version 9.2.0.4.0 - Production on 26-NOV-2006 07:10:33
Copyright (c) 1997 Oracle Corporation.  All rights reserved.
Used parameter files:

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ****)(PORT = 1521))) (CONNECT_DATA = (SID = smsnew)))
OK (0 msec)
说明可以连接上。

至此,此问题解决。

可以采用两种方法解决超过2G的问题:

1、在listener.ora文件中加入logging_listener=off,即可关闭监听日志 ;


2、可以制定一个定时的Job去清理listener.log:
 
[oracle@localhost log]$ more ~/clear_listenerlog.sh
cd /data/oracle/product/9.2.0/network/log/
mv listener.log  listener`date +%F`.log.bak
[oracle@localhost log]$ ls -l ~/clear_listenerlog.sh
-rwxr-xr-x  1 oracle oinstall 88 Nov 27 15:07 /home/oracle/clear_listenerlog.sh
[oracle@localhost log]$ crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.8411 installed on Fri Mar  3 13:01:58 2006)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
#00 02 * * * sh /app/shell/oraclesh/logic_bak.sh

00 01 1 * * /home/oracle/clear_listenerlog.sh

原创粉丝点击