Pular para o conteúdo
  • Este tópico contém 6 respostas, 3 vozes e foi atualizado pela última vez 8 anos, 2 meses atrás por Avatar de Paulo WerneckPaulo Werneck.
Visualizando 7 posts - 1 até 7 (de 7 do total)
  • Autor
    Posts
  • #108252
    Avatar de SilvaneSilvane
    Participante

      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?

      #108256
      Avatar de Paulo WerneckPaulo Werneck
      Participante

        @Silvane

        O banco está down ?
        Quando vc tenta um startup o que ocorre ?

        Dê mais detalhes sobre o seu ambiente, SO…

        #108260
        Avatar photoJosé Laurindo Chiappa
        Moderador

          Opa : 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

          #108262
          Avatar de SilvaneSilvane
          Participante

            Eu consigo conectar ao banco assim:

            conn sys as SYSDBA;
            conectado.

            startup
            Instância ORACLE Iniciada.

            Attachments:
            #108263
            Avatar photoJosé Laurindo Chiappa
            Moderador

              Continua 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

              #108266
              Avatar photoJosé Laurindo Chiappa
              Moderador

                Ah, 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 Ûxito

                C: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.ora

                Usado 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 – Production

                SQL>

                ==> 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

                #108267
                Avatar de Paulo WerneckPaulo Werneck
                Participante

                  @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.

                Visualizando 7 posts - 1 até 7 (de 7 do total)
                • Você deve fazer login para responder a este tópico.
                plugins premium WordPress