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

登陸服務器,查看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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章