ORA-12514: TNS: listener has no knowledge about the service

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Post Reply
gab26
Rank: Programador Júnior
Rank: Programador Júnior
Posts: 16
Joined: Wed, 04 Jan 2017 11:01 am

Good afternoon guys, I have a problem I believe it's Oracle's configuration, I do not understand very well, I'm trying, it's next I'm with a dump of the bank of my company, I'm going to do a Java web application, my intention was to install the bank and After climbing the dump, but when the installation ends I try to make the connection but this message comes:
ORA-12514: TNS: Listener has no knowledge about the service currently requested in the connection descriptor
, by what I researched would be a problem in the tnnames file, follow it below like this:

Select all

# tnsnames.ora Network Configuration File: C:\app\gabriel\product\11.2.0\dbhome_1\network\admin\tnsnames.ora 
# Generated by Oracle configuration tools. 
 
MEGA = 
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.21)(PORT = 1521)) 
    (CONNECT_DATA = 
      (SERVER = DEDICATED) 
      (SERVICE_NAME = MEGA) 
    ) 
  ) 
 
ORACLR_CONNECTION_DATA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
    (CONNECT_DATA = 
      (SID = CLRExtProc) 
      (PRESENTATION = RO) 
    ) 
  ) 
 
ORCL = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-L7F0R37)(PORT = 1521)) 
    ) 
    (CONNECT_DATA = 
      (SERVICE_NAME = ORCL) 
    ) 
  ) 
 

If anyone can help me a lot. thanks.
User avatar
dr_gori
Moderador
Moderador
Posts: 5026
Joined: Mon, 03 May 2004 3:08 pm
Location: Portland, OR USA
Contact:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Which one is giving problem?
I have seen that the oraclr_connection_data is without service_name.

See if these links can help you: [[0]

Select all

ORA-12514: TNS:listener does not currently know of service requested in connect descriptor  
 
Expert Oracle Database Tips by Burleson Consulting 
 
August 27, 2015 
 
 
Question:  I am attempting to enter SQL*Plus and I am getting this error: 
 
oracle> sqlplus system/manager@mysid 
 
ERROR 
ORA-12514: TNS: Listener does not currently know of service requested in connect descriptor 
 
How do I prevent this form of the ORA-12514 error?  Also, I often get a TNS-12514 along with the ORA-12514.  Are these the same error?   If not, how do I avoid the TNS-12514? 
 
Answer:  First, the ORA error is a permutation of the ORA-12514: TNS listener cannot resolve service name error as shown below.  This form of the ORA-12541 error commonly happens when the database or the listener processes are in the middle of a startup, or when the database (mysid in your case) has not been registered with the listener.  
 
root> oerr ora 12514 
 
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor 
 
Cause: 
 
The listener received a request to establish a connection to a database or other service. 
 
The connect descriptor received by the listener specified a service name for a service (usually a database service) that either has not yet dynamically registered with the listener or has not been statically configured for the listener. 
 
This may be a temporary condition such as after the listener has started, but before the database instance has registered with the listener. 
 
Action: 
 
    Wait a moment and try to connect a second time. 
 
    Check which services are currently known by the listener by executing: lsnrctl services 
 
    Check that the SERVICE_NAME parameter in the connect descriptor of the net service name used specifies a service known by the listener. 
 
    If an easy connect naming connect identifier was used, check that the service name specified is a service known by the listener. 
 
    Check for an event in the listener.log file.   
 
To register the database with the listener 
 
You have two options to register your database with the listener: 
 
    Simply add a service name to your tnsnames.ora file. 
 
    If you have the multiple listeners and have specified the database name in your pfile/spfile with local_listener=mysid then you can dynamically register the database with the listener. 
 
The TNS-12514 is very similar to the ORA-12514 for a reason.  Sometimes Oracle does not get far enough along in the process for an Oracle error, so a similar network error will appear.  Resolving one should take care of the other. 
 
Read on for specific information on dealing with the TNS-12514 on Windows. 
 
ORA-12514: TNS listener cannot resolve service name error 
 
Question:  I have an issue causing a ORA-12514: TNS: listener could not resolve SERVICE_NAME error: 
 
SQL> shutdown immediate 
 
Database closed. 
Database dismounted. 
ORACLE instance shut down. 
  
SQL> startup mount 
 
ORACLE instance started. 
ORA-12514: TNS:listener could not resolve SERVICE_NAME given in connect descriptor 
 
I'm using Oracle 10g on Windows 2000. 
 
What's cause of this error and how to resolve it? 
 
Answer by Edward Stoever:   
 
I avoid using a listener connection when I startup or shutdown, as a matter of practice. I realize that cannot always be done. Are you physically on the machine? Can you ssh or telnet in and run sqlplus on the box? Then connect like so: 
 
export ORACLE_SID=mydb  ###Unix/Linux 
sqlplus sys as sysdba 
[no password needed - just hit return ] 
SQL> startup mount 
... 
 
Do not connect with the @mydb to avoid the listener. 
 
Also, Windows systems are subject to a variety of other issues from screen savers that hog the CPU to the Catch-22 of either anti-virus protection or a virus interfering with connections.  These conditions and a few others can cause TNS-12514 to appear. 
 
Also note the similarities in numbering and content for ORA-12154, which deals with TNS inability to resolve the service name.
[[2]

Select all

 Add a service name to tnsnames.ora file 
 
Oracle Database Tips by Burleson Consulting 
 
When the Oracle DBA creates their tnsnames.ora file to define remote databases they often specify the host name of the foreign server that contains the remote Oracle database.  
 
For example, a entry in the tnsnames.ora file for a remote database might look like this.  In the example, we have added the service name "berlin" to our tnsnames.ora file: 
berlin = 
   (DESCRIPTION = 
     (ADDRESS_LIST = 
         (ADDRESS = 
           (COMMUNITY = TCP) 
           (PROTOCOL = TCP) 
          (HOST = hun) 
           (PORT = 1521) 
          ) 
      ) 
     (CONNECT_DATA = (SID = kraus)) 
    ) 
 
Here we see a TNS service name of berlin, which defines a connection to a remote server named hun that contains an Oracle database named kraus. When a remote connection request is made from the UNIX server, the /etc/host file is accessed to get the IP address for the hum server.  
 
From the listing below, we see that the hum server is located at 192.133.13.12.  In sum, the /etc/host file is used to isolate the IP address from the tnsnames.ora file.  If the IP address should ever change, the UNIX systems administrator only needs to change the IP address in one place. 
root> cat /etc/hosts 
 
192.133.13.22  hum    hum.com 
192.144.13.22  dopey  dopey.com 
gab26
Rank: Programador Júnior
Rank: Programador Júnior
Posts: 16
Joined: Wed, 04 Jan 2017 11:01 am

Dr_Gori good afternoon, thanks for the answer, in all happens this, I uninstalled all oracle and I installed it again, a strange thing at least for me that I do not understand, when I try to connect by PL / SQL Developer, he gives me the error in any instance, now when I connect by the sql / plus, it does not give me error, another thing this error already occurs when I am creating the bank in the "database configuration wizard", it gives me the listener error when I try Configure the network by the "Network Configuration Wizard", it does not accept the login and password that SQL / Plus accepts. I have no idea what it is.

Thanks.
gab26
Rank: Programador Júnior
Rank: Programador Júnior
Posts: 16
Joined: Wed, 04 Jan 2017 11:01 am

Only updating the staff, I continued to search and found the solution at least for my case, when I gave this command:

Select all

SHOW PARAMETER LOCAL LISTENER
The value of the string was empty, after that I gave this command:

Select all

alter system set LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.21)(PORT=1521))'scope=both;
Changing the system, and is now connecting normally.

Thanks for the attention there guys
Post Reply
  • Information
  • Who is online

    Users browsing this forum: No registered users and 1 guest