'How to resolve oracle tnslsnr errors NL-00280, NL-00278, SNL-00016?

Objective: to start lsnrctl

Command: lsnrctl start "/u01/app/oracle/product/11.2.0/test/network/admin/listener.ora"

Expected: successful start of lsnrctl

Actual:

[oracle@srvr0 root]$ lsnrctl start "/u01/app/oracle/product/11.2.0/test/network/admin/listener.ora"

LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 10-APR-2020 05:53:00

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Starting /u01/app/oracle/product/11.2.0/test/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.2.0 - Production
NL-00280: error creating log stream /u01/app/oracle/product/11.2.0/test/network/admin/listener.ora
 NL-00278: cannot open log file
  SNL-00016: snlfohd: error opening file
   Linux Error: 13: Permission denied

Listener failed to start. See the error message(s) above...

Content of listener.ora:

test_lsnr=
    (DESCRIPTION-LIST=
        (DESCRIPTION=
            (ADDRESS_LIST=
                (LOAD_BALANCE=OFF)
                (FAILOVER=OFF)
                (ADDRESS=(PROTOCOL=TCP)(HOST=srvr0)(PORT=1600))
            )
            (CONNECT_DATA=
                (SERVER=DEDICATED)
                (SERVICE_NAME=test)
            )
        )
    )
STARTUP_WAIT_TIME_test_lsnr=5
CONNECT_TIMEOUT_test_lsnr=10
LOG_DIRECTORY_test_lsnr=/u01/app/oracle/product/11.2.0/test/network/log
LOG_FILE_test_lsnr=test_lsnr.log
TRACE_LEVEL_test_lsnr=OFF
TRACE_DIRECTORY_test_lsnr=/u01/app/oracle/product/11.2.0/test/network/trace
TRACE_FILE_test_lsnr=test_lsnr.trc
SID_LIST_test_lsnr=
    (SID_LIST=
        (SID_DESC=
            (GLOBAL_DB_NAME=test)
            (SID_NAME=test)
            (ORACLE_HOME=/u01/app/oracle/product/11.2.0/test)
        )
    )

Please help me in resolving the above oracle tnslsnr issues!



Solution 1:[1]

I sometimes get this too with my Docker Oracle container (linux CentOS). If after trying the chmod solution explained here (http://raman-kumar.blogspot.com/2020/03/solved-nl-00280-error-creating-log.html ; run the following inside your Oracle container):

cd /u01/app/oracle/product/11.2.0/xe/network/log/
touch listener.log
chmod 766 listener.log

,the listener still doesn't start, then open a new terminal and do:

docker container ls

Check the CONTAINER ID for dev-oracle-container, for instance something like 9d0dc139ed18. Copy it.

docker container kill 9d0dc139ed18

Now if you do again:

docker container ls

The oracle container should be gone. Go on and restart your docker containers (docker-compose up -d , restart listener etc)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 user13859151