For testing I have been trying to install Oracle 11g on a test system with a single database several times with the aid of snapshots. This most recent iteration I have been having issues getting the database to register with the listener.

I am to understand that PMON, as long as the database is running, will attempt to register itself at regular intervals with a listener that is running locally on the same machine using port 1521. I have such a listener running but the service is not registered it seems.

lsnrctl status
The listener supports no services

I can connect to the db using sqlplus / as sysdba and running select name from v$database; shows the DB in question. So between that tnsping and netstat -an I know the listener is at least running. alter system register does not appear to have an effect either. Not that it should matter since I should just have to wait a minute for it to work on its own.

I then went looking for any PMON related logs. It should have been in the trace folder ($ORACLE_BASE/diag/rdbms/database_name/SID/trace/SID_pmon_PID.trc) with other trc files but it was not there. I then used the following query to verify where it should be

select pid, program, tracefile from v$process where program like '%PMON%';

Windows 2008R2 with firewall disabled for testing (not that it changed anything). Listener.log doesn't show anything of worry. Just evidence of me restarting the listener many times.

I am aware that I could configure a static listener with SID_LIST but I would like to understand why this is not working. This is the 4th time around that I have been doing this and I have not run into this problem yet.

I am basically stuck since I am not sure where else I should be looking.


Listener registration in the database can be traced with:

alter system set events='immediate trace name listener_registration level 3';

Disable tracing when it is not needed anymore:

alter system set events='immediate trace name listener_registration level 0';

PMON registers to addresses defined in local_listener and remote_listener parameters. If you have an invalid address defined there, then it will not be able to register the instance in the listener.

If you have nothing defined there, then it tries to register on the local machine using the default 1521 port.

You could also try to set your local_listener as:

alter system set local_listener='(ADDRESS=(PROTOCOL=tcp)(HOST=';
alter system register;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.