quarta-feira, 17 de abril de 2013

Diferença entre Log Shipping, Mirroring e Replication

Li alguns artigos sobre a diferença entre Log Shipping, Mirroring e Replication e gostaria de compartilhar.
http://www.replicationanswers.com/ReplicationLogShippingMirroring.asp
Difference between Log Shipping, Mirroring and Replication
http://simplesql.blogspot.com.br/2011/01/replication-vs-mirroring-and-what-to.html

Basicamente, o Log Shipping é uma estratégia só de Disaster Recovery, mas não muito eficiente para relatórios ou replicação/distribuição dos dados. Ele nada mais faz do que restaurar em uma outra base os logs de transação periodicamente. Esta base fica com lock exclusivo, então consultas nela só podem ser feitas usando-se nolock (dirty reads) ou isolation level snapshot.
Log Shipping restaura o banco inteiro, inclusive tabelas de sistema, views, procedures etc.

Mirroring também é uma solução para Disaster Recovery e funciona para o banco todo, inclusive dados de sistema. Sua vantagem é que pode ser configurado com failover automático, ou seja, para entrar no ar assim que o servidor principal apresentar algum problema. Sua desvantagem é que não pode ser usado como um banco de dados de relatórios sem o uso de um custoso snapshot, cusando uma certa latência ou restringindo os relatórios a D-1.
Mirroring é a melhor solução para disaster recovery.

Replication é a melhor solução para relatórios com baixa latência e alta performance, distribuição, replicação e integração de dados. Pode ser usado como disaster recovery também, com baixíssima latência, mas não replica dados de sistema, apenas dados de aplicação, e não permite failover automático, necessitando de reconfiguração das aplicações. Portanto Replicação é melhor para os cenários onde você deseja ter uma cópia de uma ou mais tabelas de um banco A em outro banco B para consultas e relatórios mais rápidos, integrações ou mesmo uma replicação em duas vias para bancos de dados distribuídos.

Conclusão: Use Mirroring para Disaster Recovery se seu ambiente permitir. Mesmo assim o backup periódico do transaction log sempre é bem vindo.
Para aquela sua tabela, daquela sua outra aplicação, que precisa puxar ou copiar quase em tempo real os dados de uma tabela de um banco legado, use Replication.

Nenhum comentário:

Postar um comentário

Postagens populares

Marcadores

delphi (60) C# (31) poo (21) Lazarus (19) Site aos Pedaços (15) sql (13) Reflexões (10) .Net (9) Humor (9) javascript (9) ASp.Net (8) api (8) Básico (6) Programação (6) ms sql server (5) Web (4) banco de dados (4) HTML (3) PHP (3) Python (3) design patterns (3) jQuery (3) livros (3) metaprogramação (3) Ajax (2) Debug (2) Dicas Básicas Windows (2) Pascal (2) games (2) linguagem (2) música (2) singleton (2) tecnologia (2) Anime (1) Api do Windows (1) Assembly (1) Eventos (1) Experts (1) GNU (1) Inglês (1) JSON (1) SO (1) datas (1) developers (1) dicas (1) easter egg (1) firebird (1) interfaces (1) introspecção (1) memo (1) oracle (1) reflexão (1)