Os Grupos de Disponibilidade podem substituir a replicação transacional?

8

Eu estive analisando os novos recursos do SQL Server 2012 e como ele pode ajudar minha situação atual.

Atualmente, estamos no SQL Server 2008 R2 e replicamos os bancos de dados de dois servidores OLTP em um único servidor de relatório via replicação transacional. Em seguida, usamos esses bancos de dados replicados para gerar relatórios.

Estou interessado em saber se o SQL Server 2012 e os Grupos de Disponibilidade podem substituir isso - então, em vez de replicação transacional, eu usaria os novos grupos de disponibilidade e espelharia os bancos de dados dos dois servidores OLTP no servidor de relatórios - onde os relatórios poderão para acessar as réplicas somente leitura.

Não tenho certeza se isso vai funcionar bem, ou mesmo.

Gostaria de me afastar da replicação, pois causa problemas na minha estratégia de implantação (usando o VSDBCMD.exe). Eu também gostaria de evitar atrasos na reinicialização da replicação em bancos de dados grandes.

Alguém tem bons exemplos ou experiência com isso? É possível espelhar com réplicas legíveis de vários servidores para um único servidor, conforme o espelhamento normal nas versões inferiores?

Isso foi originalmente solicitado aqui: /programming/10415225/mirroring-and-availability-groups-in-sql2012 Desculpe, acho que ainda não posso migrar perguntas.

Meff
fonte

Respostas:

10

Passei da minha resposta no StackOverflow , apenas para impedir que outras pessoas gastem esforços no mesmo tipo de resposta.

Pessoalmente, acho que isso funcionará muito melhor do que a replicação transacional, embora eu não tenha feito nenhuma comparação formal das duas em um cenário de migração real. Eu sei que, com a quantidade de problemas que as pessoas têm com a replicação transacional, em comparação com o espelhamento padrão (e essa é uma atualização disso), você certamente terá menos problemas.

O maior benefício é que o secundário pode ser marcado como somente leitura - para que você possa executar todos os relatórios que desejar e não afetará o espelhamento. Você só precisa do tempdb mais robusto (já que ele essencialmente usa o rcsi para fazer isso).

É claro que você precisa estar ciente de que os dois lados do AG precisam ser totalmente licenciados para usar a réplica para operações somente leitura. E os dois lados precisam estar em execução em versões específicas do Windows (Enterprise ou melhor em 2008 R2 e inferior; Padrão ou melhor em 2012 e acima) porque exigem clustering de failover - as instâncias SQL nos AGs não precisam ser agrupadas, mas eles precisam estar sentados em cima dessa infraestrutura no sistema operacional.

Aaron Bertrand
fonte
Graças Aaron, eu vou deixá-la aberta para outras respostas como eu estou esperando para ter mais opinião aqui do Stack Overflow :)
Meff
Não se preocupe, eu meio que suspeitei que é por isso que você repetiu aqui, e não estava tentando reprimir isso. Apenas tentando ajudar a reduzir o esforço.
Aaron Bertrand
Apenas pensei em salientar que o Windows Server 2012 não requer a edição Enterprise para cluster de failover. Agora está disponível no padrão.
SomeGuy
@SomeGuy é verdade, mas não é porque eles tiraram a Enterprise Edition e se formaram no Standard? As quatro edições do Windows Server 2012 são DataCenter, Standard (costumava ser Enterprise), Essentials (costumava ser SBS) e Foundations (parece semelhante à Web?).
Aaron Bertrand
7

Vantagens da replicação transacional sobre os grupos de disponibilidade para cargas de trabalho de relatório

Como um contraponto à resposta acima, aqui estão alguns motivos pelos quais a replicação transacional pode ser uma solução melhor que os grupos de disponibilidade para cargas de trabalho de relatório.

  • Você pode replicar um subconjunto de tabelas no banco de dados. As réplicas do grupo de disponibilidade são sempre o banco de dados inteiro. Se algumas tabelas contiverem informações confidenciais, o acesso à auditoria será mais fácil se todos os relatórios forem feitos em um banco de dados que não inclua essas informações.
  • Você pode filtrar as linhas que são replicadas, fornecendo um bom nível de granularidade. Por exemplo, você pode replicar informações específicas de departamentos em vários servidores de relatórios departamentais, cada um tendo acesso apenas a suas informações.
  • Você pode ter uma estratégia de indexação completamente diferente entre o editor e o assinante. Com os Grupos de disponibilidade, os índices são os mesmos e, embora as estatísticas sejam criadas na réplica e armazenadas no tempdb, mas você não pode ajustar a replicação fornecida.
  • Problemas de segurança. Em geral, os usuários de relatórios se conectam diretamente ao banco de dados usando SSMS, acessam ou excel e você deseja restringir o acesso deles apenas ao banco de dados de relatórios.

Se nenhum desses problemas for grande, os Grupos de Disponibilidade podem ser a melhor escolha.

StrayCatDBA
fonte