SQL Server Replication Passo-a-Passo

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (11)  (1)

Este artigo é uma explicação passo-a-passo de como implementar uma replicação de dados do tipo Merge Replication utilizando o SQL Server 2005 e como “consumi-la” utilizando uma base de dados SQL Server Compact Edition.

 

Este artigo é uma explicação passo-a-passo de como implementar uma replicação de dados do tipo Merge Replication utilizando o SQL Server 2005 e como “consumi-la” utilizando uma base de dados SQL Server Compact Edition.

 

Criando uma Nova Publicação

Primeiramente iremos criar uma base de dados chamada MERCADO, e inserir duas tabelas com um relacionamento simples entre elas nesta base de dados: uma tabela de PRODUTOS e uma outra de CATEGORIAS de Produtos, podemos ver suas respectivas estruturas nas figuras 1 e 2.

 

Figura 1
FIGURA 1

 

Figura 2
FIGURA 2

 

O segundo passo é popular estas duas tabelas para que em um primeiro sincronismo com o “Subscriber” além da estrutura ser criada, já haja uma carga de dados inicial, as tabelas foram populadas manualmente conforme as figuras 3 e 4.

Figura 3
FIGURA 3

 

Figura 4
FIGURA 4

 

Agora sim, estando criada a nossa base de dados, iremos iniciar o processo de publicação desta base. Para isso devemos clicar com o botão direito do mouse em “Local Publications” dentro da pasta “Replication” no Object Explorer, como podemos ver na figura 5.

 

Figura 5
FIGURA 5

 

Se esta for a primeira vez que fizemos uma publicação no nosso servidor SQL ele irá mostrar as telas representadas nas figuras 6, 7 e 8. Estas telas somente aparecerão na primeira vez que uma publicação for feita em nosso servidor.

 

Na figura 6, iremos decidir se este servidor o qual estamos fazendo a publicação vai ser o seu próprio distribuidor ou se vai utilizar um servidor adicional (já configurado para ser distribuidor) para distribuir suas replicações.

Figura 6
FIGURA 6

 

Após, teremos que escolher o local onde ficarão os “Snapshots” gerados pela nossa publicação, é necessário que seja em um diretório publicado no IIS para que se possa obter acesso via rede interna ou até mesmo pela internet. (Figura 7).

 

Figura 7
FIGURA 7

 

A última tela de configuração da distribuição serve para que se possa escolher se o SQL Server Agent inicia automaticamente quando o computador for iniciado ou se você deseja iniciá-lo manualmente, observando que para que o Agent seja iniciado automaticamente, o usuário “SQL Server Service” deve ter permissões de administrador nesta máquina (Figura 8).

 

Figura 8
FIGURA 8.

 

Tendo sido feitas as configurações de distribuição para a nossa replicação, apartir de agora iniciaremos o processo de publicação propriamente dito.

 

Primeiramente devemos escolher a base a qual vai ter seus dados replicados, neste caso a base é “MERCADO” (Figura 9).

 

Figura 9
FIGURA 9

 

Na próxima tela (Figura 10) podemos escolher entre todos os tipos de replicação do SQL Server, logo abaixo há uma descrição sucinta sobre o tipo selecionado (para maiores informações recomendo meu outro artigo “Introdução á SQL Server Replication”). Neste caso escolheremos Merge Replication.

 

Figura 10
FIGURA 10

 

Logo após esta etapa devemos escolher quais tipos de Banco de Dados podem acessar esta publicação (Figura 11).Como o foco do artigo é SQL Server Compact Edition, escolheremos somente este, mas poderíamos escolher juntamente todos os tipos necessários sem problema algum.

Figura 11
FIGURA 11

 

Na próxima tela devemos escolher os artigos (articles) que serão publicados, como só temos duas tabelas na nossa base, e elas têm um relacionamento então selecionaremos as duas tabelas (Figura 12).

 

Figura 12
FIGURA 12

 

A próxima tela é uma espécie de aviso, dizendo que serão adicionados aos campos das tabelas existentes uma coluna nova do tipo uniqueidentifier(Figura 13).

 

Figura 13
FIGURA 13

 

Agora, temos a possibilidade de incluir filtros na publicação, para que sejam publicados apenas os registros que queremos. É possível fazer uma publicação dinâmica, como por exemplo, queremos que determinados produtos vão somente para a base de dados de um determinado vendedor então filtramos pelo HOST_NAME que deve ser único para cada base de dados SQL Server CE, além disso também há a possibilidade de publicar apenas algumas colunas específicas, muito úteis em aplicações Móveis onde o volume de dados deve ser menor, entretanto neste caso não aplicaremos filtros.

 

Depois devemos setar o Snapshot Agent para criar os primeiros Snapshots, neste momento, adicionalmente podemos Schedular horários para que ele gere novos Snapshots(Figura 14).

 

Figura 14
FIGURA 14

 

O último passo para a publicação é a seleção de um nome, neste caso como é a publicação da base MERCADO o nome será PUB_MERCADO.

 

Ao finalizar esta etapa será mostrada uma tela demonstrando o Status da  publicação(Figura 15).

 

Figura 15
FIGURA 15

 

Pronto aí está a nossa publicação criada e pronta para receber assinantes(Figura 16).

 

Figura 16 
FIGURA 16

 

Assinando uma Publicação Existente

Depois que a nossa publicação da base MERCADO foi criada com sucesso, iremos criar uma base de dados SQL Server Compact Edition para ser sua assinante.

 

A base de dados SQL Server CE é apenas um arquivo com a extensão “sdf”, apesar dessa extensão não ser obrigatória é altamente recomendada.

 

Aqui criamos uma base chamada “Mercado_Compact” e não setamos nenhuma senha, mas apenas para fins didáticos, na prática é extremamente necessária uma senha para dar segurança a sua base(Figura 17)

 

Figura 17
FIGURA 17.

 

Após a criação vamos abrir esta base no Microsoft SQL Server Management Studio, para isso selecionamos SQL Server Compact Edition como Server Type e localizamos o nosso arquivo Mercado_Compact.sdf no diretório em que o criamos(Figura 18).

 

Figura 18
FIGURA 18

 

O próximo passo é criar a Assinatura propriamente dita, para isso clicamos com o botão direito na pasta “Subscriptions” dentro de “Replication” e escolhemos a opção “New Subscription”.Note  que temos apenas a opção de Subscription, isso ocorre porque a base de dados SQL Server Compact Edition não possui a opção de Publicação(Figura 19).

Figura 19
FIGURA 19

 

Agora selecionamos a publicação que queremos fazer a assinatura, neste caso é a PUB_MERCADO do servidor Solucoes1(Figura 20).

 

Figura 20
FIGURA 20

 

Depois colocamos um nome na assinatura, aqui colocamos “ASS_MERCADO”, note que há um campo para se setar o HOST_NAME, para que haja filtragem, como não estamos filtrando campo nenhum aqui é desnecessário preenche-lo.(Figura 21)

 

Figura 21
FIGURA 21

 

Depois desta etapa, devemos dizer qual é o diretório virtual onde está a publicação, aqui será a URL: http://10.10.100.140/replication que corresponde ao D:\Replication setado anteriormente no momento da configuração da distribuição.Selecionamos também que iremos nos conectar anonimamente ao Web Server(novamente para fins didáticos OK?)(Figura 22).

 

Figura 21
FIGURA 22

 

Agora teremos que setar os dados para conexão com a base remota, aqui usaremos o usuário “sa” e sua respectiva senha(Figura 23).

 

Figura 23
FIGURA 23

 

Após essas pequenas configurações de acesso, e nos mostrado um breve resumo dos dados de acesso a publicação e são demonstrados dois exemplos de código, um em C# e um em VB.NET para que essas configurações sejam feitas programaticamente, em uma aplicação Windows Mobile por exemplo(Figura 24).

 

Figura 24
FIGURA 24

 

Após essas configurações, criação de publicação e de assinatura, basta que sincronize a assinatura, clicando-se com o botão direito sobre ela e “Syncronize”, pronto pode verificar as  tabelas que tudo estará lá, dados, estrutura e tudo mais.

 

Agora ao se criar um novo registro nesta base SQL Server CE e mandar que seja feito o sincronismo novamente, como um passe de mágica esse registro estará na base publicada e os novos registros incluídos na base publicada estarão disponíveis na base .sdf. Esta é a  Merge Replication, tipo de replicação que mescla dados da publicação e dos assinantes.

 

Espero ter contribuído e abraços,

 

Cristian Fernandes

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?