Conectar via service_name

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Responder
Robson Costa
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 155
Registrado em: Sex, 17 Out 2008 6:05 pm
Localização: Campo Grande - MS

Só consigo me conectar no banco via SID. Quando tento conectar via service_name dá erro TNS-12154. O que devo fazer?

Estou na Oracle 12c.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

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

Como está configurado o seu SQLNET.ORA?
E como você ta fazendo pra conectar?

Aqui tem um link com umas dicas:
https://www.tekstream.com/oracle-error- ... vice-name/
Robson Costa
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 155
Registrado em: Sex, 17 Out 2008 6:05 pm
Localização: Campo Grande - MS

Pelo que está escrito está tudo OK. MAs como faço este passo aqui:
Check that the net service name used as the connect identifier exists in the TNSNAMES.ORA file.
Que teste eu faço?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

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

Manda seu TNSNAMES.ora pra gente ver como está.

Aqui tem um exemplo:

Selecionar tudo

mySID, mySID.whereever.com =
(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = myHostname)(PORT = 1521))
  )
  (CONNECT_DATA =
    (SERVICE_NAME = mySID.whereever.com)
    (SID = mySID)
    (SERVER = DEDICATED)
  )
)

Você está tentando assim?

Selecionar tudo

sqlplus user/password@//hostname:port/service_name
Robson Costa
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 155
Registrado em: Sex, 17 Out 2008 6:05 pm
Localização: Campo Grande - MS

Meu tnsnames.ora:

Selecionar tudo

teste =
  (DESCRIPTION =
     (ADDRESS_LIST =
        (ADDRESS =
           (PROTOCOL=TCP)
           (HOST=XXXX)
           (PORT=XXXX)))
  (CONNECT_DATA = (SID = teste))
)
Tentei rodar o comando que você passou:

Selecionar tudo

sqlplus username/password@//host:porta/service_name
e deu o seguinte erro:
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
Avatar do usuário
fbifabio
Moderador
Moderador
Mensagens: 199
Registrado em: Ter, 22 Fev 2011 1:51 pm
Localização: São Paulo - SP
Contato:
Fábio Prado
www.fabioprado.net

A partir do 12c você tem como principais containers o CDB (ou CDB$ROOT) e 1 ou mais PDBs. Os PDBs são os containers dos usuários, onde devem estar os schemas das aplicações, portanto, certamente é nele que você está tentando se conectar, e para se conectar nele, o PDB tem que estar aberto e registrado no listener. Por padrão os PDBs não são abertos automaticamente, e existem 2 formas de abri-los, mas vou dar a dica que funciona tanto no 12cR1 quanto no 12CR2. Crie uma trigger de startup no CDB como no exemplo abaixo para que todos os PDBs sejam abertos automaticamente:

Selecionar tudo

create or replace NONEDITIONABLE trigger SYS.TR_OPEN_PDBS 
after startup
on database
begin
    execute immediate 'alter pluggable database all open';
end;
Existe a possibilidade do PDB em que você está tentando se conectar não estar aberto, então para testar sugiro executar o comando abaixo, aguardar um tempinho e tentar de novo a conexão:

Selecionar tudo

SQL>    alter pluggable database all open
Responder
  • Informação
  • Quem está online

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