Neste artigo será abordado o mecanismo de replicação de dados utilizando o SQL Server. É importante salientar que para realizar este tipo de tarefa utilizaremos o SQL Server 2008 Enterprise Edition, pois a versão Express não disponibiliza recursos necessários para esta função.
O que significa Replicação de Dados?
Replicação é o mecanismo para a criação e manutenção de cópias dos mesmos dados de um servidor para outro(s) ou cópias de dados situados em um mesmo servidor, mas em instâncias diferentes, servindo para sincronizá-los e manter a consistência.
Os principais componentes de Replicação
Publicadores (Publisher): Em poucas palavras, seria o banco de dados que será replicado.
Assinantes (Subscriber): Seria o banco de dados que receberá os dados replicados do Publisher. É importante ressaltar que poderá receber as mudanças de um ou mais Publishers.
Tipos de Replicações
O SQL Server 2008 possui três tipos de replicações, sendo:
Snapshot: neste tipo de replicação é enviada uma cópia completa dos dados em intervalos de tempos determinados pelo administrador do Banco de Dados. Este tipo de replicação exige um grande tráfego de rede, pois envia uma cópia completa dos dados e estruturas do Publisher para o Subscriber. Iremos abordar este tipo de replicação no nosso artigo de hoje.
Transacional: Neste tipo de replicação é realizada quando se deseja propagar mudanças incrementais para os Subscribers. É uma alternativa quando se trata de geração de relatórios um em um ambiente servidor para servidor.
Merge: Utilizada para ambientes móveis, onde ocorre processamento desconectado. O SQL Server tratará as informações para evitar conflitos durante a sincronização dos dados. É muito aconselhada para ambientes onde necessitam que os dados sejam alterados em múltiplos locais.
Como foi dito anteriormente, no nosso caso estaremos utilizando uma instância do SQL Server Enterprise Edition para configurar os Publicadores e outra para os Assinantes. A replicação será feita em um mesmo servidor, mas em instâncias diferentes. Enviaremos os dados da instância THIAGO-NOTE da tabela BD_THECLUB para a instância THIAGO-NOTE\SQLEXPRESS.
Abaixo o Script da Tabela TB_CLIENTE criada na instância THIAGO_NOTE.
CREATE TABLE [dbo].[TB_CLIENTE]
(
[COD_CLI] [int] NOT NULL,
[NOM_CLI] [varchar](50) NULL,
[CNP_CLI] [varchar](20) NULL,
CONSTRAINT [PK_TB_CLIENTE] PRIMARY KEY CLUSTERED([COD_CLI] ASC)
(
[COD_CLI] [int] NOT NULL,
[NOM_CLI] [varchar](50) NULL,
[CNP_CLI] [varchar](20) NULL,
CONSTRAINT [PK_TB_CLIENTE] PRIMARY KEY CLUSTERED([COD_CLI] ASC)
Após criarmos a tabela iremos populá-la com alguns dados, veja imagem abaixo:
Começaremos por aqui, clique em “Replication” e em seguida com o botão direito em “Local Publications” e em seguida escolha “New Publication”, Ver Imagem 03.
![]() |
Figura 03: New Publication Wizard. |
A próxima tela indica nosso tipo de Replicação, no nosso caso estaremos trabalhando com o tipo Snapshot, a imagem 04 ilustra nosso procedimento.
A próxima etapa será de selecionar as tabelas que serão replicadas pelo nosso servidor, como possuímos apenas uma tabela TB_CLIENTE, iremos selecioná-la e logo em seguida clicar em “Next”. Ver Figura 05.
![]() |
Figura 05: Selecionando a tabela. |
Em “Snapshot Agent”, precisamos checar os dois itens. O primeiro indica que irá disparar a uma Réplica dos dados na hora da criação do mesmo, e o segundo possibilita a criação de tarefas para replicação, vejamos a seguir com maiores detalhes:
Clique no botão “Change” e verifiquem a Imagem 07.
Nesta tela temos propriedades importantes como:
- Freqüência: no nosso caso será de uma em uma hora.
- Duração: Intervalo de Datas, que no nosso caso será do dia 01/06/2011 até 01/07/2011.
Clique no botão “Ok” para darmos continuidade ao nosso processo. Verifiquem que voltamos para a tela anterior, clicaremos no botão ”Next”. A próxima etapa serão configuradas algumas questões de segurança, para isto clique no botão “Security Settings”, Ver Imagem 08.
Em Domain\account colocaremos o domínio Thiago-Note e account deixaremos como Thiago, em suma seria o nome do meu computador em seguida meu usuário seguido de senha.
Abaixo colocaremos os dados do SQL Server, clique em “Ok” e em seguida “Next”.
A Imagem 09 indica para Criarmos a Publicação, deixe-a marcada, e o outro item indica para criarmos um Script de nossa publicação, no nosso caso deixaremos desmarcado. Clique em “Next”.
Na Imagem 10 definimos um nome para nossa Publicação, clicamos em “Finish” para finalizarmos nosso processo.
Importante: Notem que foi criado um objeto em “Local Publications” como: [DB_THECLUB]: PublicacaoTheClub, este é o nosso Publicador, ele é responsável pela replicação dos dados da Instância THIAGO-NOTE para THIAGO-NOTE\SQLEXPRESS.
Na instância THIAGO-NOTE\SQLEXPRESS localize o nó “Replication”, neste momento criaremos nosso Assinante, responsável por receber nossa replicação dos dados localizada em nossa Instância Principal. Clique em “Local Subscriptions” e com o botão direito em “New Subscriptions”. Localize nosso “Publisher” e selecione a publicação criada anteriormente, Ver Imagem 11.
Na próxima tela temos duas propriedades importantes, veremos abaixo para melhores detalhes:
![]() |
Figura 12: Tipos de Distribuição. |
- Pull Subscription: onde o servidor que está como Subscriber solicita os dados que devem ser replicados para o Distribuitor.
No nosso caso clique no primeiro item, e em seguida em “Next”. Na próxima fase definiremos a Base de Dados para realizarmos a replicação dos dados e estruturas localizadas na nossa Instância Publicadora, para isto clique em “Subscription Database” e escolha uma base de dados ou crie uma pra realizar esta tarefa.
A nossa base de dados irá se chamar DB_THECLUB_COPIA.
Verifique a Imagem 13.
Logo em seguida faremos a configuração semelhante ao nosso Publicador, como estamos trabalhando em um mesmo computador, mas com instâncias distintas, colocaremos em Domain\Account como: Thiago-Note\Thiago e os dados na Configuração de segurança do SQL Server. Ver Imagem 14.
![]() |
Figura 15: Tipo de Sincronização. |
Logo em seguida criaremos nosso “Subscription” e finalizamos nossa tarefa clicando no botão “Finish”.
Pronto Nossa replicação está criada e configurada. Podemos conferir os dados criados na instância SQL Express, percebam que os dados são uma verdadeira réplica.
Importante: É essencial dar um “Refresh” em nossa Base de Dados para percebemos sua replicação.
Podemos conferir algumas informações importantes clicando em cima dos objetos [DB_THECLUB]:PublicacaoTheClub e escolher a opção “Launch Replication Monitor”, nesta janela aparecerão várias informações referentes a Publicação Criada.
Já na opção, localizada na instância do SQL Express [DB_THECLUB_COPIA] – [THIAGO-NOTE].[DB_THECLUB]: PublicacaoTheClub podemos escolher a Opção “View Synchronization Status”.
Conclusão
Vimos neste artigo poucas das muitas funcionalidades do sistema de Replicação de Dados no SQL Server. Podemos conferir em específico a replicação de dados de um mesmo servidor. Percebemos na facilidade de criar tarefas pertinentes a Replicação de Dados. O SQL Server nos proporciona com seu magnífico Wizard fazer tudo isto sem uma linha de código. Nos demonstra muitas ferramentas para realizar esta tarefa que em apenas um artigo fica difícil descrever todas suas funcionalidades. Fico por aqui, até o mês que vem!
Nenhum comentário:
Postar um comentário