ORA 12154-tns: não foi possível resolver o identificador

Este forum é destinado a perguntas relacionadas a Oracle, mas que não se enquadram nos forums acima. Aqui serão tratadas também sobre outras tecnologias da oracle, como o Workflow, BPEL, Spatial, OCS, etc.
Responder
cristianero_oliveira
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Seg, 26 Jul 2010 11:22 pm
Localização: São Paulo

Instalei o Oracle 10 Express Edition com Delphi 7 no sistema operacional windows 7. Atribui os grants necessários, crio tabelas pelo administrador do banco normalmente. Contudo, quando acesso o Delphi e tento inserir um conector de banco pelo DbExpress, ADO, etc aparece a mensagem
ORA 12154-tns: nãofoi possível resolver o identificador de conexão especificado.
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

Este é um erro que aparece frequentemente em nosso fórum, mesmo havendo muitos tópicos a respeito deste problema, parece ainda haver pouco entendimento quanto ao erro e sua solução.
Vamos tentar montar um tutorial, com os principais motivos e as principais soluções adotadas neste tipo de problema.

Basicamente este é um problema de conexão entre o cliente e o banco de dados.
Portanto, vamos colocar em ordem de prioridade as ações, mesmo que básicas e, até mesmo ridículas, mas tem que ser olhadas e descartadas antes de procurar por soluções mais complexas.

No servidor :
1. Verificar se o servidor está na rede, usando o comando PING tanto do cliente para o servidor quanto do servidor para o cliente, é necessário verificar se o tráfego está disponível nas duas mãos.
2. Verificar se o banco está no ar, isto é, se o processo de inicialização ocorreu sem falhas.
2.1. Veja no alert que se encontra no diretório bdump, configurado durante a criação do seu banco, se o banco foi iniciado com sucesso.
2.1.1. às vezes o processo está aparentemente no ar, mas, por falta de memória ou por uma falha na inicialização o banco ficou em stand by.
3. Verifique se o listener está funcionando corretamente.
3.1. Verifique no diretório $ORACLE_HOME/network/log o arquivo listener.log
4. Verifique se a configuração do listener.ora, sqlnet.ora e tnsnames.ora, que se encontram no diretório $ORACLE_HOME/network/admin, estão corretas.
4.1. No arquivo TNSNAMES.ora TEM que existir e estar no diretório mencionado, também deve conter os valores NAMES.DIRECTORY_PATH do arquivo SQLNET.ora
5. Verificar o número de conexões simultâneas no arquivo de inicialização do banco.
6. Os diretórios onde se encontram tanto os arquivos binários (programas) quanto os datafiles (banco de dados) devem ser de propriedade do usuário que vai iniciar o banco, este usuário nunca deve ser o root ou administrador.
7. Tente conectar ao banco usando o SQLPlus, se ele falhar nem adianta tentar ir para o cliente, verifique o erro e, caso tudo esteja OK, entre em contato com o pessoal do Forum, identificando o erro e o que já foi verificado.

No cliente :
1. Verificar a configuração do TNSNAMES e SQLNET, que se encontram no diretório $ORACLE_HOME/network/admin, conferir os dados para ver se todos estão corretos, principalmente nome do host, porta e nome do banco (SID)
2. Executar o TNSPING com o nome do alias que se encontra no TNSNAMES, o mesmo deve retornar com sucesso o teste.
3. Tentar a conexão usando o SQLPlus, se este falhar verificar as possíveis causas do erro.
4. Testar a conexão usando a aplicação.

Qualquer erro não contemplado neste artigo deve ser notificado ao grupo para que possamos, em conjunto, auxiliar na resolução de seu problema, além de melhorar este tutorial.

Obs.: No site http://www.ora-code.com você certamente encontrará mais algumas dicas, não só para este erro como para muitos outros, só que em inglês
ORA-12154:
TNS:could not resolve the connect identifier specified

Cause: A connection to a database or other service was requested using a connect identifier, and the connect identifier specified could not be resolved into a connect descriptor using one of the naming methods configured. For example, if the type of connect identifier used was a net service name then the net service name could not be found in a naming method repository, or the repository could not be located or reached.

Action:

- If you are using local naming (TNSNAMES.ORA file):

- Make sure that "TNSNAMES" is listed as one of the values of the NAMES.DIRECTORY_PATH parameter in the Oracle Net profile (SQLNET.ORA)

- Verify that a TNSNAMES.ORA file exists and is in the proper directory and is accessible.

- Check that the net service name used as the connect identifier exists in the TNSNAMES.ORA file.

- Make sure there are no syntax errors anywhere in the TNSNAMES.ORA file. Look for unmatched parentheses or stray characters. Errors in a TNSNAMES.ORA file may make it unusable.

- If you are using directory naming:

- Verify that "LDAP" is listed as one of the values of the NAMES.DIRETORY_PATH parameter in the Oracle Net profile (SQLNET.ORA).

- Verify that the LDAP directory server is up and that it is accessible.

- Verify that the net service name or database name used as the connect identifier is configured in the directory.

- Verify that the default context being used is correct by specifying a fully qualified net service name or a full LDAP DN as the connect identifier

- If you are using easy connect naming:

- Verify that "EZCONNECT" is listed as one of the values of the NAMES.DIRETORY_PATH parameter in the Oracle Net profile (SQLNET.ORA).

- Make sure the host, port and service name specified are correct.

- Try enclosing the connect identifier in quote marks. See the Oracle Net Services Administrators Guide or the Oracle operating system specific guide for more information on naming.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes