none
Unir dados de 2 bases de dados (Antigo + Operação) SQL Server Express RRS feed

  • Pergunta

  • Bom dia Pessoal,

    Estou com uma necessidade, meu problema é o seguinte: temos um sistema que grava as informações em Banco de dados SQL Express 2012,  é sabido que esta versão tem o limite de 10 GB por Banco. Hoje  sempre que este banco 'enche' criamos um novo banco de dados e copiamos apenas as tabelas de configurações e cadastros. Então se precisamos de gerar relatórios de daos antigos não conseguimos de imediato, tenho que parar o sistema apontar para o banco antigo para buscar estas informações. Estamos em processo para adquirir uma licença do SQL Standard, para não termos mais que realizar esta operação, no  entanto gostaria de saber se consigo unir os dados dos 2 banco em um só, o Antigo + Operacional, para que possamos ter acesso a todos os dados. Como este banco cada informação gerada é gravada na tabela Devices em uma linha e cada linha possui uma chave primaria que vai sendo criada conforme os dados vão sendo escritos, quando criamos um novo banco estas chaves voltam a ser criadas do 1 (1,1), e quando tento importar ou exportar dados de desta referida tabela de um banco para a mesma tabela em outro banco não consigo, creio eu pela duplicidade das chaves. Existe algum em método que eu consiga fazer processo??? 

    segunda-feira, 27 de março de 2017 14:45

Respostas

  • Boa tarde Otávio,

    Creio que seja possível sim fazer esta migração.

    Porém será necessário um grande conhecimento de todas as tabelas e suas dependências para este feito.

    Pois alterando a PK de uma tabela, terá que alterar todas as FKs de outras tabelas onde ela possui vínculo e fazer a carga.

    Possível é, mas será bem trabalhoso e exigirá bastante validação dos dados. É um esforço que deve ser medido se realmente vale a pena.

    Caso a base histórica sirva apenas para relatórios, sugiro criar DB Links para acessá-la nas querys dos relatórios, e com a licença nova, deixe a base atual virar a oficial e com o tempo cada vez menos será utilizada a base antiga.

    Abraço.

    segunda-feira, 27 de março de 2017 15:07

Todas as Respostas

  • Boa tarde Otávio,

    Creio que seja possível sim fazer esta migração.

    Porém será necessário um grande conhecimento de todas as tabelas e suas dependências para este feito.

    Pois alterando a PK de uma tabela, terá que alterar todas as FKs de outras tabelas onde ela possui vínculo e fazer a carga.

    Possível é, mas será bem trabalhoso e exigirá bastante validação dos dados. É um esforço que deve ser medido se realmente vale a pena.

    Caso a base histórica sirva apenas para relatórios, sugiro criar DB Links para acessá-la nas querys dos relatórios, e com a licença nova, deixe a base atual virar a oficial e com o tempo cada vez menos será utilizada a base antiga.

    Abraço.

    segunda-feira, 27 de março de 2017 15:07
  • Deleted
    segunda-feira, 27 de março de 2017 17:27
  • Elton muito obrigado pela atenção.

    Deixa eu ver se entendi; caso eu CONSIGA fazer este DB links, minhas querys do software irão pesquisar nas tabelas de ambos bancos (antigo + operacional) automaticamente? Por que caso tenha que altera-las já não conseguiria, por que é software de terceiro e não tenho acessos ao codigo fonte.

    Desculpa pelas perguntas sucessivas, por que tenho pouco conhecimento sobre.

    Mais uma vez obrigado, pela atenção.

    segunda-feira, 27 de março de 2017 20:46
  • Obrigado pela Atenção José!!

    Bom de qualquer forma estou procurando alternativas, até que esta compra de licença se concretize.

    Vou pesquisar um pouco mais e ver se consigo fazer estes procedimentos que me informaram. ajudou bastante abriu meu leque de opções.

    segunda-feira, 27 de março de 2017 20:50
  • Otávio,

    Com base na resposta do Elton, tecnicamente podemos dizer que isso é possível, mas vai depender justamente de como a sua aplicação esta desenvolvida, principalmente de como o acesso aos bancos de dados estão sendo realizados.

    Outro detalhe a nível de SQL Server não fazemos referências a DB Links e sim Linked Servers, ambos as nomenclaturas fazem referência a mesma coisa, mas por questões de produto e técnicas são formas distintas ainda mais se levarmos em consideração ambientes SQL Server, Oracle ou MySQL.

    Qual é a maneira que a sua aplicação esta realizando acesso ao seu banco de dados? Uma possibilidade seria apresentar em alguma tela ou ferramenta dentro da aplicação a capacidade de "trocar de banco de dados".


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    terça-feira, 28 de março de 2017 00:24