现象:
使用sqlplus 登录oracle时出现如下报错:
ERROR: ORA-12537:TNS:connection closed
查看监听日志: log.xml
TNS-12547: TNS:lost contact TNS-12560: TNS:protocol adapter error TNS-00517: Lost contact TNS-12518: TNS:listener could not hand off client connection Linux Error: 32: Broken pipe
解决:
$ORACLE_HOME/bin/oracle文件的权限问题已经属主,属组问题导致的。
故障总结:
如果可执行文件$ORACLE_HOME/bin/oracle的属主或权限设定出了问题,那么可能会造成很多问题。例如:无法登陆到数据库、ora-600错误、“TNS-12518: TNS:listener could not hand off client connection”、“Linux Error: 32: Broken pipe”、“ORA-12537: TNS:connection closed”、访问ASM磁盘出错等。解决办法很简单,可以在grid用户下运行setasmgidwrap命令重新配置$ORACLE_HOME/bin/oracle可执行文件的权限和属主或者直接将oracle文件的权限修改为6751。$ORACLE_HOME/bin/oracle可执行文件正确属主应该是oracle:asmadmin,并且权限必须有s共享才可以
问:在UNIX/LINUX环境中,oracle数据库启动后存在许多后台进程和前台进程,虽然相关进程产生一些trace文件也是常有的事情,但是真正是什么决定了oracle相关进程的属性呢?
答:通常来说,oracle的后台进程的调用是依赖于$ORACLE_HOME/bin/oracle这个二进制文件,但它从远端连入而分配的服务器进程(server process)相关属主的属性则是继承自listener进程,而listener进程的属主属性同样是进程自其启动的用户(分oracle用户和grid用户)$ORACLE_HOME/bin/oracle的属主属性。
其他原因:
启动ORACLE监听的时候 报错 Linux Error: 32: Broken pipe
原因:原来/home/oracle/product/9.2.0.1.0/network/log/listener.log 文件超过2G,监听就会断掉。
解决办法:清空日志文件
[oracle@localhost oracle]$ cd $ORACLE_HOME/network/log
[oracle@chicago log]$ cat listener.log
有个命令可以对这个写日志进行关闭
LSNRCTL> set log_status off
要继续写日志,只需要
LSNRCTL> set log_status on
也可以在 listener.ora 文件里面添加一项
LOGGING_LISTENER = OFF
添加了这个之后无论你怎么重启监听,都不会写日志了
标签:12518,TNS,48,listener,ORACLE,oracle,HOME,log From: https://www.cnblogs.com/zmc60/p/17010484.html