Tutorial: Configurar a replicação entre um servidor e clientes móveis (mesclagem)
Aplica-se: SQL Server
A replicação de mesclagem é uma boa solução para o problema de movimentação de dados entre um servidor central e clientes móveis que são conectados apenas ocasionalmente. Usando os assistentes de replicação, é possível configurar e administrar uma topologia de replicação de mesclagem com facilidade.
Este tutorial mostra como você deve configurar uma topologia de replicação para clientes móveis. Para obter mais informações sobre a replicação de mesclagem, consulte a visão geral da replicação de mesclagem.
O que você aprenderá
Este tutorial ensina você a usar a replicação de mesclagem para publicar dados de um banco de dados central para um ou mais usuários móveis, de forma que cada usuário obtenha um subconjunto dos dados filtrado exclusivamente.
Neste tutorial, você aprenderá a:
- Configurar um editor para a replicação de mesclagem.
- Adicionar um assinante móvel à publicação de mesclagem.
- Sincronizar a assinatura com a publicação de mesclagem.
Pré-requisitos
Este tutorial é destinado a usuários familiarizados com operações fundamentais de bancos de dados, mas que têm pouca experiência com replicação. Antes de iniciar este tutorial, é necessário concluir o Tutorial: Preparar o SQL Server para replicação.
Para concluir este tutorial, são necessários o SQL Server, o SSMS (SQL Server Management Studio) e um banco de dados do AdventureWorks:
No servidor do editor (origem), instale:
- Qualquer edição do SQL Server, exceto o SQL Server Express ou o SQL Server Compact. Essas edições não podem ser um editor de replicação.
- O banco de dados de exemplo
AdventureWorks2022
. Para reforçar a segurança, os bancos de dados de exemplo não são instalados por padrão.
No servidor do assinante (destino), instale qualquer edição do SQL Server, exceto o SQL Server Express ou o SQL Server Compact. A publicação criada neste tutorial não dá suporte ao SQL Server Express ou ao SQL Server Compact.
Instalar o SQL Server Management Studio.
Instale o SQL Server 2017 Developer Edition.
Baixe o banco de dados de exemplo do AdventureWorks. Para obter instruções sobre como restaurar um banco de dados no SSMS, veja Como restaurar um banco de dados.
Observação
A replicação não é compatível em instâncias do SQL Server que tenham um intervalo de mais de duas versões.
No SQL Server Management Studio, é necessário conectar-se ao editor e ao assinante usando um logon que seja membro da função de servidor fixa sysadmin. Para saber mais sobre essa função, veja Funções de nível de servidor.
Tempo estimado para concluir este tutorial: 60 minutos
Configurar um editor para a replicação de mesclagem
Nesta seção, você criará uma publicação de mesclagem usando o SQL Server Management Studio para publicar um subconjunto das tabelas Employee, SalesOrderHeader e SalesOrderDetail no banco de dados de exemplo AdventureWorks2022
. Essas tabelas são filtradas com filtros de linha com parâmetros de modo que cada assinatura contenha uma partição exclusiva dos dados. Você também adicionará o logon do SQL Server usado pelo Agente de Mesclagem à PAL (lista de acesso à publicação).
Criar uma publicação de mesclagem e definir artigos
Conecte-se ao Publicador no SQL Server Management Studio e expanda o nó de servidor.
Inicie o SQL Server Agent clicando com o botão direito do mouse no Pesquisador de Objetos e selecionando Iniciar. Se essa etapa não iniciar o agente, será necessário fazer isso manualmente no SQL Server Configuration Manager.
Expanda a pasta Replicação, clique com o botão direito do mouse em Publicações Locais e selecione Nova Publicação. O Assistente para Nova Publicação é iniciado:
Na página Banco de Dados de Publicação, selecione
AdventureWorks2022
e, em seguida, Avançar.Na página Tipo de Publicação, selecione Publicação de mesclagem e, em seguida, Avançar.
Na página Tipos de Assinante, verifique se somente o SQL Server 2008 (10.0.x) ou posterior está selecionado e, em seguida, selecione Avançar:
Na página Artigos, expanda o nó Tabelas. Selecione as três tabelas a seguir: Employee, SalesOrderHeader e SalesOrderDetail. Selecione Avançar.
Observação
A tabela Employee contém uma coluna (OrganizationNode) que tem o tipo de dados hierarchyid. Esse tipo de dados é compatível com a replicação somente no SQL Server 2017.
Se estiver usando um build anterior ao SQL Server 2017, será exibida uma mensagem na parte inferior da tela para notificá-lo de potencial perda de dados por usar essa coluna na replicação bidirecional. Para os fins deste tutorial, é possível ignorar essa mensagem. No entanto, esse tipo de dados não deve ser replicado em um ambiente de produção, a menos que você esteja usando um build compatível.
Para obter mais informações sobre como replicar o tipo de dados hierarchyid, consulte Using hierarchyid columns in replication (Usando colunas hierarchyid na replicação).
Na página Filtrar Linhas da Tabela, selecione Adicionar e, em seguida, Adicionar Filtro.
Na caixa de diálogo Adicionar Filtro, selecione Funcionário (HumanResources) em Selecionar a tabela a ser filtrada. Selecione a coluna LoginID, selecione a seta para a direita para adicionar a coluna à cláusula WHERE da consulta de filtro e modifique a cláusula WHERE da seguinte maneira:
WHERE [LoginID] = HOST_NAME()
Selecione Uma linha desta tabela vai para apenas uma assinatura e OK.
Na página Filtrar Linhas da Tabela, selecione Funcionário (Recursos Humanos), Adicionar e, em seguida, Adicionar Junção para Estender o Filtro Selecionado.
a. Na caixa de diálogo Adicionar Junção, selecione Sales.SalesOrderHeader em Tabela unida. Selecione Gravar a instrução de junção manualmente e conclua a instrução de junção da seguinte maneira:
ON [Employee].[BusinessEntityID] = [SalesOrderHeader].[SalesPersonID]
b. Em Especificar opções de junção, selecione Chave exclusiva e, em seguida, selecione OK.
Na página Filtrar Linhas da Tabela, selecione SalesOrderHeader, Adicionar e, em seguida, Adicionar Junção para Estender o Filtro Selecionado.
a. Na caixa de diálogo Adicionar Junção , selecione Sales.SalesOrderDetail sob Tabela unida.
b. Selecione Usar o construtor para criar a instrução.
c. Na caixa Visualização, confirme se a instrução de junção é da seguinte maneira:ON [SalesOrderHeader].[SalesOrderID] = [SalesOrderDetail].[SalesOrderID]
d. Em Especificar opções de junção, selecione Chave exclusiva e, em seguida, selecione OK. Selecione Avançar.
Selecione Criar um instantâneo imediatamente, desmarque a opção Agendar o agente de instantâneo para ser executado nos seguintes horários e selecione Avançar:
Na página Segurança do Agente, selecione Configurações de Segurança. Insira <Nome_do_Computador_do_Editor>\repl_snapshot na caixa Conta de Processo, forneça a senha para essa conta e selecione OK. Selecione Avançar.
Na página Concluir o Assistente, insira AdvWorksSalesOrdersMerge na caixa Nome da publicação e selecione Concluir:
Depois que a publicação for criada, selecione Fechar. No nó Replicação no Pesquisador de Objetos, clique com o botão direito do mouse em Publicações Locais e selecione Atualizar para exibir sua nova replicação de mesclagem.
Exibir o status de geração do instantâneo
Conecte-se ao publicador no SQL Server Management Studio, expanda o nó de servidor e depois expanda a pasta Replicação.
Na pasta Publicações Locais, clique com o botão direito do mouse em AdvWorksSalesOrdersMerge e selecione Exibir Status do Agente de Instantâneo:
O status atual do trabalho do Agente de Instantâneo para a publicação é exibido. Certifique-se de que o trabalho de instantâneo teve sucesso antes de passar à próxima lição.
Adicionar o logon do Agente de Mesclagem à PAL
Conecte-se ao publicador no SQL Server Management Studio, expanda o nó de servidor e depois expanda a pasta Replicação.
Na pasta Publicações Locais, clique com o botão direito do mouse em AdvWorksSalesOrdersMerge e, em seguida, selecione Propriedades.
a. Selecione a página Lista de Acesso à Publicação e Adicionar.
b. Na caixa de diálogo Adicionar Acesso à Publicação, selecione <Nome_do_Computador_do_Publicador>\repl_merge e selecione OK. Selecione OK novamente.
Para saber mais, veja:
Criar uma assinatura para a publicação de mesclagem
Nesta seção, você adicionará uma assinatura à publicação de mesclagem criada anteriormente. Este tutorial usa o assinante remoto (NODE2\SQL2016). Em seguida, definirá permissões no banco de dados de assinatura e gerará manualmente o instantâneo de dados filtrados para a nova assinatura.
Adicionar um assinante à publicação de mesclagem
Conecte-se ao assinante no SQL Server Management Studio e expanda o nó de servidor. Expanda a pasta Replicação, clique com o botão direito do mouse na pasta Assinaturas Locais e, em seguida, selecione Novas Assinaturas . O Assistente para Nova Assinatura é iniciado:
Na página Publicação, selecione Encontrar Publicador do SQL Server na lista Publicador.
Na caixa de diálogo Conectar ao Servidor, insira o nome da instância de Publicador na caixa Nome do servidor e selecione Conectar.
Selecione AdvWorksSalesOrdersMerge e Avançar.
Na página Local do Agente de Mesclagem, selecione Executar cada agente em seu Assinante e, em seguida, selecione Avançar:
Na página Assinantes, selecione o nome da instância do servidor do assinante. Em Banco de Dados de Assinatura, selecione Novo Banco de Dados na lista.
Na caixa de diálogo Novo Banco de Dados, insira SalesOrdersReplica na caixa Nome do banco de dados. Selecione OK e, em seguida, selecione Avançar.
Na página Segurança do Agente de Mesclagem, selecione o botão de reticências (...). Digite <Nome_do_Computador_do_Assinante>\repl_merge na caixa Conta de processo e forneça a senha para essa conta. Selecione OK, Avançar e, em seguida, Avançar novamente.
Na página Agenda de Sincronização, defina a Agenda do Agente como Executar somente sob demanda. Selecione Avançar.
Na página Inicializar Assinaturas, selecione Na primeira sincronização da lista Inicializar quando. Selecione Avançar para ir para a página Tipo de Assinatura e, em seguida, selecione o tipo de assinatura adequado. Este tutorial usa o Cliente. Depois de selecionar o tipo de assinatura, selecione Avançar novamente.
Na página Valores de HOST_NAME, insira um valor de adventure-works\pamela0 na caixa Valor de HOST_NAME. Em seguida, selecione Concluir.
Selecione Concluir novamente. Depois que a assinatura for criada, selecione Fechar.
Definir permissões de servidor no assinante
Conecte-se ao assinante no SQL Server Management Studio. Expanda Segurança, clique com o botão direito do mouse em Logons e, em seguida, selecione Novo Logon.
Na página Geral, selecione Pesquisar e, em seguida, insira <Nome_do_Computador_do_Assinante>\repl_merge na caixa Insira o Nome do Objeto. Selecione Verificar Nomes e, em seguida, OK.
Na página Mapeamento de Usuário, selecione o banco de dados SalesOrdersReplica e a função db_owner. Na página Protegíveis, conceda a permissão Explícita para Alterar Rastreamento. Selecione OK.
Criar o instantâneo de dados filtrados para a assinatura
Conecte-se ao publicador no SQL Server Management Studio, expanda o nó de servidor e depois expanda a pasta Replicação.
Na pasta Publicações Locais, clique com o botão direito do mouse na publicação AdvWorksSalesOrdersMerge e, em seguida, selecione Propriedades.
a. Selecione a página Partições de Dados e Adicionar.
b. Na caixa de diálogo Adicionar Partição de Dados, insira adventure-works\pamela0 na caixa Valor de HOST_NAME e, em seguida, selecione OK.
c. Selecione a partição recém-adicionada, selecione Gerar os instantâneos selecionados agora e, em seguida, OK.
Para saber mais, veja:
- Assinar publicações
- Criar uma assinatura pull
- Instantâneos para publicações de mesclagem com filtros com parâmetro
Sincronizar a assinatura com a publicação de mesclagem
Nesta seção, você iniciará o Agente de Mesclagem para inicializar a assinatura usando o SQL Server Management Studio. Você também usará este procedimento para sincronizar-se com o publicador.
Iniciar a sincronização e inicializar a assinatura
Conecte-se ao assinante no SQL Server Management Studio.
Certifique-se de que o SQL Server Agent está em execução. Se não estiver, clique com o botão direito do mouse no SQL Server Agent no Pesquisador de Objetos e selecione Iniciar. Se essa etapa não iniciar o agente, você precisará fazer isso manualmente usando o SQL Server Configuration Manager.
Expanda o nó Replicação. Na pasta Assinaturas Locais, clique com o botão direito do mouse na assinatura no banco de dados SalesOrdersReplica e, em seguida, selecione Exibir Status da Sincronização.
Selecione Iniciar para inicializar a assinatura.