首页 > 代码库 > /var/tmp/.oracle 和 oracle listener (监听)的一点理解
/var/tmp/.oracle 和 oracle listener (监听)的一点理解
关于 /var/tmp/.oracle 的作用测试
~---查看 /var/tmp 的权限[root@lixora var]# ll
total 164
。。。
drwxrwxrwt 3 root root 4096 Oct 31 13:16 tmp
[root@lixora .oracle]# ll
total 0
srwxrwxrwx 1 oracle10g oinstall 0 Oct 31 14:11 s#12569.1
srwxrwxrwx 1 oracle10g oinstall 0 Oct 31 14:11 s#12569.2
srwxrwxrwx 1 oracle10g oinstall 0 Oct 31 14:11 sEXTPROC0
-----修改/var/tmp 的权限
[root@lixora var]# chmod 444 tmp
[root@lixora var]# ll
。。。
dr--r--r-- 3 root root 4096 Oct 31 13:16 tmp
。。。
-----尝试启动监听
[oracle10g@lixora ~]$ lsnrctl start
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 31-OCT-2014 14:13:31
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Starting /u02/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /u02/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /u02/app/oracle/product/10.2.0/db_1/network/log/listener.log
Error listening on: (ADDRESS=(PROTOCOL=ipc)(PARTIAL=yes)(QUEUESIZE=1))
No longer listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lixora)(PORT=1521)))
TNS-12557: TNS:protocol adapter not loadable
TNS-12560: TNS:protocol adapter error
TNS-00527: Protocol Adapter not loadable
Listener failed to start. See the error message(s) above...
----再次修改 /var/tmp 的权限
[root@lixora var]# chmod 777 tmp
[root@lixora var]# ll
。。。
drwxrwxrwx 3 root root 4096 Oct 31 13:16 tmp
。。。
再次去启动监听,可以正常启动
关于错误
ORA-12557: | TNS:protocol adapter not loadable |
Cause: | On some platforms (such as OS/2) protocol adapters are loaded at run-time. If the shared library (or DLL) for the protocol adapter is missing or one of its supporting libraries is missing then this error is returned. |
Action: | For further details, turn on tracing and reexecute the operation. The trace file will include the name of the shared library (or DLL) that could not be loaded. |
1. Make sure the %ORACLE_HOME%/bin directory is in your PATH.
2. Make sure the protocol is typed/specified correctly in your tnsnames.ora file or whatever source you‘re using to resolve servicenames.
3. TCP is the default protocol and is installed by default. Ifyou‘re using something different (like SPX) make sure you installed the protocol adapter.
4. Make sure TOAD is using the correct oracle home if you have multiple homes installed
貌似也没有涉及到相关的错误描述啊!但是到底 /var/tmp/.oracle 下的文件是啥呢? 根据文件的描述:
[root@lixora .oracle]# ll
total 0
srwxrwxrwx 1 oracle10g oinstall 0 Oct 31 14:08 s#12538.1
srwxrwxrwx 1 oracle10g oinstall 0 Oct 31 14:08 s#12538.2
srwxrwxrwx 1 oracle10g oinstall 0 Oct 31 14:08 sEXTPROC0
[root@lixora .oracle]# ps -ef|grep 12538
54322 12538 1 0 14:08 ? 00:00:00 /u02/app/oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER -inherit
这些文件均是 socket 文件, 且s#12368.1 中的12568 为进程号,经查证是 监听的进程号
那么这些scoket 是用来干嘛的呢?
ODM find:
The hidden directory ‘/var/tmp/.oracle‘ (or /tmp/.oracle on some platforms) or its content was removed while instances & the CRS stack were up and running. Typically this directory contains a number of "special" socket files that areused by local clients to connect via the IPC protocol (sqlnet) to various Oracle processes including the TNS listener, the CSS, CRS & EVM daemons or even database or ASM instances. These files are created when the "listening" process starts.
就是说:这些socket 文被用作 本地客户端使用进程间通信协议(ipc)和不同的oracle的进程通信,而这些进程包括:tns 监听,css ,crs,evm 守护进程;甚至数据库和asm 实例。这些socket 由‘主动监听’的进程创建。在这里oracle tns listener 创建这些socket 文件主要使用用作pmon 和 tnslsnr 通信从报错信息里就可以看出问题:
Error listening on: (ADDRESS=(PROTOCOL=ipc)(PARTIAL=yes)(QUEUESIZE=1))
不知道以上分析是否确切,不当之处请拍砖:-)
/var/tmp/.oracle 和 oracle listener (监听)的一点理解