Banco de Dados - SQL Server

Introdução ao SQL Server Replication

Este artigo é uma introdução a Replicação de Dados utilizando-se o SQL Server, ao final você poderá escolher qual tipo de replicação e qual edição do SQL Server mais se adapta a sua realidade.

por Cristian Fernandes



Este artigo é uma introdução a Replicação de Dados utilizando-se o SQL Server, ao final você poderá escolher qual tipo de replicação e qual edição do SQL Server mais se adapta a sua realidade.

A ferramenta de replicação do SQL Server permite que a estrutura e os dados de uma determinada base sejam disseminados para outros meios, tais como outros servidores ou dispositivos móveis rodando SQL Server Compact Edition.

Existem diversos cenários onde a replicação é a melhor e mais simples solução para algum problema específico, entre estes cenários citamos dois casos distintos:

Processamento Offline: Se você deseja manipular dados em uma máquina ou dispositivo móvel não conectado, a replicação pode ser utilizada para que o sincronismo seja feito apenas em momentos onde há conectividade.

Redundância: A ferramenta de replicação permite que você construa uma base "espelhada" da base de sua aplicação, o que permite que em algum momento de indisponibilidade ela tome o lugar da base de "produção" sem maiores dificuldades.

Em qualquer cenário de replicação existem dois principais componentes, os Editores( Publishers) e ao Assinantes (Subscribers).

Os Editores disponibilizam seus dados para outros servidores através de Artigos (Articles), um artigo é um objeto em uma base de dados, como por exemplo, VIEWS, TABELAS, e etc.

Os Assinantes consomem os dados dos editores, eles que recebem as atualizações quando há alguma modificação na base Editora. Lembrando que nada impede que uma base de dados seja Assinante e Editora ao mesmo tempo, na verdade isso é frequentemente utilizado.

Esse processo de "meio de campo" entre Editores e Assinantes é feito pelos Agentes(Agents).

O SQL Server suporta três diferentes tipos de replicação, Snapshot, Transactional e Merge Replication.O objetivo deste artigo é dar uma breve explicação sobre cada um deles para que você possa escolher qual tipo é mais adequado à sua realidade.

Snapshot Replication: Como o próprio nome já sugere, ele simplesmente tira uma "foto" da base de dados replicada e compartilha essa "foto" com os seus Assinantes, em um processo longo e que consome muitos recursos do servidor, afinal é uma cópia completa de todos os artigos da Publicação, por esse motivo esse tipo de replicação não é utilizado em uma base de dados que sofre freqüentes alterações.

Transactional Replication: A replicação transacional é bem mais flexível do que a Snapshot, quando se trata de uma base de dados que sofre constantes alterações, nesse tipo de replicação o seu Agente monitora a base Editora esperando por alterações e transmite somente essas alterações para os assinantes, de maneira muito mais otimizada e rápida do que a anterior.

Merge Replication: Permite que o Assinante e o Editor efetuem alterações independentes na base de dados, ambas as entidades podem trabalhar desconectadas. No momento do sincronismo (com as bases conectadas obviamente) o Agente de Mesclagem(Merge Agent) checa as alterações feitas na Publicação e em cada um dos Assinantes e mescla as alterações de maneira que os dados fiquem solidificados.Entretanto neste processo de mesclagem podem ocorrer conflitos por diversos motivos, esses conflitos podem ser solucionados facilmente com um algoritmo de resolução de conflitos que determina os dados apropriados a serem mantidos na base.Este tipo de replicação é utilizado frequentemente utilizados em bases de dados SQL Server Compact Edition para dispositivos móveis os quais não estão constantemente conectados ao Editor.

Versões do SQL Server e suas limitações

Se você trabalha com o SQL Server 2005, você deve ficar atento a qual edição se adapta ao tipo de replicação que você necessita, porque em algumas versões há algumas limitações desta ferramenta como podemos ver a seguir.

Express Edition: Serve apenas como Assinante, não podendo Publicar nada.

WorkGroup Edition: É limitado, pode servir para apenas 5 Assinantes com Transactional Replication e até 25 Assinantes com Merge Replication.

Standard Edition: Possui todas as funcionalidades de replicação ativadas.

Enterprise Edition: É a ferramente mais poderosa, é capaz de interagir fazendo replicação de dados tanto com SQL Server quanto com Oracle.

Agora basta escolher qual tipo de replicação e qual edição do SQL Server 2005 mais se encaixa na sua realidade de aplicações e mãos a obra.

Espero ter contribuído e abraços,

Cristian Fernandes

Cristian Fernandes

Cristian Fernandes - Desenvolvedor de sistemas Web desde 2003 utilizando ASP e .NET, trabalha também com dispositivos móveis(Pocket PC e PALM) desde 2005 com C, C++ e C#.
Graduando em Ciência da Computação pela UNISINOS-RS.
Atualmente trabalha como desenvolvedor na empresa Pmweb de Porto Alegre.