NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosSQL Server 2005 › Capítulo 08 : 08
Quer receber novidades e e-books gratuitos?
« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »
SQL Server 2005 - CURSO COMPLETO
Autor: Júlio Battisti
Lição 128 - Capítulo 08 - Merge Replication

A principal característica deste tipo de replicação é que alterações podem ser feitas em qualquer uma das réplicas dos dados. As alterações feitas em uma das réplicas serão repassadas para as demais réplicas. O SQL Server 2005 utiliza um mecanismo próprio para resolução de conflitos de replicação.

Ao iniciarmos o processo de replicação, temos uma Snapshot replication na primeira vez que os dados são enviados para um ou mais Subscribers. Na seqüência, o mecanismo de replicação fica monitorando as alterações efetuadas nas diversas réplicas e fica repassando as alterações para as demais réplicas. Não temos a garantia de que todas as réplicas estarão perfeitamente sincronizadas instantaneamente. Porém temos a certeza de que as diversas réplicas irão convergir com o passar do tempo.

O SQL Server 2005 adiciona, automaticamente, um coluna com dados do tipo Identificador Único, às tabelas que fazem parte da replicação. Os valores desta coluna são criados e mantidos pelo mecanismo de replicação do SQL Server.

Know-how em: Os Agentes de Replicação no SQL Server 2005

Pré-Requisitos:

  • Noções sobre replicação.
  • Conhecer o modelo de replicação do SQL Server 2005.
  • Conhecer os tipos de replicação existentes no SQL Server 2005.
  • Fundamentos apresentados na Parte I.

Metodologia:

  • Apresentação dos agentes de replicação existentes no SQL Server 2005.

O suporte à replicação no SQL Server 2005 é feito por um conjunto de agentes, os chamados “SQL Server Replication Agents”. Estes agentes são os responsáveis por fazer com que os dados sejam passados do Publisher para um ou mais Distributors e destes para um ou mais Subscribers. Um agente nada mais é do que um serviço rodando no Windows. A seguir, vamos ver um pouco sobre os agentes existentes no SQL Server 2005.

  • Snapshot agent: Este agente é responsável por criar e distribuir o conjunto de dados a ser replicado do Publisher para o Distributor. Além da definição do conjunto de dados a ser replicado, o Snapshot agent também inclui informações sobre o conjunto de dados (meta dados), as quais são utilizadas pelo Distributor para transferir dados para um ou mais Subscribers. Este agente também mantém informações sobre o andamento da sincronização entre as diversas réplicas.

Na Figura 8.11, temos uma figura retirada do Books OnLine, onde vemos a utilização do Snapshot agent.

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.11 Snapshot Agent em ação.

Os passos a seguir descrevem o funcionamento deste agente.

1. O Snapshot agent é executado no Distributor. Em períodos determinados este agente conecta com o Subscriber e bloqueia os dados das tabelas a serem replicadas, de tal forma que estes dados não podem ser alterados enquanto o agente estiver copiando os dados do Publisher para o Subscriber.

2. Após transferir os dados para o Distributor, o Snapshot agent retira o lock das tabelas no Subscriber, liberando-as para novas alterações. Devido ao lock que é imposto nas tabelas do Subscribers, pode ser necessário que o agente seja configurado para executar fora do horário de expediente normal.

Os dados, que estão no Distributor para serem replicados para um ou mais Subscribers, são referenciados como “os dados do Banco de Dados do Distributor”, ou o termo mais comum em inglês: “The Distributor database”.

  • Distribution agent: Este agente é responsável por enviar os dados a serem replicados, tanto no caso de Snapshot replication quanto no caso de Transaction replication, da base do Distributor para um ou mais Subscribers. Cada Publicação possui o seu próprio Distributor agent. Para Push subscriptions, o Distributor agent roda no Distributor; para Pull subscriptions, o Distributor agent roda no Subscriber.
  • Log Reader agent: É utilizado em replicações do tipo Transactional replication. O trabalho deste agente é capturar as alterações no Log de transações no Publisher, e passar estas transações para o Distributor. Lembrando que apenas Committed transactions é que são replicadas. Cada Banco de Dados, que utiliza Transactional replication, tem o seu próprio Log Reader agent no Publisher.
  • Merge agent: É responsável por sincronizar as alterações entre as diversas réplicas; sincroniza dados nos dois sentidos, entre o Publisher e os Subscribers, passando evidentemente pelo Distributor. Para Push subscriptions, o Merge agent roda no Distributor, para Pull subscriptions, o Merge agent roda no Subscriber. Este agente não é utilizado em Snapshot e Transactional replications.

Agora que já conhecemos a teoria básica sobre replicação no SQL Server 2005, estamos preparados para começar a implementar a replicação na prática.

Know-how em: Configurando a Replicação no SQL Server 2005

Pré-Requisitos:

  • Conceitos teóricos sobre replicação apresentados nos itens iniciais deste capítulo.
  • Conhecer o modelo de replicação do SQL Server 2005.
  • Fundamentos apresentados na Parte I.
  • Saber utilizar o SQL Server Management Studio.

Metodologia:

  • Apresentação dos comandos e assistentes para implementação da replicação.

Técnica:

  • Implementar a replicação no SQL Server 2005.

Vamos configurar a replicação entre as duas instâncias instaladas no nosso servidor. Apenas para lembrar, o nome do servidor que estou utilizando é SERVIDOR e tenho as seguintes instâncias instaladas no mesmo:

  • SERVIDOR\SQL2005
  • SERVIDOR\CURSOSJB

Iremos configurar a instância SERVIDOR\SQL2005 como Publisher e Distributor. Depois, vamos configurar a instância SERVIDOR\CURSOSJB como Subscriber. Lembrando que, na prática, é como se cada instância fosse um servidor SQL Server completamente separado.

Se você não tiver duas instâncias do servidor SQL Server instaladas, não tem problema, pois é possível configurar uma mesma instância como sendo Publisher, Distributor e Subscriber. Esta é uma situação pouco usual, sendo somente indicada para sala de aula, treinamentos ou para um projeto-piloto onde queremos testar a replicação no SQL Server 2005.

Na configuração de um servidor SQL Server para replicação, o primeiro passo é a criação do Publisher e do Distributor. Estes dois passos são executados com a utilização dos assistentes de replicação do SQL Server 2005. Vamos, finalmente, à prática. Uma diferença importante do SQL Server 2005 em relação ao SQL Server 2000, é que no SQL Server 2005, o mesmo assistente que configura a instância como Publisher, também oferece opções para criar um ou mais artigos. Na verdade não tem um assistente específico só para configurar a instância como Publisher. O assistente é para criar uma publicação, já definindo os artigos que farão parte da publicação (faremos um exemplo, logo a seguir, onde criaremos uma publicação e adicionaremos três artigos). Ao criar uma publicação, você já configura a instãncia como um Publisher. A seguir um exemplo prático, passo-a-passo.

Exemplo prático: Configurar a instância SERVIDOR\SQL2005 como Publisher e Distributor:

Para configurar a instância SERVIDOR\SQL2005 como Publisher e Distributor, siga os seguintes passos:

1. Abra o SQL Server Management Studio (Iniciar -> Programas -> Microsoft SQL Server 2005 -> SQL Server Management Studio).

2. Na janela Object Explorer, dê um clique no sinal de mais ao lado da instância SERVIDOR\SQL2005 para expandir esta opção.

3. Nas opções que são exibidas, dê um clique no sinal de + ao lado da opção Replication, para exibir as opções disponíveis. Serão exibidas as opções Publications e Subscriptions at This Server.

4. Para criar uma nova publicaçã clique com o botão direito do mouse na opção Publications e, no menu de opções que é exibido, clique em New Publication... para iniciar o assistente de publicação.

5. Surgirá a tela inicial do assistente, na qual são informadas as ações que o assistente irá ajudá-lo a executar.

6. A primeira tela é apenas informativa. Dê um clique no botão Next, seguindo para a próxima etapa do assistente.

Na segunda etapa devemos selecionar qual o Servidor\instância atuará como Distributor. Podemos utilizar a instância SERVIDOR\SQL2005 como Publisher e também Distributor, ou podemos selecionar um outro Servidor\instância para atuar como Distributor.

Para que possamos selecionar um outro Servidor\instância como Distributor, este já deve ter sido previamente configurado como um Distributor e também deve estar registrado no SQL Server Management Studio.

7. No nosso exemplo, vamos utilizar a instância SERVIDOR\SQL2005 como Publisher e também Distributor. Para isso, deixe a primeira opção selecionada, conforme indicado na Figura 8.12. Ao criarmos um novo Distributor, ao invés de utilizar um já existente, o assistente irá efetuar as configurações necessárias (Distribution database e log), para preparar o servidor selecionado como distributor.

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.12 Definindo um novo Distributor.

8. Dê um clique no botão Next, para seguir para a próxima etapa do assistente.

9. Nesta etapa será definida a pasta onde serão armazenadas cópias dos dados (Snapshots) recebidas do Publisher. Por padrão, é sugerida a seguinte localização:

  • C:\Arquivos de programas\Microsoft SQL Server\MSSQL.1\MSSQL\ReplData

Aqui temos uma questão importante a considerar. Se você usar um caminho do tipo C:\, D:\, etc, não serão suportadas Subscrições do tipo Pull Subscriptions, que são Subscrições onde a iniciativa de transferência dos dados é feita pelo Subscriber (Pull = Puchar, é o Subscriber quem “pucha” as alterações a partir do Distributor). Usando uma caminho local, do tipo C:\ , D:\ , etc, somente serão suportadas Subscrições do tipo Push Subscriptions, que são Subscrições onde a iniciativa de transferência dos dados é feita pelo Distributor (Push = Empurrar, ou seja, é o Distributor que “empurra” os dados para o Subscriber). Para que sejam aceitas subscrições tanto do tipo Pull Subsciptions quanto Push Subscriptions, deve ser utilizado um caminho de rede, como no exemplo a seguir:

  • \\servidor\C$\Arquivos de programas\Microsoft SQL Server\MSSQL.1\MSSQL\ReplData

Observe que utilizamos o caminho de rede e não um drive do tipo C:\. No exemplo, temos o SQL Server instalado no drive C:, o qual é acessado através do compartilhamento administrativo C$. Por padrão, o Windows compartilha a raiz de todos os drives com um nome de compartilhamento Drive$ – C$, D$, E$, etc. Este compartilhamento somente pode ser acessado por usuários com permissão de administrador. Se mantivermos o caminho padrão, o qual utiliza o compartilhamento administrativo, pode ser que agentes rodando em outros servidores não possam acessar este compartilhamento e a replicação venha a falhar. Neste caso, você deve criar manualmente um novo compartilhamento, atribuir as permissões NTFS necessárias e informar o caminho nesta etapa. Na Figura 8.13 temos a tela de aviso que surge quando utilizamos um compartilhamento administrativo do tipo C$.

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.13 Aviso quando utilizamos um compartilhamento administrativo.

Para maiores informações sobre permissões NTFS e permissões de compartilhamento no Windows 2000, consulte o livro “Manual de Estudos Para o Exame 70-217, 752 páginas”, de minha autoria, publicado pela Axcel Books (www.axcel.com.br). Para maiores informações sobre segurança no SQL Server 2005 consulte o Capítulo 6 do presente livro. Para maiores informações sobre permissões NTFS e permissões de compartilhamento no Windows Server 2003, consulte o livro “Windows Server 2003 – Curso Completo, 1568 páginas”, de minha autoria, publicado pela editora Axcel Books (www.axcel.com.br).

O restante do caminho é a pasta onde o SQL Server 2005 é instalado por padrão: Arquivos de programas\Microsoft SQL Server\MSSQL.1\MSSQL\ReplData. Observe que temos a pasta MSSQL.1. Cada instância do SQL Server 2005 é instalada em uma pasta separada.

Não vamos alterar o caminho sugerido.

10. Altere o caminho para usar um caminho de servidor. \\servidor\C$\Arquivos de programas\Microsoft SQL Server\MSSQL.1\MSSQL\ReplData

11. Dê um clique no botão Next, seguindo para a próxima etapa do assistente.

12. Nesta etapa você deve selecionar o banco de dados no qual estão as informações que serão publicadas. Para o nosso exemplo, vamos selecionar o banco de dados AdventureWorks. Selecione o banco de dados AdventureWorks e clique em Avançar, para seguir para a próxima etapa do assistente.

13. Nesta etapa você deve selecionar o tipo de Publicação que será utilizado. Para o nosso exemplo, vamos selecionar Snapshot Publication, conforme indicado na Figura 8.14:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.14 – Selecionando o tipo Snapshot Replication.

15. Dê um clique no botão Next, seguindo para a próxima etapa do assistente.

16. Agora você deve selecionar uma conta de logon que será utilizada pelo agente de Replicação. É fundamental que a conta tenha as devidas permissões na pasta de replicação e de acesso aos dados que estão sendo replicados. Se a conta selecionada não tiver as permissões necessárias, o processo de replicação irá falhar. Para selecionar uma conta clique no botão Security Settings. Clique no botão Security Settings. Será exibida a janela Snapshot Agent Security. Nesta janela você informa a conta e respectiva senha a ser utilizada pelo Snapshot Agent. Dependendo do modo de autenticação que está configurado para a instância do SQL Server 2005, você poderá usar somente contas do Windows ou tanto contas do Windows quanto do SQL Server 2005. Para usar uma conta do SQL Server 2005, você deve marcar a opção Use the following SQL Server login. No nosso exemplo vamos usar uma conta de logon do Windows, conforme exemplo indicado na Figura 8.15:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.15 – Informando a conta de logon para o Snapshot Agent.

17. Informe os dados da conta a ser utilizada e clique em OK, para fechar a janela Snapshot Agent Security.

18. Você estará de volta ao Assistente de Publicação. Dê um clique no botão Next, seguindo para a próxima etapa do assistente.

19. É nesta etapa que você irá definir quais dados serão publicados, ou seja, é nesta etapa que você irá criar um ou mais artigos, os quais farão parte da publicação e serão replicados. No início deste capítulo, você viu que um artigo pode ser uma tabela inteira, pode ser uma View, um Stored Procedure (o que será publicado é o resultado da execução do Stored Procedure), pode ser apenas algumas linhas de uma tabela (filtro horizontal), pode ser apenas algumas colunas de uma tabela (filtro vertical) e pode ser somente algumas linhas com algumas colunas (filtros horizontal e vertical). Para o nosso exemplo, iremos criar os artigos indicados a seguir:

  • Art_Produtos: Este artigo conterá todos os registros da tabela Product.
  • Art_Employee: Este artigo conterá apenas algumas das colunas da tabela Employee, ou seja, aplicaremos um filtro Vertical. Este artigo irá replicar somente os seguintes campos da tabale Employee: EmployeeID, NationalIDNumber, DepartmentID, ManagerID e EmergencyContactID.
  • Art_Redmond: Este artigo será baseado na tabela Person.Address e irá replicar somente os registros onde o campo City=’Redmond”. Ou seja, vamos aplicar um filtro horizontal, para replicar somente as linhas que atendam a um determinado conjunto de critérios, no nosso exemplo: City=’Redmond”.

Vamos então a tarefa de criar os três artigos propostos. Para isso vamos usar a tela do assistente, indicada na Figura 8.16:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.16 – Tela para criação dos artigos que farão parte da publicação.

20. Vamos iniciar pelo artigo Art_Produtos, o qual é o mais simples de ser criado. Clique no sinal de + ao lado da opção Tables, para exibir a lista de tabelas do banco de dados AdventureWorks. Clique na caixa de seleção ao lado da tabela Product, para selecioná-la. Ao selecionar uma tabela, automaticamente, todos os seus campos são selecionados. Isso pode ser comprovado, clicando no sinal de + ao lado da tabela Product. Observe que todos os seus campos foram selecionados. Clique no sinal de – ao lado da tabela Product, para ocultar a lista de campos. Pronto, está criado o artigo Art_Produtos. Como não temos nenhum filtro – nem horizontal e nem vertical – a ser aplicado, está OK o artigo Art_Produtos, o qual irá publicar a tabela Product completa, ou seja, todos os seus campos e todos os seus registros. Vamos para a criação do próximo artigo.

21. Vamos iniciar pelo artigo Art_Employee. Este artigo irá publicar apenas algumas das colunas da tabela Employeee, ou seja, vamos aplicar um filtro vertical. Você deve estar com a opção Tables expandida, com a lista de tableas sendo exibida. Se não estiver sendo exibida a lista de tabelas, clique no sinal de + ao lado da opção Tables. Clique na caixa de seleção ao lado da tabela Employee, para selecioná-la. Ao selecionar uma tabela, automaticamente, todos os seus campos são selecionados. Isso pode ser comprovado, clicando no sinal de + ao lado da tabela Employee. Observe que todos os seus campos foram selecionados. Para o nosso exemplo, iremos somente os seguintes campos devem ficar marcados: EmployeeID, NationalIDNumber, DepartmentID, ManagerID e EmergencyContactID. Certifique-se de que somente estes campos da tabela Employee estejam marcados e desmarque os demais campos. Sua janela deve estar semelhante a indicada na Figura 8.17:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.17 – Aplicando um filgro vertical a tabela Employee.

22. Agora vamos criar o nosso último artigo: Art_Redmond: Este artigo será baseado na tabela Person.Address e irá replicar somente os registros onde o campo City=’Redmond’. Ou seja, vamos aplicar um filtro horizontal, para replicar somente as linhas que atendam a um determinado conjunto de critérios, no nosso exemplo: City=’Redmond”. Clique na caixa de seleção ao lado da tabela Address, para selecioná-la. Ao selecionar uma tabela, automaticamente, todos os seus campos são selecionados. Isso pode ser comprovado, clicando no sinal de + ao lado da tabela Address. Observe que todos os seus campos foram selecionados. Clique no sinal de – ao lado da tabela Address, para ocultar a lista de campos. Nesta etapa não temos mais o que fazer. O critério City=’Redmond’ será aplicado em uma das próximas etapas do assistente.

23. Dê um clique no botão Next, seguindo para a próxima etapa do assistente.

24. Eu fui, propositalmente, para a próxima etapa, para que surgisse a mensagem indicada na Figura 8.18:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.18 – Mensagem informando sobre a replicação dos Schemas.

Esta mensagem informa que um ou mais dos objetos que estão sendo publicados, tem como donos Schemas que não o Schema padrão dbo. A mesagem continua informando que estes Schemas já deverão existir nos Subscribers, caso contrário a replicação não irá funcionar. No nosso exemplo prático criamos três artigos. O artigo Art_Produtos, o qual publica dados da tabela Production.Product, ou seja, da tabela Product, cujo dono é o Schema Production. Para garantir que a replicação irá funcionar, sem problemas, o Schema deverá existir em qualquer Subscriber que seja configurado para receber a replicação ou você deve alterar o dono, durante a replicação para ser o Schema dbo, o qual já existe, automaticamente, em toda instância do SQL Server 2005 (veremos como fazer isso logo em seguida). O artigo Art_Employee, o qual publica dados da tabela Humanresources.Employee, ou seja, da tabela Employee, cujo dono é o Schema HumanResources. Para garantir que a replicação irá funcionar, sem problemas, este Schema deverá existir em qualquer Subscriber que seja configurado para receber a replicação ou você deve alterar o dono, durante a replicação para ser o Schema dbo, o qual já existe, automaticamente, em toda instância do SQL Server 2005 (veremos como fazer isso logo em seguida). E, finalmente, o artigo Art_Redmond, o qual publica dados da tabela Person.Address, ou seja, da tabela Address, cujo dono é o Schema Person. As mesmas considerações anteriores são válidas em relação ao Schema Person.

Muito bem, agora vou mostrar, como configurar o Schema dbo para ser o dono, no destino, de todos os objetos replicados. Ou seja, no destino, o dono será o Schema dbo, o qual já existe, automaticamente, em toda instância do SQL Server 2005.

25. Dê um clique no botão Back, para voltar para a etapa anterior do assistente. É isso mesmo, vamos voltar a etapa anterior do assistente.

26. Clique na opção Tables para selecioná-la. Clique no botão Article Properties. Dentre as opções que são exibidas clique em Set Properties of all Tables Articles. Ou seja, vamos fazer alterações que se aplicam a todos os artigos de tabelas, que fazem parte da publicação. Será aberta a janela Properties for all Tables Articles. Clique no campo “Destination Object Owner”, apage o valor atual  e digite o novo valor: dbo, conforme indicado na Figura 8.19. Ou seja, estamos definido o Schema dbo, como sendo o dono de todos os objetos replicados, no destino, ou seja, nos Subscribers. Como o Schema dbo existe, automaticamente, em toda instância do SQL Server 2005, com isso garantimos que a replicação irá funcionar, sem problemas, independentemente de os Schemas que são os donos no Publisher, existirem ou não nos Subscribers.

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.19 – Definindo o Schema dbo como dono no destino – nos Subscribers.

27. Clique em OK para fechar a janela de propriedades dos artigos. Você estará de volta ao assistente de publicação.

28. Dê um clique no botão Next, seguindo para a próxima etapa do assistente. Observe que agora o aviso da Figura 8.18 não é mais exibido o assistente já vai diretamente para a etapa onde você pode definir filtros horizontais (critérios de filtragem), para os artigos que estão sendo publicados.

29. Agora temos que criar um filtro para o artigo Art_Redmond, no qual colocaremos o seguinte critério: City=’Redmond’. Dê um clique no botão Add... Será aberta a janela Add Filter. Na lista “Select the table to filter”, selecione a tabela Address (Person). Observe que no campo Filter statement aparece o comando T-SQL adaptado para a publicação: SELECT <published_columns> FROM [Person].[Address] WHERE. Observe a cláusula WHER já incluída, pronta para receber um ou mais critérios. Na lista Coluns clique no campo City, para marcá-lo. Clique no botão > , para incluir o campo City no comando T-SQL. Neste momento, o comando T-SQL deve estar assim: SELECT <published_columns> FROM [Person].[Address] WHERE [City]. Agora só falta definirmos o valor do critério para o campo City. Isso é feito digitando diretamente no comando T-SQL. O comando completo deve ficar assim: SELECT <published_columns> FROM [Person].[Address] WHERE [City] = ‘Redmond’ A sua janela deve estar conforme indicado na Figura 8.20

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.20 – Definindo um filtro horizontal para um dos artigos.

30 Clique em OK para fechar a janela Add Filter. Você estará de volta ao assistente de publicação. Observe que a tabela Address já aparece na lista Filtered Tables, conforme indicado na Figura 8.21:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.21 – Lista de tabelas com filtros definidos.

31. Dê um clique no botão Next, seguindo para a próxima etapa do assistente.

32. Nesta etapa você define se deve ser criado um Snapshot imediatamente (uma cópia integral dos dados que serão replicados). Feita a publicação dos dados, estes estarão disponíveis para um ou mais Subscribers. Quando um servidor se inscreve para receber os dados ele recebe, inicialmente, um Snapshot, ou seja, uma cópia completa dos dados. Depois, o Subscriber passa a receber somente as alterações efetuadas no Publisher. Lembrando que a replicação Snapshot é unidirecional, ou seja, não poderão ser feitas alterações nos dados, nos Subscribers, somente no Publisher. Você também pode criar um agendamento para fazer com que um Snapshot seja recriado, de acordo com um agendamento determinado, como por exemplo, todos os dias, as 2:00 da madrugada. Para criar um agendamento, marque a opção Schedule the Snapshot Agent to run at the following times e clique no botão Change…, para definir um ou mais agendamentos. No nosso exemplo não vamos definir agendamentos. Certifique-se de que somente a opção Create a snapshot immediately esteja marcada e clique em Next, seguindo para a próxima etapa do assistente.

32. Nesta etapa você pode marcar a opção Create the publication immediately, para que a publicação seja criada imediatamente e também pode marcar a opção Generate a script..., caso você queira que seja criado um arquivo, contendo todos os comandos, necessários para gerar a Publicação, de acordo com as opções que você selecionou  no assistente. Este script pode ser útil, por exemplo, para rapidamente recriar a publicação, em caso de problemas. Você pode gravar estes comandos em um arquivo e, quando for necessário recriar a publicação, é só copiar estes comandos e executá-los na janela de execução de comandos T-SQL. Marque as duas opções desta etapa, conforme indicado na Figura 8.22:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.22 – Criar a publicação e gerar um arquivo com os comandos T-SQL.

33. Dê um clique no botão Next, seguindo para a próxima etapa do assistente.

34. Nesta etapa (que só é exibida se você marcar a opção para gerar o Script, na etapa anterior), você definie onde será gravado o Script, o nome do arquivo e as propriedades do arquivo. Selecione as opções indicadas na Figura 8.23:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.23 – Configurações do arquivo com os comandos.

35. Dê um clique no botão Next, seguindo para a próxima etapa do assistente.

36. Será exibida a tela final do assistente, onde é apresentado um resumo de todas as opções selecionadas. Caso você tenha que alterar alguma opção, é só utilizar o botão Back. Nesta etapa você deve digitar um nome para publicação. Digite Minha Publicação, no campo Publication Name e clique em Finish para encerrar o assistente e criar a publicação.

37. O SQL Server 2005 começará a criar a publicação e exibirá uma janela, indicando o progresso do trabalho, conforme exemplo da Figura 8.24:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.24 – Progresso da criação da publicação.

38. Concluída as diversas etapas de criação da publicação, clique em Close para fechar a janela New Publication Wizard. Muito bem, a publicação foi criada, com os três artigos que criamos neste exemplo. A seguir veremos como conferir se a publicação foi realmente criada e como podemos fazer configurações em uma publicação já existente. Antes, apenas a título de curiosidade, coloco a seguir, o script gerado pelo assistente (lembre que em uma das etapas finais, marcamos a opção para gerar um arquivo com todos os comandos T-SQL, necessários para criação da publicação):

*********************************************************************************************************

- Enabling the replication database

use master

exec sp_replicationdboption @dbname = N'AdventureWorks', @optname = N'publish', @value = N'true'

GO

-- Adding the snapshot publication

use [AdventureWorks]

exec sp_addpublication @publication = N'Minha Publicação', @description = N'Snapshot publication of database ''AdventureWorks'' from Publisher ''SERVIDOR\SQL2005''.', @sync_method = N'native', @retention = 0, @allow_push = N'true', @allow_pull = N'true', @allow_anonymous = N'true', @enabled_for_internet = N'false', @snapshot_in_defaultfolder = N'true', @compress_snapshot = N'false', @ftp_port = 21, @ftp_login = N'anonymous', @allow_subscription_copy = N'false', @add_to_active_directory = N'false', @repl_freq = N'snapshot', @status = N'active', @independent_agent = N'true', @immediate_sync = N'true', @allow_sync_tran = N'false', @autogen_sync_procs = N'false', @allow_queued_tran = N'false', @allow_dts = N'false', @replicate_ddl = 1

exec sp_addpublication_snapshot @publication = N'Minha Publicação', @frequency_type = 1, @frequency_interval = 0, @frequency_relative_interval = 0, @frequency_recurrence_factor = 0, @frequency_subday = 0, @frequency_subday_interval = 0, @active_start_time_of_day = 0, @active_end_time_of_day = 235959, @active_start_date = 0, @active_end_date = 0, @job_login = N'SERVIDOR\Administrador', @job_password = null, @publisher_security_mode = 1

GO

use [AdventureWorks]

exec sp_addarticle @publication = N'Minha Publicação', @article = N'Address', @source_owner = N'Person', @source_object = N'Address', @type = N'logbased', @description = null, @creation_script = null, @pre_creation_cmd = N'drop', @schema_option = 0x00000000000044F1, @identityrangemanagementoption = N'manual', @destination_table = N'Address', @destination_owner = N'dbo', @status = 0, @vertical_partition = N'false', @filter_clause = N'[City] = ''Redmond'''

-- Adding the article filter

exec sp_articlefilter @publication = N'Minha Publicação', @article = N'Address', @filter_name = N'FLTR_Address_1__58', @filter_clause = N'[City] = ''Redmond''', @force_invalidate_snapshot = 1, @force_reinit_subscription = 1

-- Adding the article synchronization object

exec sp_articleview @publication = N'Minha Publicação', @article = N'Address', @view_name = N'SYNC_Address_1__58', @filter_clause = N'[City] = ''Redmond''', @force_invalidate_snapshot = 1, @force_reinit_subscription = 1

GO

use [AdventureWorks]

exec sp_addarticle @publication = N'Minha Publicação', @article = N'Employee', @source_owner = N'HumanResources', @source_object = N'Employee', @type = N'logbased', @description = null, @creation_script = null, @pre_creation_cmd = N'drop', @schema_option = 0x00000000000044F1, @identityrangemanagementoption = N'manual', @destination_table = N'Employee', @destination_owner = N'dbo', @status = 0, @vertical_partition = N'true'

-- Adding the article's partition column(s)

exec sp_articlecolumn @publication = N'Minha Publicação', @article = N'Employee', @column = N'EmployeeID', @operation = N'add', @force_invalidate_snapshot = 1, @force_reinit_subscription = 1

exec sp_articlecolumn @publication = N'Minha Publicação', @article = N'Employee', @column = N'NationalIDNumber', @operation = N'add', @force_invalidate_snapshot = 1, @force_reinit_subscription = 1

exec sp_articlecolumn @publication = N'Minha Publicação', @article = N'Employee', @column = N'DepartmentID', @operation = N'add', @force_invalidate_snapshot = 1, @force_reinit_subscription = 1

exec sp_articlecolumn @publication = N'Minha Publicação', @article = N'Employee', @column = N'ManagerID', @operation = N'add', @force_invalidate_snapshot = 1, @force_reinit_subscription = 1

exec sp_articlecolumn @publication = N'Minha Publicação', @article = N'Employee', @column = N'EmergencyContactID', @operation = N'add', @force_invalidate_snapshot = 1, @force_reinit_subscription = 1

-- Adding the article synchronization object

exec sp_articleview @publication = N'Minha Publicação', @article = N'Employee', @view_name = N'SYNC_Employee_1__58', @filter_clause = null, @force_invalidate_snapshot = 1, @force_reinit_subscription = 1

GO

use [AdventureWorks]

exec sp_addarticle @publication = N'Minha Publicação', @article = N'Product', @source_owner = N'Production', @source_object = N'Product', @type = N'logbased', @description = null, @creation_script = null, @pre_creation_cmd = N'drop', @schema_option = 0x00000000000044F1, @identityrangemanagementoption = N'manual', @destination_table = N'Product', @destination_owner = N'dbo', @status = 0, @vertical_partition = N'false'

GO

********************************************************************************************************

Sem dúvidas, podemos dizer que temos aqui, comandos T-SQL bem avançados. Ainda bem que temos os assistentes para nos ajudar. É bem mais fácil usar o Assistente do que aprender todos estes comandos e as respectivas sintaxes.

Know-how em: Configuração e Administração de Publicações

Após ter criado uma publicação, você poderá alterá-la, conforme for necessário. Após ter criado uma publicação, ela passa a ser exibida na opção Replication -> Publications, dentro da instância onde a publicação foi criada. No exemplo da Figura 8.25, temos a publicação Minha Publicação, do banco de dados AdventureWorks, da instância SERVIDOR\SQL2005, já sendo exibida na lista de publicações.

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.25 – A publicação Minha Publicação, criada no exemplo anterior.

Para acessar as propriedades de uma publicação, clique com o botão Direito do mouse na publicação e, no menu de opções que é exibido, clique em Properties. Será aberta a janela de propriedades da Publicação, com a guia General automaticamente selecionada. Na guia General, você pode alterar a descrição da publicação, mas não pode alterar o nome da publicação. Nesta guia, você também pode definir se as Subscrições irão expirar ou não. O padrão é que as Subscrições não expirem. Na guia General você pode marcar a opção “Subscriptions expire and may be dropped if not synchronized in the following number of hours:”, para definir por quantas horas os dados estarão disponíveis para serem replicados para os Subscribers. Se não houver uma replicação no tempo definido no campo Hours, os dados não serão mais replicados e serão excluídos. Somente quando um novo conjunto de dados for gerado, será feita uma nova replicação.

Dê um clique na guia Articles. As opções desta guia são idênticas as opções da etapa do assistente, onde você definiu quais artigos fariam parte da publicação. Você pode usar a guia Articles para alterar os arquivos existentes, excluir artigos e incluir novos artigos na publicação. Você também pode usar o botão Article Properties, para definir as propriedades para um artigo em particular ou para todos os artigos, ao mesmo tempo.

Dê um clique na guia Filter Rows. Nesta guia você define os filtros horizontais, definindo critérios de filtragem para um ou mais dos artigos. Apenas para lembrar, no exemplo anterior, nos definimos um filtro para o artigo Art_Redmond. Definimos o seguinte filtro: City=’Redmond’. Nesta guia você pode alterar os filtros existentes, adicionar novos filtros ou excluir filtros.

Dê um clique na guia Snapshot. Nesta guia você define várias opções, que afetam a maneira como o Snapshot dos dados será efetuado. Inicialmente, você pode definir o formato dos dados. A opção Native SQL Server, deve ser utilizada se os Subscribers forem também instâncias do SQL Server. Já a opção Character - ..., deve ser utilizada se o Publisher ou um ou mais dos Subscribers não são uma instância do SQL Server. Nesta guia você também pode definir se os arquivos, contendo os dados a serem replicados, serão colocados no caminho padrão sugerido pelo SQL Server 2005, ou em uma pasta que você selecionar. Por fim, você também pode configurar scripts que serão executados antes e/ou depois da criação do Snapshot. Por exemplo, se você está replicando dados no formato Character, para serem importados por um outro banco de dados que não o SQL Server, você pode rodar um script após a criação do Snapshot, para adaptar os dados para o formato esperado pelos Subscribers.

Dê um clique na guia FTP Snapshot. Nesta guia você define se o protocolo FTP deverá ou não ser utilizado pelos Subscribers, para fazer download dos arquivos de dados a serem replicados. Por padrão, está desabilitada a opção de usar FTP. Eu recomendo que você mantenha esta opção desabilitada e deixe os agentes de replicação do  SQL Server se encarregarem da transferência dos dados a serem replicados. É bem mais seguro do que o uso do FTP, o qual é um protocolo bastante frágil, em termos de segurança.

Dê um clique na guia Subscriptions Options. Nesta guia você pode configurar uma série de opções que irão definir como serão aceitas as subscrições para esta publicação. Por exemplo, você usa a opção Allow pull subscriptions, para definir se serão ou não aceitas Subscrições do tipo Pull, nas quais é o Subscriber que inicia o processo de solicitar a cópia dos dados que estão no Distributor, ou seja, na subscrição do tipo Pull é o Subscriber que pucha os dados (Pull = puchar).

Dê um clique na guia Subscriptions Options. Nesta guia você pode configurar uma grupos, com permissão para fazerem Subscrições nesta publicação. Você pode usar o botão Add... para adicionar novos usuários e/ou grupos; o botão Remove para remover um usuário e/ou grupo e o botão Remove All, para remover todos os usuários/grupos da lista. Se um usuário não estiver nesta lista, ele não conseguirá se inscrever para receber os dados desta publicação. Esta lista é uma maneira de limitar quais usuários poderão receber réplicas dos dados.

Dê um clique na guia Agent Security. Nesta guia você define a conta e respectiva senha, com a qual será executado o Agente de Replicação. Para alterar a conta e/ou senha, clique no botão Security Settings...

Definidas as configurações desejadas para a publicação é só clicar em OK e pronto, as modificações serão aplicadas.

Know-how em: Habilitação de Subscribers

Pré-Requisitos:

  • Conceitos teóricos sobre replicação apresentados nos itens iniciais deste capítulo.
  • Conhecer o modelo de replicação do SQL Server 2005.
  • Ter criado uma Publicação no item anterior.
  • Fundamentos apresentados na Parte I.
  • Saber utilizar o SQL Server Management Studio.

Metodologia:

  • Apresentação dos comandos e assistentes para configuração de um Subscriber.

Técnica:

  • Configurar um Subscriber utilizando o SQL Server Management Studio.

Criamos uma Publicação no item anterior. O objetivo da criação de uma publicação é para que esta possa ser replicada para um ou mais Subscribers. Aprenderemos neste item como habilitar Subscribers e configurar subscrições.

Conforme já descrito anteriormente, podemos configurar dois tipos de subscrições:

  • Pull subscriptions
  • Push subscriptions

Iremos usar o assistente de Subscrição, para configurar uma subscrição do tipo Push subscription (push = empurrar, ou seja, é o Distributor quem “empurra” os dados para um ou mais Subscribers). Este tipo de subscrição é configurada no Publisher, conforme descrito anteriormente. É indicada para situações nas quais devemos fazer um gerenciamento centralizado das subscrições. Porém não devemos esquecer que neste tipo de subscrição, os agentes responsáveis pela replicação rodam no Distributor, consumindo memória e processamento deste servidor. Estas necessidades adicionais de memória e processamento devem ser levadas em consideração.

Vamos configurar uma subscrição do tipo Push subscription. Conforme descrito na parte teórica, no início deste capítulo, este tipo de Subscrição tem as seguintes características:

  • Com este tipo de subscrição, o Distributor é responsável por enviar as alterações para um ou mais Subscribers. Lembre que push significa “empurrar” e não puxar. Uma analogia que pode ser utilizada é que neste tipo de subscrição é o Distributor que “empurra”, envia as alterações para um ou mais Subscribers.
  • Utilizamos Push subscriptions quando queremos ter um controle centralizado sobre o agendamento das replicações. É muito mais fácil configurar várias subscrições em um único servidor, no caso o Distributor, do que ter que configurar a subscrição em diversos servidores, no caso, os diversos Subscribers. É do Distributor a iniciativa de enviar as alterações para os Subscribers.
  • Assim como o Agente de replicação, serviço responsável por fazer a replicação, roda no Distributor ou no Publisher, dependendo de como foi feita a configuração da replicação, devemos ter em mente que este agente estará consumindo recursos como memória e processador no Distributor ou no Publisher. Caso tenhamos um número considerável de Subscribers, devemos planejar cuidadosamente esta necessidade de recursos de memória e processamento.

Antes de configurarmos a subscrição para a Publicação Minha Publicação, vamos excluir o Banco de Dados AdventureWorks, da instância SERVIDOR2\CURSOSJB. Vamos fazer isso para verificar se realmente só estão sendo replicados os dados definidos pelos três Artigos da Publicação Minha Publicação.

Para excluir o Banco de Dados AdventureWorks da instância SERVIDOR2\CURSOSJB: abra o SQL Server Management Studio; navegue até o Banco de Dados AdventureWorks da instância SERVIDOR2\CURSOSJB; clique com o botão direito do mouse em AdventureWorks e,no menu de opções que é exibido dê um clique em Delete. Surge uma mensagem pedindo confirmação, dê um clique no botão OK para confirmar a exclusão.

Agora vamos a um exemplo prático.

Exemplo prático: Configurar a instância SERVIDOR2\CURSOSJB como Subscriber da Publicação Minha Publicação, criada no item anterior. Criar uma Subscrição do tipo Push subscription, ou seja, configurada a partir do Publisher, que no nosso caso é a instância SERVIDOR\SQL2005.

Para criar a subscrição solicitada, siga os passos indicados a seguir:

1. Se você não estiver com o SQL Server Management Studio aberto, abra-o.

2. Na janela Object Explorer, clique no sinal de + ao lado da instãncia SERVIDOR\SQL2005, para exibir as opções disponíveis.

3. Clique no sinal + ao lado da opção Replication, abaixo da instância SERVIDOR\SQL2005, para exibir as opções disponíveis.

4. Clique no sinal de + ao lado da opção Publications, para exibir as publicações disponíveis nesta instância. No momento, deve estar disponível somente a publicação Minha Publicação, criada anteriormente.

5. Clique com o botão direito do mouse na publicação Minha Publicação e, no menu de opções que é exibido, clique em New Subscriptions...

6. Será aberto o assistente para criação de novas subscrições – New Subscription Wizard. A primeira tela do assistente é somente informativa. Clique em Next, para seguir para a próxima etapa do assistente.

7. Nesta etapa você deve selecionar a publicação para a qual será criada uma nova subscrição. Na lista Publisher, já deve ter vindo selecionada a instância SERVIDOR\SQL2005. Se não veio selecionada esta instância, selecione-a. Na parte de baixo da janela serão exibidas as publicações disponíveis (no nosso exemplo somente será exibida a publicação Minha Publicação). Clique na publicação Minha Publicação, para selecioná-la, conforme indicado na Figura 8.26:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.26 – A publicação Minha Publicação, criada no exemplo anterior.

8. Clique em Next, para seguir para a próxima etapa do assistente.

9. Nesta etapa você irá definir se o assistente irá criar uma ou mais subscrições do tipo Push subscriptions (onde os agentes de replicação rodam no Distributor), ou se serão subscrições do tipo Pull subscriptions (onde os agentes de replicação rodam nos subscribers). Usando o assistente você pode criar várias subscrições, de uma só vez, mas todas do mesmo tipo, ou seja, ou todas Pull subscriptions ou todas Push subscriptions. Se você precisar criar subscrições de diferentes tipos, terá que rodar o assistente mais de uma vez. Certifique-se de que a opção (push subscriptions) esteja selecionada, conforme indicado na Figura 8.27:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.27 – Definindo o tipo de Subscrição.

10 . Clique em Next, para seguir para a próxima etapa do assistente.

11 . Nesta etapa você pode adicionar uma ou mais instâncias do SQL Server 2005, as quais serão subscribers da publicação Minha Publicação. Por padrão, somente a própria instância, onde foi criada a publicação é exibida na lista. No nosso exemplo, por padrão somente a instância SERVIDOR\SQL2005, que é onde foi criada a publicação Minha Publicação, está sendo exibida. Vamos adicionar a instância SERVIDOR2\CURSOSJB. Para isso, clique no botão Add SQL Server... Será exibida a janela Connect to server. Na lista Server name, selecione o nome da instância que será o Subscriber, no nosso exemplo, selecione SERVIDOR2\CURSOSJB. É importante salientar que, nesta lista, somente serão exibidos os nomes das instâncias registradas no SQL Server Management Studio. Caso a instância desejada não esteja sendo exibida nesta lista, você pode cancelar o assistente e, no SQL Server Management Studio, clicar com o botão direito do mouse em Microsoft SQL Servers (na janela Registered Servers) e usar o comando New -> Server Registration..., para registrar uma ou mais instâncias do SQL Server. Depois é só voltar e executar o assistente novamente. Na lista Authentication selecione Windows Authentication. Sua janela deve estar conforme indicado na Figura 8.28:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.28 – Adicionando um novo Subscriber.

12 . Dê um clique no botão Connect.

13 . Você estará de volta ao assistente e a instância SERVIDOR2\CURSOSJB, já terá sido adicionada a lista. Certifique-se de que somente esta instância esteja selecionada. Na coluna Subscription database, você deve informar se os dados serão replicados para um banco de dados já existente ou para um novo banco de dados. Para o nosso exemplo, selecione a opção New database, conforme indicado na Figura 8.29. É nesta etapa que você pode adicionar quantos Subscribers forem necessários. Para adicioná-los, basta que eles já tenham sido registrados no SQL Server Management Studio, conforme descrito anteriormente.

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.29 – Selecionando o Subscriber e o banco de dados de destino.

15 . Será aberta a janela para criação de um novo banco de dados, janela esta que você aprendeu a utilizar no Capítulo 3. Utilizando os conhecimentos do Capítulo 3, crie um banco de dados com as seguintes características (é importante salientar que, antes de criar este banco de dados, a pasta C:\livrosql\ExReplicacao já deve ter sido criada, caso contrário será gerado um erro. Se esta pasta ainda não existe, abra o Windows Explorer e crie a pasta C:\livrosql\ExReplicacao):

Tabela 8.4 O Banco de Dados ExReplicacao.

Arquivo Definições
Primário C:\livrosql\ExReplicacao\ExReplicacao-prim.mdf
Crescimento automático habilitado.
Tamanho inicial: 2 MB.
Crescimento em incrementos de 5%.
Tamanho máximo de 10 MB.
Secundário C:\livrosql\ExReplicacao\ExReplicacao-sec1.mdf
Crescimento automático habilitado.
Tamanho inicial: 2 MB.
Crescimento em incrementos de 5%.
Tamanho máximo de 100 MB.
Secundário C:\livrosql\ExReplicacao\ExReplicacao-sec2.mdf
Crescimento automático habilitado.
Tamanho inicial: 2 MB.
Crescimento em incrementos de 5%.
Tamanho máximo de 10 MB.
Arquivo de log C:\livrosql\ExReplicacao\ExReplicacao-log1.ldf
Crescimento automático habilitado.
Tamanho inicial: 2 MB.
Crescimento em incrementos de 5%.
Tamanho máximo de 10 MB.
Arquivo de log C:\livrosql\ExReplicacao\ExReplicacao-log2.ldf
Crescimento automático habilitado.
Tamanho inicial: 2 MB.
Crescimento em incrementos de 5%.
Tamanho máximo de 10 MB.
Arquivo de log C:\livrosql\ExReplicacao\ExReplicacao-log3.ldf
Crescimento automático habilitado.
Tamanho inicial: 2 MB.
Crescimento em incrementos de 5%.
Tamanho máximo de 10 MB.

A criação de um novo Banco de Dados para receber os dados replicados não é, de maneira alguma, necessária. Poderíamos utilizar um Banco de Dados já existente. Optamos por criar um novo Banco de Dados para salientar a execução deste procedimento.

16. A tela de criação do novo banco de dados, deverá estar conforme indicado na Figura 8.30:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.30 – Definições para criação do banco de dados ExReplicacao.

17. Clique em OK para criar o banco de dados ExReplicacao. Você estará de volta ao assistente de Subscrição.

18 . Clique em Next, para seguir para a próxima etapa do assistente.

19 . Nesta etapa você irá definir as configurações de segurança (conta de conexão e opções de conexão), para cada agente de distribuição que for utilizado. No nosso exemplo, tem um único agente de Distribuição, pois configuramos um único subscriber. Se você tivesse configurado vários subscribers, seriam listados tantos agentes de distribuição, quantos fossem os subscribers configurados. Clique no botão ..., para fazer as configurações de segurança. Será aberta a janela Distribution Agent Security. Informe a conta a ser utilizada e a respectiva senha, conforme indicado na Figura 8.31. Não altere as demais opções. Clique em OK. Você estará de volta ao assistente.

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.31 – Configurações de segurança, para o agente de Distribuição.

20 . Clique em Next, para seguir para a próxima etapa do assistente.

21 . Nesta etapa você deve definir um agendamento para cada um dos Subscribers que estão sendo configurados. Por exemplo, você poderia definir uma replicação de duas em duas horas para subscribers remotos, porém ligados por links de alta velocidade, uma replicação de 15 em 15 minutos para subscribers da mesma rede local e uma replicação uma vez por dia, de madrugada, para subscribers remotos, ligados por links de WAN de baixa velocidade. No nosso exemplo, temos um único subscribers. Vamos configurar uma replicação diariamente, de duas em duas horas. Clique na coluna Agent Schedule, abra a lista e seleicone a opção Define Schedule...

22 . Será aberta a janela para definição do agendamento, janela esta que você já aprendeu a utilziar no capítulo sobre Jobs e Agendamento de tarefas. Para definir uma replicação diária, de duas em duas horas, configure as opções indicadas na Figura 8.32 e clique em OK para criar o agendamento.

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.32 – Definindo o agendamento da replicação.

23 . Você estará de volta ao assistente para criação de novas Subscrições. Clique em Next, para seguir para a próxima etapa do assistente.

24 . Nesta etapa o assistente informa que cada subscrição tem que ser inicializada com uma replicação completa, do tipo Snapshot dos dados e do Schema. Nesta etapa você informa, para cada subscrição (no nosso exemplo é uma única subscrição), quando que este Snapshot inicial deve ser criad. Você tem a opção de criá-lo imediatamente – opção Immediately na coluna “Initialize When”, ou no próximo agendamento – opção At firs synchronization. Por padrão, vem selecionada a opção Immediately. Vamos manter esta opção selecionada.

25 . Clique em Next, para seguir para a próxima etapa do assistente.

26. Nesta etapa você pode marcar a opção Create the subscription(s) immediately, para que a subscrição seja criada imediatamente e também pode marcar a opção Generate a script..., caso você queira que seja criado um arquivo, contendo todos os comandos, necessários para criar a Subscrição, de acordo com as opções que você selecionou  no assistente. Este script pode ser útil, por exemplo, para rapidamente recriar a subscrição, em caso de problemas. Você pode gravar estes comandos em um arquivo de texto e, quando for necessário recriar a publicação, é só copiar estes comandos do arquivo de texto e executá-los na janela de execução de comandos T-SQL. Marque as duas opções desta etapa, conforme indicado na Figura 8.33:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.33 – Criar a subscrição e gerar um arquivo com os comandos T-SQL.

27. Dê um clique no botão Next, seguindo para a próxima etapa do assistente.

28. Nesta etapa (que só é exibida se você marcar a opção para gerar o Script, na etapa anterior), você definie onde será gravado o Script, o nome do arquivo e as propriedades do arquivo. Selecione as opções indicadas na Figura 8.34:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.34 – Configurações do arquivo com os comandos.

29. Clique em Next, para seguir para a próxima etapa do assistente.

30. Será exibida a tela final do assistente, onde é apresentado um resumo de todas as opções selecionadas. Caso você tenha que alterar alguma opção, é só utilizar o botão Back. Clique em Finish para encerrar o assistente e criar a subscrição (ou subscrições, caso você tenha configurado mais de uma subscrição).

31. O SQL Server 2005 começará a criar a subscrição e exibirá uma janela, indicando o progresso do trabalho, conforme exemplo da Figura 8.35:

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 8.35 – Progresso da criação da subscrição.

32. Concluída as diversas etapas de criação da subscrição, clique em Close para fechar a janela New Subscription Wizard. Muito bem, a subscrição foi criada. A partir deste momento, a instância SERVIDOR2\CURSOSJB, passará a receber os dados da publicação Minha Publicação, da instância SERVIDOR\SQL2005. Esta replicação será feita de duas em duas horas e os dados serão gravados no banco de dados ExReplicacao. A seguir veremos como conferir se a subscrição foi realmente criada e vamos verificar se os dados estão sendo copiados para o banco de dados ExReplicacao, da instância SERVIDOR\SQL2005. Também veremos como forçar uma replicação.

Antes, apenas a título de curiosidade, coloco a seguir, o script gerado pelo assistente (lembre que em uma das etapas finais, marcamos a opção para gerar um arquivo com todos os comandos T-SQL, necessários para criação da subscrição):

*********************************************************************************************************

-----------------BEGIN: Script to be run at Publisher 'SERVIDOR\SQL2005'-----------------

use [AdventureWorks]

exec sp_addsubscription @publication = N'Minha Publicação', @subscriber = N'SERVIDOR2\CURSOSJB', @destination_db = N'ExReplicacao', @subscription_type = N'Push', @sync_type = N'automatic', @article = N'all', @update_mode = N'read only'

exec sys.sp_addpushsubscription_agent @publication = N'Minha Publicação', @subscriber = N'SERVIDOR2\CURSOSJB', @subscriber_db = N'ExReplicacao', @job_login = N'SERVIDOR\Administrador', @job_password = N'', @subscriber_security_mode = 1, @frequency_type = 4, @frequency_interval = 1, @frequency_relative_interval = 0, @frequency_recurrence_factor = 1, @frequency_subday = 8, @frequency_subday_interval = 2, @active_start_time_of_day = 0, @active_end_time_of_day = 235900, @active_start_date = 20050509, @active_end_date = 99991231, @enabled_for_syncmgr = N'False', @dts_package_location = N'Distributor'

GO

-----------------END: Script to be run at Publisher 'SERVIDOR\SQL2005'-----------------

*********************************************************************************************************

Agora vamos verificar quais modificações foram introduzidas na instância SERVIDOR\SQL2005 após termos configurado a replicação. Veremos quais agentes foram implementados, o histórico de replicação dos agentes. Depois verificaremos se os dados foram realmente replicados.
« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »

você conhece a universidade do access?

Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela

Capa da Universidade do Access

Aplica-se ao Access 2019, 2016, 2013 e 2010!

13 Cursos - 574 Vídeo-Aulas - 63:32 horas

Para todos os detalhes, acesse:

https://juliobattisti.com.br/universidade-do-access.asp

Quer receber novidades e e-books gratuitos?

 
 

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2025 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI