- Este tópico contém 8 respostas, 5 vozes e foi atualizado pela última vez 15 anos, 4 meses atrás por
invoid.
-
AutorPosts
-
1 de novembro de 2010 às 6:58 pm #96681
invoid
ParticipanteOlá! 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?
1 de novembro de 2010 às 7:22 pm #96682Peterson
ParticipanteAcho q se você criar um dblink entre os dois bancos e depois criar a tabela com um CREATE TABLE AS SELECT resolve…
1 de novembro de 2010 às 7:23 pm #96683Regis Araujo
ParticipanteOpa..!
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.
1 de novembro de 2010 às 8:17 pm #96684invoid
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. 🙁
1 de novembro de 2010 às 8:34 pm #96685Regis Araujo
ParticipanteOpa..!
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..!
1 de novembro de 2010 às 8:41 pm #96687invoid
ParticipanteUm 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 !!!!!
1 de novembro de 2010 às 8:51 pm #96688CleitonHanzen
ParticipanteOpá…
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…
4 de novembro de 2010 às 1:29 pm #96723jspaulonci
Participanteinvoid
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,.
4 de novembro de 2010 às 4:14 pm #96734invoid
ParticipanteMe 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?
-
AutorPosts
- Você deve fazer login para responder a este tópico.