none
Melhor modo para aplicação com dois databases

    Frage

  • Olá,

    tenho duas empresas rodando um sistema idêntico e gostaria de disponibilizar algumas consultas aos bancos através de um aplicativo mobile. Para isso tenho uma dúvida muito grande em relação ao tipo de estrutura que devo montar.

    Estava pensando em replicar os dados de ambos servidores para um servidor na nuvem e assim ter os dados sincronizados para consultas através do web server.

    Pensei em utilizar uma replicação transacional, sendo que a nuvem receberia dados dos dois bancos.

    Minhas dúvidas são:

    Essa seria a melhor maneira de fazer isso?

    Como os bancos de dados são iguais só muda a empresa, chaves poderão se repetir, conseguiria adicionar uma chave única para diferenciar cada banco de dados na replicação? Eu não posso modificar a estrutura dos bancos que irão publicar dados, mas no que irá receber posso fazer qualquer coisa.

    Obrigado!!

    Montag, 17. Juli 2017 19:31

Alle Antworten

  • Boa Noite,

    A sua intenção de montar outro ambiente para a consulta através do aplicativo mobile é para não sobrecarregar o atual? Você já tem esse ambiente tem esse ambiente na nuvem ou esta pensando em utilizar o Azure Database? Pois é possível montar uma replicação transacional entre os ambientes, desde que as restrições de recursos de alguns recurso no Azure Database não te afetem.

    Apesar da replicação parecer ser uma boa ideia tem que lembrar que um recurso que tradicionalmente é mais complexo e acredite, o troubleshooting não é fácil quando surgem problemas. Eu desconheço as configurações do seu ambiente, mas talvez seja possível desenhar uma solução utilizado o Always On Availability Groups com uma réplica secundária para apenas atender essa parte de consulta Mobile. Em versões anteriores ao SQL Server 2012 também temos o Log Shipping, caso os dados não precisem ser disponibilizados online, pois nessa solução a base montada na outra instancia permite leitura, diferente do database Mirror.


    Att, Bruno Silva.

    Dienstag, 18. Juli 2017 01:41
  • Boa noite,

    se você quer disponibilizar apenas algumas consultas, pq não faz um ETL nas bases dos clientes e já transforma os dados para o modelo das consultas que você deseja disponibilizar no aplicativo? Você pode controlar alterarações com CDC ou se tiver margem de tempo pode programar jobs para cargas incrementais no seu "DW" na nuvem.

    A replicação depende de link do servidores on-premisse e localização da hospedagem na nuvem. Dependendo do seu ambiente, caso seja muito transacional, pode ter impacto significante tb.

    Abs



    Vinicius Fonseca
    MCP | MCTS | MCDBA | MCITP | MCTS | MCT | ITIL Foundation
    CBD CONSULTORIA


    Dienstag, 18. Juli 2017 02:18
  • Boa noite,

    se você quer disponibilizar apenas algumas consultas, pq não faz um ETL nas bases dos clientes e já transforma os dados para o modelo das consultas que você deseja disponibilizar no aplicativo? Você pode controlar alterarações com CDC ou se tiver margem de tempo pode programar jobs para cargas incrementais no seu "DW" na nuvem.

    A replicação depende de link do servidores on-premisse e localização da hospedagem na nuvem. Dependendo do seu ambiente, caso seja muito transacional, pode ter impacto significante tb.

    Abs



    Vinicius Fonseca
    MCP | MCTS | MCDBA | MCITP | MCTS | MCT | ITIL Foundation
    CBD CONSULTORIA


    Vinicius,

    Respeito a sua sugestão, mas acredito que fazer o controle de alterações via CDC seja mais custoso do que utilizar replicação, como também, ficar dependendo da execução de Jobs e cargas ETLs.


    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]

    Dienstag, 18. Juli 2017 23:05
    Moderator
  • Crescorp,

    Vamos lá, vou tentar contribuir.

    No que diz respeito a sincronização dos dados, como atualmente você esta fazendo?

    Em relação a aplicação Mobile, o que exatamente ela deverá acessar?

    Você se referiu a um ambiente em Cloud, talvez seja a mesma coisa que pensar em uma replicação, ao meu ver o que possa ser melhor é ter uma base totalmente hospedada em cloud sendo esta direcionada para aplicação Mobile.

    Mas primeiro gostaria de entender realmente o que você quer disponibilizar e como hoje é feito o processo de sincronização dos 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]

    Dienstag, 18. Juli 2017 23:09
    Moderator
  • Boa noite,

    se você quer disponibilizar apenas algumas consultas, pq não faz um ETL nas bases dos clientes e já transforma os dados para o modelo das consultas que você deseja disponibilizar no aplicativo? Você pode controlar alterarações com CDC ou se tiver margem de tempo pode programar jobs para cargas incrementais no seu "DW" na nuvem.

    A replicação depende de link do servidores on-premisse e localização da hospedagem na nuvem. Dependendo do seu ambiente, caso seja muito transacional, pode ter impacto significante tb.

    Abs



    Vinicius Fonseca
    MCP | MCTS | MCDBA | MCITP | MCTS | MCT | ITIL Foundation
    CBD CONSULTORIA


    Vinicius,

    Respeito a sua sugestão, mas acredito que fazer o controle de alterações via CDC seja mais custoso do que utilizar replicação, como também, ficar dependendo da execução de Jobs e cargas ETLs.


    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]

    De acordo, Junior Galvão. 

    Mas acredito que tudo depende de quão transacional o ambiente é, e se ele precisa que a replicação seja online ou se pode ter um delay.

    Abs


    Vinicius Fonseca MCP | MCTS | MCDBA | MCITP | MCTS | MCT | ITIL Foundation DGA SISTEMAS Se minha resposta for útil, classifique-a. :)

    Dienstag, 18. Juli 2017 23:45
  • Boa noite,

    se você quer disponibilizar apenas algumas consultas, pq não faz um ETL nas bases dos clientes e já transforma os dados para o modelo das consultas que você deseja disponibilizar no aplicativo? Você pode controlar alterarações com CDC ou se tiver margem de tempo pode programar jobs para cargas incrementais no seu "DW" na nuvem.

    A replicação depende de link do servidores on-premisse e localização da hospedagem na nuvem. Dependendo do seu ambiente, caso seja muito transacional, pode ter impacto significante tb.

    Abs



    Vinicius Fonseca
    MCP | MCTS | MCDBA | MCITP | MCTS | MCT | ITIL Foundation
    CBD CONSULTORIA


    Vinicius,

    Respeito a sua sugestão, mas acredito que fazer o controle de alterações via CDC seja mais custoso do que utilizar replicação, como também, ficar dependendo da execução de Jobs e cargas ETLs.


    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]

    De acordo, Junior Galvão. 

    Mas acredito que tudo depende de quão transacional o ambiente é, e se ele precisa que a replicação seja online ou se pode ter um delay.

    Abs


    Vinicius Fonseca MCP | MCTS | MCDBA | MCITP | MCTS | MCT | ITIL Foundation DGA SISTEMAS Se minha resposta for útil, classifique-a. :)

    Vinicius,

    Certo, certo, concordo, fica realmente na dependência do que realmente ele precisa transacionar.


    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]

    Mittwoch, 19. Juli 2017 00:33
    Moderator