Pular para o conteúdo
Visualizando 14 posts - 1 até 14 (de 14 do total)
  • Autor
    Posts
  • #103976
    Cleber_df
    Participante

      Boa tarde,
      Estou com o seguinte problema. Possuo o seguinte parfile:

      USERID=”user/senha@dblink”
      TABLES=(PWD.TABLE1,
      PWD.TABLE2,
      PWD.TABLE3)
      TRACE=Y
      STATISTICS=NONE
      CONSTRAINTS=N
      INDEXES=Y
      ROWS=Y
      TRIGGERS=N
      GRANTS=N
      FILE=/u02/pwd.dmp
      LOG=/u02/log/pwd.log

      Tenho uma rotina .sh que executa esse parfile. A questão é a seguinte atualmente ele conecta no banco com o user sys. Criei um outro usuário e concedi os grants de: EXP_FULL_DATABASE, IMP_FULL_DATABASE, FLASHBACK ANY TABLE. Quando executo ele aparece a seguinte mensagem de erro:
      EXP-00056: ORACLE error 1031 encountered
      ORA-01031: insufficient privileges
      EXP-00000: Export terminated unsuccessfully

      Concedi diversos outros grants e não obtive sucesso. Só funciona com a concessão da role de DBA. Alguma dica? Não gostaria de ficar com o user e senha com privilégios de DBA no script. Lembrando que estou usando exp pois se trata de uns scripts legados e como são muitos gostaria de alterar o minimo possivel. Valeu galera.
      [/code]

      #103977
      rman
      Participante

        @Cleber_df

        Só por desencargo, o usuário tem permissão de CONNECT?

        Posta o /u02/log/pwd.log

        #103978
        Cleber_df
        Participante

          Sim. Por desencargo coloquei connect, resource, create session e create table. No pwd.log aparece:

          EXP-00056: ORACLE error 1031 encountered
          ORA-01031: insufficient privileges
          EXP-00000: Export terminated unsuccessfully

          Obrigado

          #103980
          rman
          Participante

            @Cleber_df

            Posta o conteúdo completo do log.

            #103981
            Cleber_df
            Participante

              Este é o conteúdo completo do log ele não grava mais nada.

              Export: Release 11.2.0.1.0 – Production on Thu Jun 28 16:02:40 2012

              Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

              EXP-00056: ORACLE error 1031 encountered
              ORA-01031: insufficient privileges
              EXP-00000: Export terminated unsuccessfully

              #103983
              rman
              Participante

                @Cleber_df

                Qual a versão do oracle e qual SO ?

                Você está usando qual usuário de SO para chamar o script?

                #103984
                Cleber_df
                Participante

                  O usuário de SO é o oracle e a versão do SO é RH 5.6 e a do oracle é 11.2.0.1.0. Quando eu retiro o dblink ele funciona, só com o dblink que ele da erro.

                  #103985
                  rman
                  Participante

                    @Cleber_df

                    Posta o tnsnames.ora

                    #103986
                    Cleber_df
                    Participante

                      Segue o tns. Eu estou conectado no banco dw e o dblink é para o banco prod.

                      DW =
                      (DESCRIPTION =
                      (ADDRESS = (PROTOCOL = TCP)(HOST = serverdw1-vip.dominio.com.br)(PORT = 1521))
                      (ADDRESS = (PROTOCOL = TCP)(HOST = serverdw2-vipdominio.com.br)(PORT = 1521))
                      (LOAD_BALANCE = yes)
                      (FAILOVER = ON)
                      (CONNECT_DATA =
                      (SERVER = DEDICATED)
                      (SERVICE_NAME = serverdw.dominio.com.br)
                      (FAILOVER_MODE =
                      (TYPE = SELECT)
                      (METHOD = BASIC)
                      (RETRIES = 180)
                      (DELAY = 5)
                      )
                      )
                      )

                      PROD =
                      (DESCRIPTION =
                      (ADDRESS = (PROTOCOL = TCP)(HOST = prod1-vip.dominio.com.br)(PORT = 1521))
                      (ADDRESS = (PROTOCOL = TCP)(HOST = prod2-vip.dominio.com.br)(PORT = 1521))
                      (LOAD_BALANCE = yes)
                      (FAILOVER = ON)
                      (CONNECT_DATA =
                      (SERVER = DEDICATED)
                      (SERVICE_NAME = prod.dominio.com.br)
                      (FAILOVER_MODE =
                      (TYPE = SELECT)
                      (METHOD = BASIC)
                      (RETRIES = 180)
                      (DELAY = 5)
                      )
                      )
                      )

                      #103987
                      rman
                      Participante

                        @Cleber_df

                        Não entendi o por que do dblink…

                        No parfile, em USERID=”user/senha@dblink” não deveria ter USERID=”user/senha@DW” ou USERID=”user/senha@PROD” ?

                        É um RAC de dois nós?

                        #103989
                        Cleber_df
                        Participante

                          Bom dia! Sim é o rac de 02 nós. Eu coloquei o dblink só como exemplo, mas na verdade eu uso @prod. Executo essa instrução no banco de dw, faço esse export em produção gravando na máquina de dw e depois realizo o import no dw. Como te falei com a role de DBA funciona perfeito, mas me incomoda o fato de passar user e senha de um usuário com grant de dba em um script. Uma solução seria conectar assim USERID=”/@PROD as sysdba” já me serviria, mas assim também não funciona. O meu problema de privilégio esta ligado diretamente ao dblink haja vista que o usuário criado sem o grant de dba e executando o comando localmente (sem o dblink) funciona perfeitamente. É osso já li muito a respeito e não achei muita coisa as dicas que achei não deram certo. Obrigado pela ajuda

                          #103991
                          rman
                          Participante

                            @Cleber_df

                            Acho que agora eu entendi o que você quis dizer com dblink, não tem nada a ver com o objeto database link do Oracle, você esta se referindo a conexão remota.

                            Primeiro, eu utilizaria o Datapump ao invés do exp. Se mesmo assim você quer usar o exp, eu faria o exp local, depois faria a transferência do dump para a máquina de DW. Se você fizer o dump remoto, você pode ter o gargalo da rede, que pode até comprometer a integridade do dump.

                            #103993
                            Cleber_df
                            Participante

                              Ok rman vou implementar algo do tipo aqui. Muito obrigado pela ajuda.

                              Há braços.

                              #104305
                              Thiago
                              Participante

                                Concordo com o Rman…

                                E caso seu servidor seja um Rac.. antes de colocar o seu parfile, no proprio servidor
                                da um export ORACLE_SID=’SID’ que aí voce nao irá precisar comolocar o @ pra definir em qual banco que deseja entrar

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