在测试设备上,原先错误操作,对/var/tmp/目录的权限做过修改,今天在这个测试设备上恢复启动一个oracle数据库,启动监听时报错:
[oracle@localhost admin]$ lsnrctl start
LSNRCTLfor Linux: Version 10.2.0.2.0 - Production on 04-JAN-201210:10:11
Copyright(c) 1991, 2005, Oracle. All rights reserved.
Starting/oracle/product/10.2.0/Db_1/bin/tnslsnr: please wait...
TNSLSNRfor Linux: Version 10.2.0.2.0 - Production
Systemparameter file is/oracle/product/10.2.0/Db_1/network/admin/listener.ora
Log messageswritten to/oracle/product/10.2.0/Db_1/network/log/listener.log
Errorlistening on:(ADDRESS=(PROTOCOL=ipc)(PARTIAL=yes)(QUEUESIZE=1))
No longerlistening on:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
TNS-12557:TNS:protocol adapter not loadable
TNS-12560: TNS:protocol adaptererror
TNS-00527: Protocol Adapternot loadable
网上查了一下,与/var/tmp/下的隐藏目录.oracle权限有关
[oracle@localhost log]$ cd /var/tmp/
[oracle@localhost tmp]$ ls -lhra
发现无.oracle目录
[oracle@localhost tmp]# mkdir .oracle
将其属主改为oracle:dba
[oracle@localhosttmp]# chown -R oracle:dba .oracle
[oracle@localhosttmp]$ ls -lhra
total20K
drwxrwxrwt 2 oracle dba 4.0KJan 4 11:03 .oracle
drwxr-xr-x19 root root 4.0K Aug 11 18:16..
drwxr-xr-x 3root root 4.0KJan 4 11:02 .
再启动监听,OK