- This topic has 6 replies, 3 voices, and was last updated 8 years, 4 months ago by Paulo Werneck.
-
AuthorPosts
-
4 de julho de 2016 at 10:57 pm #108252SilvaneParticipant
Olá Pessoa…
Eu fiz uma cópia do meu servidor utilizando VMware e ele contém um oracle instalado. Após realizar tal procedimento subir o servidor com outro nome e outro ip, e depois disto para acessar a cópia do oracle troquei o host nos arquivos listener.ora e tnsnames.ora e não consigo subir o banco,,, já tentei acesso pelo sqldeveloper e dar o erro ora 12505… algúem pode me dar uma dica?
5 de julho de 2016 at 5:39 pm #108256Paulo WerneckParticipant@Silvane
O banco está down ?
Quando vc tenta um startup o que ocorre ?Dê mais detalhes sobre o seu ambiente, SO…
5 de julho de 2016 at 9:40 pm #108260José Laurindo ChiappaModeratorOpa : então, cfrme a Documentação nos diz (https://docs.oracle.com/cd/B19306_01/server.102/b14219/net12500.htm é o link pra doc 10g, mas é a mesma coisa nas outras versões) esse erro indica que o LISTENER não está corretamente configurado – dado o fato que quando vc muda de servidor via de regra IP, hostname, etc, muda, E que foi isso que vc fez, muito provavelmente teu banco em si está OK (até porque O BANCO não usa nem data/hora do sistema, nem ip, nem hostname, nem nada do tipo pra se configurar), é a config de acesso a ele que está incorreta, E o sql developer em questão está instalado numa máquina remota, PORTANTO não acessa por causa da config incorreta lá no servidor… OU, uma outra possibilidade REAL, a máquina física onde essa vm reside tem FIREWALL ativo e/ou restrições de rede do tipo te impedindo de chegar até a VM pela rede…
Faça assim : primeiro vamos confirmar que o banco em si tá de pé, e depois vc faz o check de acessoconfigs… Pra isso :
a. vai até a máquina real/física onde está essa VM e conecta LOCALMENTE nessa VM, logando com o usuário do sistema operacional que roda nela que instalou o RDBMS : se for Linux normalmente o usuário se chama oracle mesmo ou algo assim, se for Windows algumas pessoas criam um usuário próprio só pra isso, e algumas usam o ADMINISTRATOR do Windows mesmo – veja aí como está a sua VM
b. logado na VM como o usuário dono do Oracle, abre um prompt de comando, seta as variáveis de ambiente ORACLE_SID, ORACLE_HOME e PATH e tenta conectar no banco localmente, com sqlplus sys/senhadosys AS SYSDBA (ie, SEM informar @stringdeconexão, confiando só no SID local) : se conectou OK é sinal que é só questão de config de rede , se deu erro de banco indisponível vc executa um comando STARTUP pra subir o banco)
c. com banco acessível localmente, saia do sqlplus com EXIT , e RECHEQUE CUIDADOSAMENTE o conteúdo do LISTENER.ORA e do TNSNAMES.ORA : normalmente esses arquivos ficam no sub-diretório NETWORK/ADMIN logo abaixo do teu ORACLE_HOME, ie, do path aonde seu banco está localizado/instalado, mas isso PODE ser alterado preenchendo-se (no REGISTRY do Windows e/ou nas vars de ambiente em outros casos) a variável TNS_ADMIN, veja lá
d. com os dois arquivos .ORA checados e apontando CORRETAMENTE pro IP/hostname correto, tente subir o listener com lsnrctl start , e confirme o status com lsnrctl status e com lsnrctl services
==> com os passos acima feitos, vc DEVERIA ser capaz de acessar remotamente esse banco – não conseguindo, podemos supor Firewall bloqueando, rota de rede não encontrada até o ip ou hostname da vm em questão, por aí… Nesse caso, nos dê os detalhes *** TODOS *** envolvidos , tal como a versão do Sistema Operacional usado na máquina física que roda a VM E na VM em si, o resultado de um PING e de um TELNET na porta do listener na vm a partir da máquina física pro ip/hostname da VM e um a partir da máquina remota a partir da qual vc quer acessar a vm, que a gente pode palpitar mais…
[]s
Chiappa
5 de julho de 2016 at 9:50 pm #108262SilvaneParticipantEu consigo conectar ao banco assim:
conn sys as SYSDBA;
conectado.startup
Instância ORACLE Iniciada.Attachments:5 de julho de 2016 at 11:28 pm #108263José Laurindo ChiappaModeratorContinua seguindo o passo-a-passo que te dei, ie : verifique se vc não tem a variável TNS_ADMIN presente apontando pra outro path, se não tiver ChequeDireitinho em %ORACLE_HOME%NETWORKADMIN o conteúdo dos arquivos TNSNAMES.ORA e LISTENER.ORA, CONFIRMANDO que nenhum deles usava um IP e/ou hostname que mudou… Tudo OK, agora que teu banco tá startado, sai do sqlplus com EXIT, e nesse mesmo prompt de comandos (onde, imagino, as variáveis ORACLE_SID, ORACLE_HOME e PATH estão setadas ok), inicia o listener com :
lsnrctl start
e depois consulte o status dele com :
lsnrctl status
e
lsnrctl services
Isso estando ok, Não tendo nenhum erro, vá pra máquina-cliente a partir da qual vc quer acessar, se vc for acessar via oracle client CONFIRME que o TNSNAMES.ORA dessa máquina-cliente está OK e tente o acesso, ou se for acessar sem client (ie, via thin driver, por exemplo) tente informar o ip ou hostname atuais da VM e testa…
[]s
Chiappa
6 de julho de 2016 at 3:10 am #108266José Laurindo ChiappaModeratorAh, uma dica adicional : enquanto vc estiver checando a config na máquina servidora Oracle, um teste Interessante de se fazer depois que vc startou com sucesso o LISTENER e conferiu que o STATUS e os SERVICES do listener tão ok, é tentar mandar um pacote de ping E tentar uma conexão via listener pelo servidor Oracle mesmo, local, tipo :
=> confirmo que listener está Ativo e os serviços tão registrados nele :
C:oraclexeapporacleproduct11.2.0serverbin>lsnrctl status
Estabelecendo conexÒo com (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS do LISTENER
Apelido LISTENER
VersÒo TNSLSNR for 32-bit Windows: Version 11.2.0.2.0 – Produ
ction
Data Inicial 05-JUL-2016 20:02:43
Funcionamento 0 dias 0 hr. 0 min. 52 seg
NÝvel de Anßlise off
Seguranþa ON: Local OS Authentication
SNMP OFF
Serviþo Default XE
Arq. ParÔm. Listn. C:oraclexeapporacleproduct11.2.0servernetworkadmin
listener.ora
Arq. Log Listener C:oraclexeapporaclediagtnslsnrUser-PClisteneralert
log.xml
Resumo de Atendimento…
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=.pipeEXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=User-PC)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=User-PC)(PORT=8080))(Presentation=HT
TP)(Session=RAW))
Resumo de Serviþos…
O serviþo “CLRExtProc” tem 1 instÔncia(s).
InstÔncia “CLRExtProc”, status UNKNOWN, tem 1 handler(s) para este serviþo…
O serviþo “PLSExtProc” tem 1 instÔncia(s).
InstÔncia “PLSExtProc”, status UNKNOWN, tem 1 handler(s) para este serviþo…
O serviþo “XEXDB” tem 1 instÔncia(s).
InstÔncia “xe”, status READY, tem 1 handler(s) para este serviþo…
O serviþo “xe” tem 1 instÔncia(s).
InstÔncia “xe”, status READY, tem 1 handler(s) para este serviþo…
O comando foi executado com ÛxitoC:oraclexeapporacleproduct11.2.0serverbin>lsnrctl services
Estabelecendo conexÒo com (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
Resumo de Serviþos…
O serviþo “CLRExtProc” tem 1 instÔncia(s).
InstÔncia “CLRExtProc”, status UNKNOWN, tem 1 handler(s) para este serviþo…
Handler(s):
“DEDICATED” estabelecido:0 recusado:0
LOCAL SERVER
O serviþo “PLSExtProc” tem 1 instÔncia(s).
InstÔncia “PLSExtProc”, status UNKNOWN, tem 1 handler(s) para este serviþo…
Handler(s):
“DEDICATED” estabelecido:0 recusado:0
LOCAL SERVER
O serviþo “XEXDB” tem 1 instÔncia(s).
InstÔncia “xe”, status READY, tem 1 handler(s) para este serviþo…
Handler(s):
“D000” estabelecido:0 recusado:0 atual:0 mßx.:1022 estado:ready
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=User-PC)(PORT=49417))
O serviþo “xe” tem 1 instÔncia(s).
InstÔncia “xe”, status READY, tem 1 handler(s) para este serviþo…
Handler(s):
“DEDICATED” estabelecido:0 recusado:0 estado:ready
LOCAL SERVER
O comando foi executado com Ûxito=> mando um PING pro Listener :
C:oraclexeapporacleproduct11.2.0serverbin>tnsping xe
Arquivos de parÔmetros usados:
C:oraclexeapporacleproduct11.2.0servernetworkadminsqlnet.oraUsado o adaptador TNSNAMES para resolver o apelido
Tentativa de contatar (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = User-PC)
(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE)))
OK (10 ms)=> conecto com a host string que tenho no TNSNAMES.ORA do servidor Oracle que foi pingada :
C:oraclexeapporacleproduct11.2.0serverbin>sqlplus system/oracle@xe
SQL*Plus: Release 11.2.0.2.0 Production
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Conectado a:
Oracle Database 11g Express Edition Release 11.2.0.2.0 – ProductionSQL>
==> Isso é a prova final de que pelo lado do BANCO no servidor em princípio tá tudo OK, se depois disso a máquina cliente remota continuar não conseguindo se conectar é quase certo que é algum prob de rede, firewall, config de Oracle client, etc – em tese no banco Oracle e no servidor Oracle a config tá correta…
[]s
Chiappa
6 de julho de 2016 at 4:07 pm #108267Paulo WerneckParticipant@Silvane
Vou seguir do princípio que vc não usa o oracle restart …
Por padrão o Oracle nesse caso não inicia automaticamente (ao subir o servidor por exemplo)
então provavelmente vc estava tentando conectar pelo sql developer e deva esse erro do listener, pq o banco não estava startado.Se for isso é só criar uma rotina pro Oracle subir junto com o SO, daí tem várias maneiras, ou então você vai ter que fazer esse processo que vc disse sempre que a máquina desligar ou acontecer alguma coisa que faça o Oracle ficar shutdown.
-
AuthorPosts
- You must be logged in to reply to this topic.