Pular para o conteúdo
Visualizando 9 posts - 1 até 9 (de 9 do total)
  • Autor
    Posts
  • #96681
    invoid
    Participante

      Olá! Tenho um banco de dados que contém algumas tabelas que foram modificadas pelo usuário. É um banco para testes. Preciso pegar algumas tabelas deste banco e transferir para o banco de produção. O cliente quer que no banco de produção estas tabelas contenham os mesmos dados do banco de testes.

      Estou fazendo alguns testes em outro banco antes de fazer em produção.

      Já tentei exportar as tabelas, truncá-las no banco de destino e depois importar, mas não consigo executar o truncate por conta das chaves, pois não posso apagá-las já que estão sendo referenciadas por outras tabelas.

      Enfim, tem jeito de resolver isto?

      #96682
      Peterson
      Participante

        Acho q se você criar um dblink entre os dois bancos e depois criar a tabela com um CREATE TABLE AS SELECT resolve…

        #96683
        Avatar photoRegis Araujo
        Participante

          Opa..!

          Qual a versão do banco que vc esta gerando o backup e realizando o import ??

          Se for 10g ou superior, vc pode fazer o import com METADATA_ONLY e depois fazer o import com DATA_ONLY, ou seja, no METADATA_ONLY ele importa apenas os CREATEs .. e no DATA_ONLY ele importa apenas os dados para estas tabelas..!!

          A disposição.

          #96684
          invoid
          Participante

            É um 10.2.0.4. O que ocorre é que só dar um “append” nos dados não resolve. Eu precisaria remover os dados que já estão nas tabelas e populá-las com os novos dados. Nessa remoção é que eu sobro por conta dos dados que têm vínculos com outras tabelas. 🙁

            #96685
            Avatar photoRegis Araujo
            Participante

              Opa..!

              Vou falar uma coisa q nunca deve ser feita..

              Mas no seu caso.. desabilita as constraints e faz os deletes..!!

              Depois reimporta os dados.. mas tenha em mente.. q fazendo isto.. vc vai perder o relacionamento dos dados.. pois creio que os novos dados não tem nada haver com os dados antigos.. e as tabelas filhas ficarão sem referencias, ou seja, suas FK´s destas tabelas não terão relacionamento….!!

              Agora a duvida é pq vc quer fazer isto em produção.. deletar todo o conteudo de uma tabela “PAI” e reinserir outros dados.. isto é completamente desaconselhado..!

              Abraços..!

              #96687
              invoid
              Participante

                Um cliente que solicitou… Estou vendo na realidade se há possibilidades de se fazer isto de forma segura. Desabilitar as constraints, apagar e ter o banco inconsistente, eu não faço não. É algo que beira o suicídio. hehehehe

                Valeu !!!!!

                #96688
                CleitonHanzen
                Participante

                  Opá…

                  Acho que as palavras “desabilitar constraint” e “truncate” não combinam bem com “produção”….

                  Se for uma única vez que você vai fazer esse processo, te recomendo voltar esta tabela para outro owner e fazer um “merge”…

                  Caso for rotineiro, é complicado….não vejo muita solução a não ser uma “mineração” dos dados necessários….talvez fazer via dblink e inserir somente registros novos….

                  Ah e no caso de “truncate” não basta “desabilitar constraint”, é necessário dropar a constraint e criar novamente…

                  #96723
                  jspaulonci
                  Participante

                    invoid

                    O que o Cleiton disse é de muita sabedoria no nosso meio, ja que vai fazer isso, tente relacionar o máximo de tabelas possíveis para mante-las todas sincronizadas,.

                    #96734
                    invoid
                    Participante

                      Me explicaram melhor o que ocorreu… Por um erro interno em uma rotina, dados foram apagados. Não existe mais atualizações sendo feitas no módulo que utiliza essas tabelas, então, mesmo que estes dados sejam apagados, quando estas tabelas forem repopuladas eles estarão lá novamente.

                      Isto será feito primeiro em uma base de testes, se der tudo certo, será executado em produção.

                      Diante destes dados, o que me dizem?

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