Look in:

Web oracle-core-dba.blogspot.com

Tuesday, September 08, 2009

TNS-00516: Permission denied, Solaris Error: 13: Permission denied

Last week our Unix Adminstrators has moved the data related to our Oracle database from a UFS filesystem to a ZFS filesystem on Solaris.
Once the move is completed, when we tried to start the databases and listeners on the server, the databases started normally but we got problems starting the Listeners.


The Problem:
DBA TEST ZONE> lsnrctl start LISTENER_ORA8

LSNRCTL for Solaris: Version 8.0.6.0.0 - Production on 07-SEP-09 10:52:35

(c) Copyright 1999 Oracle Corporation. All rights reserved.

Starting /usr/app/oracle/product/8.0.6/bin/tnslsnr: please wait...

TNSLSNR for Solaris: Version 8.0.6.0.0 - Production
System parameter file is /usr/app/oracle/product/8.0.6/network/admin/listener.ora
Log messages written to /usr/app/oracle/product/8.0.6/network/log/listener_ora8.log
Attempted to listen on: (DESCRIPTION=(CONNECT_TIMEOUT=10)(ADDRESS=(PROTOCOL=IPC)(KEY=test8)))
TNS-12546: TNS:permission denied
TNS-12560: TNS:protocol adapter error
TNS-00516: Permission denied
Solaris Error: 13: Permission denied


The Fix:
The Unix permissions for the hidden directory /tmp/.oracle should be:
drwxrwxrwx

Change the permissions on the .oracle directory:


DBA TEST ZONE> ls -lad /tmp/.oracle /var/tmp/.oracle
/tmp/.oracle: No such file or directory
drwxr-xr-x 2 root root 2 Aug 21 02:05 /var/tmp/.oracle

give full permisions to this file:

DBA TEST ZONE> ls -lad /var/tmp/.oracle
drwxrwxrwx 2 root root 2 Aug 21 02:05 /var/tmp/.oracle


Now again retried to start the Listener:

DBA TEST ZONE> lsnrctl start LISTENER_ORA8

LSNRCTL for Solaris: Version 8.0.6.0.0 - Production on 07-SEP-09 10:57:49

(c) Copyright 1999 Oracle Corporation. All rights reserved.

Starting /usr/app/oracle/product/8.0.6/bin/tnslsnr: please wait...

TNSLSNR for Solaris: Version 8.0.6.0.0 - Production
System parameter file is /usr/app/oracle/product/8.0.6/network/admin/listener.ora
Log messages written to /usr/app/oracle/product/8.0.6/network/log/listener_ora8.log
Listening on: (ADDRESS=(PROTOCOL=ipc)(DEV=8)(KEY=test8))
Listening on: (ADDRESS=(PROTOCOL=tcp)(DEV=13)(HOST=10.52.51.61)(PORT=1526))

Connecting to (ADDRESS=(PROTOCOL=IPC)(KEY=test8))
STATUS of the LISTENER
------------------------
Alias LISTENER_ORA8
Version TNSLSNR for Solaris: Version 8.0.6.0.0 - Production
Start Date 07-SEP-09 10:57:52
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security OFF
SNMP OFF
Listener Parameter File /usr/app/oracle/product/8.0.6/network/admin/listener.ora
Listener Log File /usr/app/oracle/product/8.0.6/network/log/listener_ora8.log
Services Summary...
test8 has 1 service handler(s)
The command completed successfully

8 comments:

Unknown said...

really helpful for me

Nevigator said...

Thank you!

Peanuts said...

Thank you. found the solution here after hitting a few roadblocks. I had multiple DB ORACLE_HOME using different unix ID..

JayJ said...
This comment has been removed by the author.
JayJ said...

I had a "t" sticky bit set and I did not notice. Once I reset the /var/tmp/.oracle permissions (777) it worked fine. thx!

drwxrwxrwt <- t was set

Unknown said...

Thanks master!

Unknown said...

Thank You

Unknown said...

Thank You very much