Esse artigo faz parte da revista SQL Magazine edição 49. Clique aqui para ler todos os artigos desta edição

or=#0000ff size=2>

SQL Server

Replicação com o SQL Server 2005 Express

Saiba como configurar o SQL Server Express em um ambiente de replicação

 

Na maioria de suas instalações, o SQL Server 2005 Express (uma edição grátis do SQL Server 2005 e popularmente chamado de SQL Express) normalmente é utilizado como um banco de dados standalone (local), e devido a isso, passa a falsa impressão de não poder ser integrado com outras edições ou versões do SQL Server ou até mesmo com outros bancos de dados. No entanto, fique certo de que o SQL Express suporta vários tipos de integração, não só com outras edições do SQL Server, mas também com outras plataformas de bancos de dados.

Neste artigo, falaremos como o SQL Server 2005 Express pode ser configurado para atuar como um servidor assinante em um ambiente de replicação SQL Server 2005.

Problema de cópia de dados entre servidores

Um problema muito comum nas médias e grandes empresas está relacionado à movimentação de dados entre ambientes remotos. Vamos utilizar o seguinte cenário como motivação e base para a continuidade deste artigo:

 

“Nossa empresa está precisando disponibilizar, sem gastar mais recursos financeiros, uma cópia de um dos bancos de dados em um outro servidor, ou seja, replicar seus dados. Neste nosso cenário, a sincronização dos dados deve ocorrer de segunda a sexta-feira às 22:00hs. Como solucionar tal problema? Iremos considerar que já temos em nossa empresa uma topologia de replicação SQL Server 2005 configurada, conforme descrito na Listagem 1.”

 

Listagem 1. Configuração do cenário de replicação utilizado neste artigo.

Servidor Publicador (Publisher): SQLLAB\SQL2K5 (SQL Server 2005 Enterprise Edition SP1)

Servidor Distribuidor (Distributor): SQLLAB\SQL2K5

Banco de dados de publicação: AdventureWorks (banco de dados que mantém os dados a serem replicados)

Nome da Publicação: Produtos

Servidor Assinante (Subscriber): WINXPDEV\SQLEXPRESS (SQL Server 2005 Express Edition SP1)

Banco de dados assinante: AdventureWorks (banco de dados no SQL Express que armazenará os dados replicados)

 

Certamente, para estes casos a utilização da tecnologia de replicação disponível no SQL Server 2005 é a melhor solução, no entanto teríamos o problema das licenças, que tornaria essa solução custosa financeiramente. É bastante comum ver as empresas gastando fortunas em licenciamento de outras edições do SQL Server para colocar o servidor para atuar como um assinante. Essa solução não nos agrada. Queremos então analisar se poderíamos usar o SQL Server Express, que é gratuito, para essa finalidade. Seria isso possível?

De imediato, a resposta é SIM. O SQL Express pode atuar como assinante em qualquer tipo de replicação do SQL Server. A principal justificativa para a não utilização do SQL Express para esse problema seria pelo fato de que quando você cria uma assinatura em um servidor assinante onde o distribuidor é o responsável por enviar os dados para o assinante (assinatura do tipo pull subscription, como veremos a continuidade deste artigo), o serviço SQL Server Agent deve ser utilizado para executar os agentes de replicação (responsáveis por manter a sincronização dos dados) que ficam localizados no servidor assinante. Como sabemos, o SQL Express não possui o serviço SQL Server Agent, e esta limitação dificulta sua utilização com este tipo de assinatura.

Sendo assim, neste artigo será mostrado como contornar esta limitação e configurar o SQL Express em uma topologia de replicação utilizando ele como um assinante para uma assinatura onde o assinante é responsável por solicitar os dados de replicação para o distribuidor (conhecido como Pull subscription, como veremos com mais detalhes na seção seguinte). Além disso, será mostrado também como automatizar o processo de sincronização dos dados no SQL Express usando o utilitário Windows Synchronization Manager.

Integração do SQL Express com outros bancos de dados

Uma das maneiras mais simples de integrar o SQL Express com outros bancos de dados é usando a opção de linked server. Um linked server é na verdade uma configuração de nível servidor que permite ativar o SQL Server para executar comandos em servidores remotos usando uma fonte de dados OLE DB. Este servidor remoto pode ser um servidor SQL Server, Access, Oracle ou qualquer outro que possa ser acessado através de uma conexão ODBC.

...

Quer ler esse conteúdo completo? Tenha acesso completo