同事在使用脚本启动数据库时,发现监听器无法正常启动。通过lsnrctl start命令很容易复现了这个问题。
问题复现
点击(此处)折叠或打开
- [oracle@localhost ~]$ lsnrctl start
- LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 06-AUG-2014 19:40:52
- Copyright (c) 1991, 2009, Oracle. All rights reserved.
- Starting /opt/oracle/11g/bin/tnslsnr: please wait...
- TNSLSNR for Linux: Version 11.2.0.1.0 - Production
- System parameter file is /opt/oracle/11g/network/admin/listener.ora
- Log messages written to /opt/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
- Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
- TNS-12555: TNS:permission denied
- TNS-12560: TNS:protocol adapter error
- TNS-00525: Insufficient privilege for operation
- Linux Error: 1: Operation not permitted
- Listener failed to start. See the error message(s) above...
解决方案
查看.oracle文件
点击(此处)折叠或打开
- [root@localhost ~]# ls -lrtd /var/tmp/.oracle
- drwxrwxrwt. 2 root root 4096 8\u6708 5 21:48 /var/tmp/.oracle
- [root@localhost ~]# ls -lrtd /tmp/.oracle
- drwxrwxrwt. 2 root root 4096 8\u6708 5 20:33 /tmp/.oracle
发现权限虽然是777,但是用户组和所有者不对,应该把用户组和所有者改为改成oracle:dba
修改.oracle文件权限
点击(此处)折叠或打开
- [root@localhost ~]# chown -R oracle:dba /var/tmp/.oracle
- [root@localhost ~]# chown -R oracle:dba /tmp/.oracle
- [root@localhost ~]# ls -lrtd /tmp/.oracle
- drwxrwxrwt. 2 oracle dba 4096 8\u6708 5 20:33 /tmp/.oracle
- [root@localhost ~]# ls -lrtd /var/tmp/.oracle
- drwxrwxrwt. 2 oracle dba 4096 8\u6708 5 21:48 /var/tmp/.oracle
再次启动监听,成功!
~~~~~~~ the end~~~~~~~~~
hoegh
2017.09.13
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30162081/viewspace-2144924/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30162081/viewspace-2144924/