Oracle10安装时,启动 lsnrctl 监听时出TNS-12546错
oracle@crl-webbr:/opt/oracle> sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Dec 3 12:32:22 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> connect /as sysdba;
Connected.
SQL> startup
oracle@crl-webbr:/opt/oracle> lsnrctl
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 03-DEC-2009 13:13:10
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> start
Starting /opt/oracle/product/10gR2/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /opt/oracle/product/10gR2/network/admin/listener.ora
Log messages written to /opt/oracle/product/10gR2/network/log/listener.log
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
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...
原因和解决办法:
The Unix permissions for the hidden directory /tmp/.oracle should be:
Owner = the Oracle user who performed the database install,
Group = the dba group of the Oracle user,
and the directory's Unix permissions should be drwxrwxrwx
目录/tmp/.oracle的权限应该是:
owner = 执行数据库安装的oracle用户,
group = oralce用户的dba组,
而且这个目录权限应该是 drwxrwxrwx
Change the permissions on the .oracle directory:
1) cd /var/tmp(on Solaris Linux) or /tmp(on Hp and IBM)
2) Change the ownership and group of the ".oracle" directory to "oracle/dba":
# chown -R oracle:dba .oracle
or
3) Change the permissions on the directory:
# chmod 777 .oracle
执行 dbca 也得用oracle身份去,不然也会出现一系列权限的错误