TNS-12538: TNS:no such protocol adapter
the problem: sometimes you’ll see the following when you’re having issues with your oracle client
[oracle@wdy01vobi01 bin]$ ./tnsping myservice TNS Ping Utility for Linux: Version 11.1.0.7.0 - Production on Copyright (c) 1997, 2008, Oracle. All rights reserved. Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = dbhost)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = myservice))) TNS-12538: TNS:no such protocol adapter
try this: go to your ORACLE_HOME/bin and run adapters to see what adapters you have installed
./adapters
you might see something like
Installed Oracle Net transport protocols are: IPC BEQ Error!!! TCP/IP is not completely installed! Present in libntcp11, but missing from ntcontab.o... Error!!! SSL is not completely installed! Present in libntcps11, but missing from ntcontab.o... RAW Error!!! SDP/IB is not completely installed! Present in libntcp11, but missing from ntcontab.o... Installed Oracle Net naming methods are: Local Naming (tnsnames.ora) Oracle Directory Naming Oracle Host Naming Error!!! Oracle Names Server Naming is not completely installed! Installed Oracle Advanced Security options are: RC4 40-bit encryption RC4 56-bit encryption RC4 128-bit encryption RC4 256-bit encryption DES40 40-bit encryption DES 56-bit encryption 3DES 112-bit encryption 3DES 168-bit encryption AES 128-bit encryption AES 192-bit encryption AES 256-bit encryption MD5 crypto-checksumming SHA-1 crypto-checksumming Kerberos v5 authentication RADIUS authentication
what you’ll need to do is relink the protocol adapters. try this (MOS 435795.1) to relink them(Note: even though some things may result in errors, proceed through the following procedure in it’s entirety)
connect as the owner of the installation
make sure that ORACLE_HOME and LD_LIBRARY_PATH are set correctly
Note: LD_LIBRARY_PATH should be set to –> $ORACLE_HOME/libshutdown all Oracle instances and processes running from your Oracle Home
execute the following
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
check the adapters again, it should return something like the following now:
Installed Oracle Net transport protocols are: IPC BEQ TCP/IP SSL RAW SDP/IB Installed Oracle Net naming methods are: Local Naming (tnsnames.ora) Oracle Directory Naming Oracle Host Naming Error!!! Oracle Names Server Naming is not completely installed! Installed Oracle Advanced Security options are: RC4 40-bit encryption RC4 56-bit encryption RC4 128-bit encryption RC4 256-bit encryption DES40 40-bit encryption DES 56-bit encryption 3DES 112-bit encryption 3DES 168-bit encryption AES 128-bit encryption AES 192-bit encryption AES 256-bit encryption MD5 crypto-checksumming SHA-1 crypto-checksumming Kerberos v5 authentication RADIUS authentication
now try performing your tnsping again. at the very least, it should not give you the “TNS-12538: TNS:no such protocol adapter” error again.