Problem appeared after server reboot. Both database and instance were ok but listener refused to start with errors in trace:
nsglma:Reporting the following error stack: TNS-01150: The address of the specified listener name is incorrect TNS-01153: Failed to process string: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
We spent significant time and tried several ways to resolve it (configuring another listeners with different ports, change hostnames, etc) but none helped. Looked like not a configuration issue.
Later when no options left, we just tnsping the listener on another server. This time we got different but more promising error:
TNS-12538: TNS:no such protocol adapter
Everything was checked one more time – no mistakes in connection string, no network partitions and no problem with remote listener. Most likely it was caused by protocol itself.
So, we did some checks according to oracle doc; (Doc ID 435795.1) by using utility adapters (displays the configured Oracle transport protocols, naming methods, and security options)
cd $ORACLE_HOME/bin ./adapters Installed Oracle Net transport protocols are: IPC BEQ Error!!! TCP/IP is not completely installed! Present in libntcp10, but missing from ntcontab.o... Error!!! SSL is not completely installed! Present in libntcps10, but missing from ntcontab.o... RAW Error!!! SDP/IB is not completely installed! Present in libntcp10, but missing from ntcontab.o...
Which points a problem with TCP protocol – TCP/IP is not completely installed!
As for solution oracle suggest following:
1. connect as the owner of oracle 2. make sure that ORACLE_HOME and LD_LIBRARY_PATH are set correctly ORACLE_HOME=</oracle10/product> LD_LIBRARY_PATH=$ORACLE_HOME/lib 3. shutdown all Oracle instances and processes running from this Oracle Home 4. execute following commands: $ script /tmp/relink_adapt.out $ cd $ORACLE_HOME/bin $ ./gennttab $ cd $ORACLE_HOME/network/lib $ make -f ins_net_client.mk ntcontab.o $ cd $ORACLE_HOME/bin $ genclntsh $ cd $ORACLE_HOME/rdbms/lib $ make -f ins_rdbms.mk install $ cd $ORACLE_HOME/sqlplus/lib $ make -f ins_sqlplus.mk install $ cd $ORACLE_HOME/network/lib $ make -f ins_net_client.mk install $ cd $ORACLE_HOME/network/lib $ make -f ins_net_server.mk install $ exit Then again try: $ cd $ORACLE_HOME/bin $ adapters oracle All now seems ok: Net Protocol Adapters linked with oracle are: BEQ IPC TCP/IP RAW SSL
Actually this never happen if the system installed and maintained correctly but this one seems got really bad care.