locked
Always On - Performance RRS feed

  • Pergunta

  • Pessoal, Tenho a seguinte dúvida.

    Vou montar o Always On no SQL Server 2016. Para isso tenho dois servidores, onde terei uma instância em casa  servidor.

    As bases da instância 1 que está no servidor 1 vou replicar na instância 2 que está no servidor 2

    As bases da instância 2 que está no servidor 2 vou replicar na instância 1 que está no servidor 1

    Para isso vou ter 1 AG para cada instância.

    DÚVIDA: Os arquivos de dados e Logs das bases da instâcia 1 (Server 1) quem estarão na instância 2(Server 2) podem estar na mesma unidade de disco, ou seja, os arquivos da replica da instância 1 podem estar concorrendo com os arquivos da instância 2 nas mesmas unidades de disco?

    Obrigado

    Marcos.  

     

    terça-feira, 17 de outubro de 2017 12:51

Respostas

  • Ola Marcos,

    Se sua duvida eh se isso pode ser feito, a resposta eh sim, pode! Se seria a melhor pratica eh outra historia. Provavelmente voce quer balancear a carga entre os servidores, correto?

    O que voce possui mais no ambiente? Leitura ou Escrita? Se for leitura, voce consegue otimizar habilitando o secundario para leitura, criando as routing lists e configurando a aplicacao para tal. 

    O Availability Groups eh justamente para situacoes de desastre, entao pense que em qualquer caso que um dos seus servidores falharem, um deles tera que assumir 100% da carga e para isso voce precisa prever que precisara de mais memoria e cpu por exemplo. Porque nao ja comecar correto com o hardware que acomode todos os AG's ?

    Atenciosamente,
    Marcos Freccia


    Att,<br/> Marcos Freccia [MVP em SQL Server]<br/> <a href="http://marcosfreccia.wordpress.com">Blog</a>|<a href="http://twitter.com/sqlfreccia">Twitter</a> <br/> Assine também os feeds clicando <a href="http://marcosfreccia.wordpress.com/feed/"> aqui</a>

    quarta-feira, 18 de outubro de 2017 06:13
  • Carlos,

    Peco desculpas caso de fato eu nao esteja respondendo sua questao. De fato eu teria o AG em unico servidor apenas. Se eu problema eh leitura, habilite o secundario para aceitar conexoes e modifique na sua aplicacao para que a mesma possa tirar vantagem dessa feature.

    Fazendo dessa maneira que voce esta querendo, perde-se em minha opiniao todo o sentido do Always On Availability Groups. A funcao do secundario eh justamente essa, estar lah como um secundario e estar pronto para quando seu ambiente precisar ser movido para ele.


    Att,<br/> Marcos Freccia [MVP em SQL Server]<br/> <a href="http://marcosfreccia.wordpress.com">Blog</a>|<a href="http://twitter.com/sqlfreccia">Twitter</a> <br/> Assine também os feeds clicando <a href="http://marcosfreccia.wordpress.com/feed/"> aqui</a>

    quarta-feira, 25 de outubro de 2017 12:14

Todas as Respostas

  • Ola Marcos,

    Se sua duvida eh se isso pode ser feito, a resposta eh sim, pode! Se seria a melhor pratica eh outra historia. Provavelmente voce quer balancear a carga entre os servidores, correto?

    O que voce possui mais no ambiente? Leitura ou Escrita? Se for leitura, voce consegue otimizar habilitando o secundario para leitura, criando as routing lists e configurando a aplicacao para tal. 

    O Availability Groups eh justamente para situacoes de desastre, entao pense que em qualquer caso que um dos seus servidores falharem, um deles tera que assumir 100% da carga e para isso voce precisa prever que precisara de mais memoria e cpu por exemplo. Porque nao ja comecar correto com o hardware que acomode todos os AG's ?

    Atenciosamente,
    Marcos Freccia


    Att,<br/> Marcos Freccia [MVP em SQL Server]<br/> <a href="http://marcosfreccia.wordpress.com">Blog</a>|<a href="http://twitter.com/sqlfreccia">Twitter</a> <br/> Assine também os feeds clicando <a href="http://marcosfreccia.wordpress.com/feed/"> aqui</a>

    quarta-feira, 18 de outubro de 2017 06:13
  • Olá Marcos, 

    Exato, vou balancear as cargas, atualmente tenho um Cluster SQL 2008R2 com 2 NOS, deixo um NO em cada servidor.

    Atualmente as bases das duas instância possuem mais leitura, seguindo sua dica de  habilitar o secundário para leitura, fiquei com dúvida, pois como terei 2 instância uma em cada servidor, quando eu criar os AGs eu terei em cada servidor a replica primaria da instância  mais a replica secundaria da outra instância e vice-versa, não seria melhor deixar as replicas secundarias ficarem sem acessos e as replicas primarias para as operações Leitura e escrita? 

    E o que você quis dizer com "Porque nao ja comecar correto com o hardware que acomode todos os AG's ?".

    você quer dizer que ao invés de deixar um AG em cada servidor, eu movo eles para um único servidor?

    Obrigado pela ajuda.

    quarta-feira, 18 de outubro de 2017 12:09
  • Carlos,

    Em relação ao armazenamento dos arquivos na mesmo unidade ou local não é o mais indicado, ainda mais quando estamos trabalhando com cenários de alta disponibilidade ou contingência.

    Quando estamos trabalhando em ambiente de Cluster, os arquivos que estão sendo acessados por nossos bancos por padrão ficam alocados na unidade de disco que esta sendo acessado pelo NÓ ativo, mas este tipo de cenário vai depender justamente do modelo de implementação de Cluster e SQL Server.

    O Always On é uma outra implementação de soluções de alta disponibilidade disponível a partir da versão 2012 do SQL Server que faz uso dos recursos de Cluster do Windows, amarrando toda lógica e estrutura de cluster para alta disponibilidade do SQL Server de uma maneira totalmente diferente do que era feita quando tínhamos o SQL Server pendurado no Windows Server Cluster fazendo uso por exemplo de discos de Quorun para controle do acesso aos dados, bem como, de como os mesmos estão distribuídos.


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

    quarta-feira, 18 de outubro de 2017 22:48
    Moderador
  • Carlos,

    Na verdade ao criar ao AGs ele será o responsável pelo controle e toda distribuição do que esta sendo utilizado, como também, sendo o elemento responsável em gerenciar em conjunto com o Windows Cluster o processo de failover.


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

    quarta-feira, 18 de outubro de 2017 22:51
    Moderador
  • Obrigado pela resposta Junior,

    Quando eu  falo que os arquivos ficaram nas mesmas unidades eu quero dizer o seguinte:

    No SERVER1 os Arquivos de Dados da replica primaria e os arquivos de dados a replica secudanria do SERVER2 ficaram na unidade E:\ por exempo. 

    E os arquivos de Logs da replica primaria mais os Logs da replica secundaria do SERVER2 ficaram na unidade L:\  e Vice-Versa. 

    Atualmente tenho o seguinte.

    SERVER1 - INSTÂNCIA1 - Que possui 30 databases

    SERVER2 -  INSTÂNCIA2 - Que possui 15 databases.

    A grande questão é no ALWAYS ON, Posso ter duas instância cada uma em um servidor fazendo as replicas secundaria entre si?

    Obrigado


    • Editado CarlosDX quinta-feira, 19 de outubro de 2017 12:05
    quinta-feira, 19 de outubro de 2017 11:40
  • CarlosDX,

    Na verdade a partir do momento em que estamos trabalhando com Always On Availability Groups este controle de armazenamento dos arquivos não pertence a ele mas sim a cada instância que esta envolvida no ambiente de alta disponibilidade, neste caso, os arquivos continuam existindo em cada respectiva instância.


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

    sábado, 21 de outubro de 2017 15:09
    Moderador
  • Carlos,

    Peco desculpas caso de fato eu nao esteja respondendo sua questao. De fato eu teria o AG em unico servidor apenas. Se eu problema eh leitura, habilite o secundario para aceitar conexoes e modifique na sua aplicacao para que a mesma possa tirar vantagem dessa feature.

    Fazendo dessa maneira que voce esta querendo, perde-se em minha opiniao todo o sentido do Always On Availability Groups. A funcao do secundario eh justamente essa, estar lah como um secundario e estar pronto para quando seu ambiente precisar ser movido para ele.


    Att,<br/> Marcos Freccia [MVP em SQL Server]<br/> <a href="http://marcosfreccia.wordpress.com">Blog</a>|<a href="http://twitter.com/sqlfreccia">Twitter</a> <br/> Assine também os feeds clicando <a href="http://marcosfreccia.wordpress.com/feed/"> aqui</a>

    quarta-feira, 25 de outubro de 2017 12:14