Oracle 监听无法启动 TNS-12540: TNS:internal limit restrictionexceeded Linux Error: 28: No space left 处理方法

时间:2021-02-21 16:47:48

 

       朋友的一个库,因为机房空调故常,温度过高导致服务器重启,之后监听就无法启动。

 

LSNRCTL> status                                                                 

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.50.2)(PORT=1521)

))                                                                              TNS-12541: TNS:nolistener                                                     

TNS-12560: TNS:protocol adapter error                                         

TNS-00511: No listener                                                       

Linux Error: 111: Connection refused                                        

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))              

TNS-12541: TNS:no listener                                                     

TNS-12560: TNS:protocol adapter error                                          

TNS-00511: No listener                                                       

Linux Error: 111: Connection refused

 LSNRCTL> start                                                                  

Starting /u2/oracle/9i/bin/tnslsnr: pleasewait...                             

TNSLSNR for Linux: Version 9.2.0.4.0 -Production                              

System parameter file is/u2/oracle/9i/network/admin/listener.ora              

Log messages written to/u2/oracle/9i/network/log/listener.log                 

Listening on:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.50.2)(PORT=1521)))                                                                              

Error listening on:(ADDRESS=(PROTOCOL=ipc)(PARTIAL=yes)(QUEUESIZE=1))         

No longer listening on:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.50.2)(

PORT=1521)))                                                                    

TNS-12540: TNS:internal limit restrictionexceeded                             

TNS-12560: TNS:protocol adapter error                                         

TNS-00510: Internal limit restriction exceeded                               

Linux Error: 28: No space left ondevice 

朋友做了一个strace:

strace -f -o /tmp/trace.log lsnrctl start

 

关于strace 命令说明,参考blog:

       Linux strace 命令 说明

       http://blog.csdn.net/tianlesoftware/article/details/6287405

 

 

产生的log 也是与空间有关:

22153open("/usr/lib/libnsl.so.1", O_RDONLY) = -1 ENOENT (No such file ordirectory)

22153open("/usr/local/lib/libnsl.so.1", O_RDONLY) = -1 ENOENT (No suchfile or directory)

22153 open("/usr/lib/libc.so.6",O_RDONLY) = -1 ENOENT (No such file or directory)

22153open("/u2/oracle/9i/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No suchfile or directory)

22153 open("/lib/tls/libc.so.6",O_RDONLY) = 3

 

       朋友看了磁盘空间,说没有问题。 所以,我开始怀疑是参数的设置出了问题,但是仅是服务器的重启,之前参数并没有问题。

      

google 到一个类似的案例:

       http://www.dbasupport.com/forums/archive/index.php/t-49057.html

 

这个案例说是/var 目录满了,删除这个目录里的部分文件后,在启动就ok了。

 

       /var: 某些大文件的溢出区,比方说各种服务的日志文件

 

更多内容参考:

Linux 各文件夹的作用

http://www.cndba.cn/dave/article/665

 

       朋友最后确认了一下,也是这个/var 满了导致的。 /var/spool/clientmqueue 下有很多小文件,删除之后就ok了。

 

       这个问题本身的解决方法并不深奥,但作为一个知识点,可以注意一下,有时系统的故障也可能导致DB的问题。  在思考问题的时候,可以把思维扩展广一点。

 

 

 

 

 

 

-------------------------------------------------------------------------------------------------------

QQ:492913789

Email:ahdba@qq.com

Blog: http://www.cndba.cn/dave


DBA1 群:62697716(满);   DBA2 群:62697977(满)  DBA3 群:62697850(满)  

DBA 超级群:63306533(满);  DBA4 群: 83829929  DBA5群: 142216823   

DBA6 群:158654907  聊天 群:40132017   聊天2群:69087192

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请