Pular para o conteúdo
  • Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 5 anos, 2 meses atrás por Avatar photoJosé Laurindo Chiappa.
Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #141389
    Avatar de airoospairoosp
    Participante

      Boa tarde,

      Fiz a instalação do banco 18c no notebook com Windows 7 64, sendo que nesta máquina já tinha o Oracle XE. O detalhe é que durante o processo apareceu uma mensagem de erro informando que o arquivo listener.ora não pode ser criado.
      O que fiz foi, remover a instalação do 18c usando o deinstall, foram removidos os arquivos, pastas e os serviços do Windows.
      Baixei os serviços do Oracle XE e refiz a instalação do 18c, foi concluída sem erro.
      Os serviços do 18c foram criados e o listener funcionando. Só que os arquivos listener.ora e tnsnames.ora não foram criados.
      Alguém já vi isso acontecer?

      Obrigado

      Airton

      #141515
      Avatar photoJosé Laurindo Chiappa
      Moderador

        Blz ? Então, teu erro foi um erro Básico : cfrme http://www.snapdba.com/2013/03/creating-an-oracle-listener-using-netca/ mostra (no caso pro 11g mas não importa, o Conceito é o mesmo até o 18c), o Asssistente de Rede VAI TER PERGUNTAR qual porta vai ser usada – o default é a porta 1521, e SE vc já tiver um outro Listener usando a porta (o XE no seu caso), OBVIAMENTE só pode dar conflito, Não Tem Como dois programas usarem ao mesmo tempo a mesma porta, sim sim ??? Teu erro foi NÂO TER INFORMADO uma OUTRA porta de rede que não estivesse em uso, se vc quer manter dois listeners…. E eu digo SE porque REALMENTE É OPCIONAL vc ter mais de um listener na mesma máquina, a versão MAIOR do listener pode Tranquilamente conectar bancos de versões anteriores….
        Logicamente, o Assistente de rede ele faz as configs DE REDE TODAS, não só listener mas também TNSNAMES.ORA, SQLNET.ORA … SE ele falhou na tela de criação do listener, o que vem depois Não Vai Ser criado, okdoc ?? Não vejo razão alguma para estranheza…

        Muito bem, isso posto, pra gente poder te orientar, diga aí : vc quer manter o XE e o 18c nessa mesma máquina, certo ? E vc quer ter um LISTENER pra cada banco ou quer ter um só listener pra atender os dois ??
        Eu recomendaria que vc tivesse um listener pra cada banco, isso permite que vc suba e baixe os binários tanto do XE quanto do 18c independentemente, sem inter-relações…. Para isso, vc vai trabalhar na linha de comando (os Assistentes ORACLE são todos ferramentas em linha de comando), logado na máquina como o MESMO USUÁRIO WINDOWS que é administrador local E instalou o software RDBMS, E recomendo que vc tenha um .BAT script pra setar as variáveis de ambiente apontando pro XE e outro apontando pro 18c, isso facilita….
        E ainda em termos de FACILIDADE, eu PREFIRO deixar o listener do XE na porta default 1521 com o nome default de LISTENER mesmo , e pro 18c eu crio um OUTRO listener numa outra porta no range de 1521 a 1599 que eu SEI que está sem uso, E pra evitar confusão eu gosto de dar um NOME diferente pra esse listener…

        Ó como está na mainha máquina :

        ==> a config pro XE :
        
        C:\Users\jlchi_000>type xe.bat
        SET ORACLE_SID=XE
        SET LOCAL=xepdb1
        SET ORACLE_HOME=c:\app\oracle\product\xe18c\dbhomexe
        SET PATH=%ORACLE_HOME%\BIN;%PATH%
        
        => seto as vars de ambiente :
        C:\Users\jlchi_000>xe.bat
        
        ==> ó como está meu listener :
        
        C:\Users\jlchi_000>type %ORACLE_HOME%\network\admin\listener.ora
        
        <h1>listener.ora Network Configuration File: C:\app\oracle\product\xe18c\dbhomeXE\NETWORK\ADMIN\listener.ora</h1>
        
        <h1>Generated by Oracle configuration tools.</h1>
        
        DEFAULT_SERVICE_LISTENER = XE
        
        SID_LIST_LISTENER =
          (SID_LIST =
            (SID_DESC =
              (SID_NAME = CLRExtProc)
              (ORACLE_HOME = C:\app\oracle\product\xe18c\dbhomeXE)
              (PROGRAM = extproc)
              (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle\product\xe18c\dbhomeXE\bin\oraclr18.dll")
            )
          )
        
        LISTENER =
          (DESCRIPTION_LIST =
            (DESCRIPTION =
              (ADDRESS = (PROTOCOL = TCP)(HOST = Dell15Rse)(PORT = 1521))
              (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
            )
          )
        
        => e o netca criou okdoc meu sqlnet.ora e o tnsnames.ora :
        
        C:\Users\jlchi_000>type %ORACLE_HOME%\network\admin\sqlnet.ora
        
        <h1>sqlnet.ora Network Configuration File: C:\app\oracle\product\xe18c\dbhomeXE\NETWORK\ADMIN\sqlnet.ora</h1>
        
        <h1>Generated by Oracle configuration tools.</h1>
        
        <h1>This file is actually generated by netca. But if customers choose to</h1>
        
        <h1>install "Software Only", this file wont exist and without the native</h1>
        
        <h1>authentication, they will not be able to connect to the database on NT.</h1>
        
        SQLNET.AUTHENTICATION_SERVICES= (NTS)
        
        NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
        
        C:\Users\jlchi_000>type %ORACLE_HOME%\network\admin\tnsnames.ora
        
        <h1>tnsnames.ora Network Configuration File: C:\app\oracle\product\xe18c\dbhomeXE\NETWORK\ADMIN\tnsnames.ora</h1>
        
        <h1>Generated by Oracle configuration tools.</h1>
        
        XE =
          (DESCRIPTION =
            (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
            (CONNECT_DATA =
              (SERVER = DEDICATED)
              (SERVICE_NAME = XE)
            )
          )
        
        XEPDB1 =
          (DESCRIPTION =
            (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
            (CONNECT_DATA =
              (SERVER = DEDICATED)
              (SERVICE_NAME = XEPDB1)
            )
          )
        
        ORACLR_CONNECTION_DATA =
          (DESCRIPTION =
            (ADDRESS_LIST =
              (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
            )
            (CONNECT_DATA =
              (SID = CLRExtProc)
              (PRESENTATION = RO)
            )
          )
        
        C:\Users\jlchi_000>
        
        ====> Agora pro 18c :
        
        C:\Users\jlchi_000>type o18c.bat
        SET ORACLE_SID=ORCL18c
        SET ORACLE_HOME=c:\app\oracle18c\product\dbhome
        SET PATH=%ORACLE_HOME%\BIN;%PATH%
        
        C:\Users\jlchi_000>o18c.bat
        
        => ó o LISTENER que eu configurei no netca pra ser criado com OUTRO NOME (repito, não é obrigatório mas eu gosto) E usando OUTRA PORTA DE REDE, no caso a 1535 :
        
        C:\Users\jlchi_000>type %ORACLE_HOME%\network\admin\listener.ora
        
        <h1>listener.ora Network Configuration File: C:\app\oracle18c\product\dbhome\NETWORK\ADMIN\listener.ora</h1>
        
        <h1>Generated by Oracle configuration tools.</h1>
        
        LISTENER18C =
          (DESCRIPTION_LIST =
            (DESCRIPTION =
              (ADDRESS = (PROTOCOL = TCP)(HOST = Dell15Rse)(PORT = 1535))
              (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1535))
            )
          )
        
        SID_LIST_LISTENER18C =
          (SID_LIST =
            (SID_DESC =
              (SID_NAME = CLRExtProc)
              (ORACLE_HOME = C:\app\oracle18c\product\dbhome)
              (PROGRAM = extproc)
              (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle18c\product\dbhome\bin\oraclr18.dll")
            )
          )
        
        ==> legal ?? o SQLNET.ORA tá default ...
        
        C:\Users\jlchi_000>type %ORACLE_HOME%\network\admin\sqlnet.ora
        
        <h1>sqlnet.ora Network Configuration File: C:\app\oracle18c\product\dbhome\NETWORK\ADMIN\sqlnet.ora</h1>
        
        <h1>Generated by Oracle configuration tools.</h1>
        
        <h1>This file is actually generated by netca. But if customers choose to</h1>
        
        <h1>install "Software Only", this file wont exist and without the native</h1>
        
        <h1>authentication, they will not be able to connect to the database on NT.</h1>
        
        SQLNET.AUTHENTICATION_SERVICES= (NTS)
        
        NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
        
        ==>> MAS o tnsnames.ora não está default : para que um database cseja registrado Automaticamente num listener de uma porta não-default, TEM que estar preenchido o parâmetro de LOCAL_LISTENER, e por facilidade eu ADICIONEI uma entrada apontando pro endereço do listener 18c :
        
        c:\Users\jlchi_000>type %ORACLE_HOME%\network\tnsnames.ora
        O sistema não pode encontrar o arquivo especificado.
        
        c:\Users\jlchi_000>type %ORACLE_HOME%\network\admin\tnsnames.ora
        
        <h1>tnsnames.ora Network Configuration File: c:\app\oracle18c\product\dbhome\NETWORK\ADMIN\tnsnames.ora</h1>
        
        <h1>Generated by Oracle configuration tools.</h1>
        
        ORCL18C =
          (DESCRIPTION =
            (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1535))
            (CONNECT_DATA =
              (SERVER = DEDICATED)
              (SERVICE_NAME = orcl18c)
            )
          )
        
        LISTENER_ORCL18C =
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1535))
        
        ORACLR_CONNECTION_DATA =
          (DESCRIPTION =
            (ADDRESS_LIST =
              (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1529))
            )
            (CONNECT_DATA =
              (SID = CLRExtProc)
              (PRESENTATION = RO)
            )
          )
        
        PDB2 =
          (DESCRIPTION =
            (ADDRESS_LIST =
              (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1535))
            )
            (CONNECT_DATA =
              (SERVICE_NAME = pdb2)
            )
          )
        
        PDB1 =
          (DESCRIPTION =
            (ADDRESS_LIST =
              (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1535))
            )
            (CONNECT_DATA =
              (SERVICE_NAME = pdb1)
            )
          )
        
        c:\Users\jlchi_000>
        
        => ó o parâmetro no database :
        
        SYSTEM@ORCL18c>show parameter listener
        
        NAME                                 TYPE        VALUE
        
        <hr />
        
        forward_listener                     string
        listener_networks                    string
        local_listener                       string      LISTENER_ORCL18C
        remote_listener                      string
        SYSTEM@ORCL18c>show parameter local_listener
        
        NAME                                 TYPE        VALUE
        
        <hr />
        
        local_listener                       string      LISTENER_ORCL18C
        SYSTEM@ORCL18c>exit
        Desconectado de Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
        Version 18.3.0.0.0
        
        c:\Users\jlchi_000>tnsping LISTENER_ORCL18C
        
        TNS Ping Utility for 64-bit Windows: Version 18.0.0.0.0 - Production on 09-ABR-2019 14:56:47
        
        Copyright (c) 1997, 2018, Oracle.  All rights reserved.
        
        Arquivos de parâmetros usados:
        c:\app\oracle18c\product\dbhome\network\admin\sqlnet.ora
        
        Usado o adaptador TNSNAMES para resolver o apelido
        Tentativa de contatar (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1535))
        OK (30 ms)
        
        c:\app\oracle18c\product\dbhome>

        ===> Blz ??? Então, minha Recomendação é : FAÇA os .BAT de setting de ambiente, abra um prompt de comando e sete o ambiente pra cada um dos bancos, e veja como está configurado teu XE e teu 18C, se não estiver como o meu faça as correções necessárias….

        []s

        Chiappa

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