Oracle监听器起不来,于是用LSNRCTL启动监听程序,出现问题:
先是用root用户启动,出现如下问题:
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error
TNS-00516: Permission denied
Error: 13: Permission denied
按照网上的解决办法:
原因1:/var/tmp/.oracle 权限错误
解决:
chown oracle:dba /var/tmp/.oracle
原因2:非oracle身份执行lsnrctl start
解决:
su oracle
lsnrctl start
我遇到的就是原因2,我在root身份下执行了lsnrctl start,报错了,心想root权限最大,能执行一切文件,不会有权限的问题,结果就出现问题了.而且执行dbca也得用oracle身份去,不然也会出现一系列权限的错误.
还有就是oracle安装的路径,安装在/usr/local后好象权限也有不少问题,安装在/oracle下,对/oracle的权限放开了以下,就没问题了.
以上的我都按照着做了,还是不行,在oracle用户下出现的异常是:
TNS-12555: TNS:permission denied
TNS-12560: TNS:protocol adapter error
TNS-00525: Insufficient privilege for operation
Error: 1: Operation not permitted
最终解决办法:
/tmp/.oracle的权限
/var/tmp/.oracle的权限
oracle应该有这些目录的权限,用oinstall
chown -R oracle.oinstall /tmp/.oracle
chown -R oracle.oinstall /var/tmp/.oracle
用oracle启动,而不是用root启动。
------感谢inthirties解答
[ oracle.oinstall表示oracle用户属于oinstall组 ]