Pular para o conteúdo
  • Este tópico contém 8 respostas, 3 vozes e foi atualizado pela última vez 16 anos, 1 mês atrás por airoosp.
Visualizando 9 posts - 1 até 9 (de 9 do total)
  • Autor
    Posts
  • #92306
    airoosp
    Participante

      Boa tarde,

      Fiz as configurações dos arquivos listerner.ora, tnsnames.ora, sqlnet.ora e do arquivo init….ora com o nome da conexão ODBC que foi criada para acessar o Sql Server.
      Criei o database link mas no momento de fazer a conexão o Oracle 9i exibe a mensagem “ORA-12505: TNS:Listerner could not resolve SID given in correct descriptor.”

      Alguém já fez a configuração para o Oracle acessar tabelas do Sql Server? Além dos itens acima é necessário fazer mais alguma configuração?

      Obrigado.

      Airton

      #92308
      burga
      Participante

        Já reiniciou o listener?

        Poste o conteúdo do listener.ora, do tnsnames.ora e do init[nome_da_conexao_odbc].ora aqui que talvez a gente possa ajudar mais sem ter que adivinhar…

        #92315
        airoosp
        Participante

          Segue abaixo os arquivos que foram alterados:

          LISTERNER.ORA

          LISTENER =
          (DESCRIPTION_LIST =
          (DESCRIPTION =
          (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
          )
          (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = TESTEBD)(PORT = 1521))
          )
          )
          )

          SID_LIST_LISTENER =
          (SID_LIST =
          (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = e:oracleora92)
          (PROGRAM = extproc)
          (ENVS = “EXTPROC_DLLS=ANY”)
          )
          (SID_DESC =
          (GLOBAL_DBNAME = ORCL)
          (ORACLE_HOME = e:oracleora92)
          (SID_NAME = ORCL)
          )
          (SID_DESC =
          (GLOBAL_DBNAME = ORCLREST)
          (ORACLE_HOME = e:oracleora92)
          (SID_NAME = ORCLREST)
          )
          (SID_DESC =
          (GLOBAL_DBNAME = ctginst1)
          (ORACLE_HOME = e:oracleora92)
          (SID_NAME = ctginst1)
          )
          (SID_DESC =
          (SID_NAME = ACESSO1)
          (ORACLE_HOME = e:oracleora92)
          (PROGRAM = hsodbc)
          )
          )

          TNSNAMES.ORA

          ACESSO1 =
          (DESCRIPTION =
          (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.5.14)(PORT = 1521))
          )
          (CONNECT_DATA =
          (SID = ACESSO1)
          (HS=OK)
          )
          )

          SQLNET.ORA

          SQLNET.ORA Network Configuration File: e:oracleora92networkadminsqlnet.ora

          Generated by Oracle configuration tools.

          SQLNET.AUTHENTICATION_SERVICES= (NTS)

          NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)

          initACESSO1.ORA

          This is a sample agent init file that contains the HS parameters that are

          needed for an ODBC Agent.

          #

          HS init parameters

          #
          HS_FDS_CONNECT_INFO = ACESSO1
          HS_FDS_TRACE_LEVEL = off
          #

          Environment variables required for the non-Oracle system

          #
          #set =

          Há alguma configuração errada? Será que pode ser a versão do driver ODBC para o Sql Server?

          Obrigado.

          Airton

          #92318
          burga
          Participante

            ACESSO1 =
            (DESCRIPTION =
            (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.5.14)(PORT = 1521))
            )
            (CONNECT_DATA =
            (SID = ACESSO1)
            (HS=OK)
            )
            )

            O HOST que você definiu aí é o do Oracle ou do SQL Server? tente colocar TESTEBD (host do seu banco Oracle).

            O restante, aparentemente está correto.

            Dê um lsnrctl stop e start

            se der algum erro poste aqui, senão dê um tnsping acesso1 e veja se o TNS está OK.

            #92320
            airoosp
            Participante

              O IP do host é o servidor onde o Oracle e o Sql Server estão instalados.

              O listerner foi reiniciado, o tnsping funciona.

              Ao executar o comando abaixo o Oracle exibe o erro:

              select * from cliente@acesso_sql

              ORA-12505: TNS:Listerner could not resolve SID given in correct descriptor.

              No database link utilizei o mesmo usuário/senha que foi criado no Sql Server e que também esta configurado na conexão ODBC.

              Obrigado.

              Airton

              #92349
              jspaulonci
              Participante

                Oi airoosp, você deseja fazer a sua base Oracle enxergar tabelas do Sql Server ?

                Qual é a versão do seu Oracle, do SO onde o Oracle
                Qual é a versão do seu SQL SERVER, do SO onde roda do Sql Server

                Spaulonci

                #92351
                burga
                Participante

                  Mais uma dúvida…

                  O listener.log não aponta nada de diferente? Da pra verificar as ultimas linhas do listener.log após o start do listener pra ver se ele indica mais alguma coisa…

                  #92356
                  airoosp
                  Participante

                    A conexão que estou tentando fazer é o Oracle acessar tabela do SqlServer, segue abaixo informações sobre as versões:

                    Ambiente onde Oracle 9i esta instalado:

                    SO: Windows Server 2003

                    ODBC: Driver ODBC para Microsoft SQL Server versão 03.86.3959

                    Ambiente onde o SqlServer 2005 esta instalado:

                    SO: Windows Server 2003

                    O usuário que foi utilizado na configuração do ODBC é um usuário do banco Sql Server.

                    Obrigado.

                    Airton

                    #92377
                    airoosp
                    Participante

                      Após muitas pesquisas na Internet consegui resolver o problema, segue abaixo a solução.

                      Ambiente utilizando 2 servidores sendo:

                      Server 1 ( Windows Server e instalados Oracle 9i e SqlServer 2005 )
                      Server 2 ( Windows Server e instalado Oracle 9i )

                      No Server 1 é necessário configurar uma conexão ODBC que aponte para o SqlServer utilizando um usuário/senha criado neste banco.
                      Depois alterar o arquivo LISTENER.ORA onde o nome do sid_name deverá ser o nome da conexão ODBC.
                      Além disso é necessário especificar o programa hsodbc no parâmetro PROGRAM.

                      Exemplo do listener.ora:

                      SID_LIST_LISTENER =
                      (SID_LIST =

                      (SID_DESC =
                        (ORACLE_HOME = e:oracleora92)
                        (SID_NAME = ACSQL)
                        (PROGRAM = hsodbc)
                      )
                      

                      .
                      .
                      .

                      Depois fazer uma cópia do arquivo inithsodbc.ora para initNOMEDACONEXAOODBC.ora e após criar o arquivo alterar os 2 parâmetros conforme exemplo abaixo:

                      initACSQL.ora

                      This is a sample agent init file that contains the HS parameters that are

                      needed for an ODBC Agent.

                      #

                      HS init parameters

                      #
                      HS_FDS_CONNECT_INFO = ACSQL
                      HS_FDS_TRACE_LEVEL = NO

                      HS_FDS_TRACE_FILE_NAME = trace1.trc

                      HS_FDS_SHAREABLE_NAME = E:oracleora92ODBC

                      #

                      Environment variables required for the non-Oracle system

                      #

                      No Server 2 é necessário alterar o arquivo TNSNAMES.ORA acrescentado uma chamada para a conexão ao SqlServer conforme example abaixo:

                      ACESSO_SQL =
                      (DESCRIPTION=
                      (ADDRESS=
                      (PROTOCOL=tcp)
                      (HOST=172.17.6.15)
                      (PORT=1521)
                      )
                      (CONNECT_DATA=
                      (SID=ACSQL)
                      )
                      (HS=OK)
                      )

                      Ainda no Server 2 verificar se o parâmetro GLOBAL_NAMES esta com o valor FALSE, se não alterar o parâmetro. Criar um database link utilizando a nova conexão criada no arquivo TNSNAMES.ORA

                      O HS significa heterogeneous services.

                      A partir da versão 10g o HS foi substituido pelo DG4ODBC conforme informação pesquisada na Internet.

                      Obrigado.

                      Airton

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