Partilhar via


Tutorial: Configurar a replicação entre um servidor e clientes móveis (merge)

Aplica-se a:SQL Server

A replicação por fusão é uma boa solução para o problema de mover dados entre um servidor central e clientes móveis que só estão ocasionalmente ligados. Ao usar os assistentes de replicação, pode facilmente configurar e administrar uma topologia de replicação de fusão.

Este tutorial mostra-lhe como configurar uma topologia de replicação para clientes móveis. Para mais informações sobre replicação de fusões, consulte a visão geral da replicação de fusão.

O que vais aprender

Este tutorial ensina-o a usar a replicação de fusão para publicar dados de uma base de dados central para um ou mais utilizadores móveis, de modo a que cada utilizador receba um subconjunto de dados filtrado de forma única.

Neste tutorial, vai aprender a:

  • Configurar um publicador para replicação de fusões.
  • Adicione um subscritor móvel para a publicação da fusão.
  • Sincronize a subscrição com a publicação da fusão.

Pré-requisitos

Este tutorial destina-se a utilizadores familiarizados com operações fundamentais de bases de dados, mas que têm experiência limitada em replicação. Antes de começar este tutorial, deve completar o Tutorial: Prepare o SQL Server para replicação.

Para completar este tutorial, precisa do SQL Server, SQL Server Management Studio (SSMS) e de uma base de dados AdventureWorks:

  • No servidor do editor (fonte), instale:

    • Qualquer edição do SQL Server, exceto SQL Server Express ou SQL Server Compact. Estas edições não podem ser uma editora de replicação.
    • A base de dados de AdventureWorks2025 exemplo. Para aumentar a segurança, as bases de dados de exemplo não são instaladas por defeito.
  • No servidor assinante (destino), instale qualquer edição do SQL Server, exceto SQL Server Express ou SQL Server Compact. A publicação criada neste tutorial não suporta nem SQL Server Express nem SQL Server Compact.

  • Instale o SQL Server Management Studio.

  • Instalar a edição para desenvolvedores do SQL Server 2017.

  • Descarregue a base de dados de exemplos do AdventureWorks. Para instruções sobre como restaurar uma base de dados no SSMS, veja Restaurar uma base de dados.

Observação

A replicação não é suportada em instâncias do SQL Server que estejam separadas por mais de duas versões.

No SQL Server Management Studio, deve conectar-se ao publicador e ao assinante usando um login que seja membro do papel fixo de servidor sysadmin. Para mais informações sobre esta função, veja Funções ao nível do servidor.

Tempo estimado para completar este tutorial: 60 minutos

Configurar um publicador para replicação de fusão

Nesta secção, cria uma publicação de fusão usando SQL Server Management Studio para publicar um subconjunto das tabelas Employee, SalesOrderHeader e SalesOrderDetail na AdventureWorks2025 base de dados de exemplo. Estas tabelas são filtradas com filtros de linhas parametrizados para que cada subscrição contenha uma partição única dos dados. Além disso, adicione o login do SQL Server utilizado pelo Merge Agent à lista de acesso à publicação (PAL).

Criar publicação de fusão e definir artigos

  1. Liga-te ao publicador no SQL Server Management Studio e depois expande o nó do servidor.

  2. Inicie o SQL Server Agent clicando com o botão direito no Explorador de Objetos e selecionando Iniciar. Se este passo não iniciar o agente, terás de o fazer manualmente a partir do SQL Server Configuration Manager.

  3. Expanda a pasta Replicação , clique com o botão direito em Publicações Locais e selecione Nova Publicação. O Novo Mago da Publicação começa:

    Seleções para iniciar o New Publication Wizard

  4. Na página da Base de Dados de Publicações , selecione AdventureWorks2025, e depois selecione Próximo.

  5. Na página Tipo de Publicação, selecione Mesclar publicação e depois selecione Seguinte.

  6. Na página de Tipos de Assinantes , certifique-se de que apenas SQL Server 2008 (10.0.x) ou posterior está selecionado, e depois selecione Próximo:

    Páginas de

  7. Na página Artigos, expanda o nó Tabelas. Selecione as seguintes três tabelas: Employee, SalesOrderHeader e SalesOrderDetail. Selecione Avançar.

    Seleção de tabelas na página de

    Observação

    A tabela Employee inclui uma coluna (OrganizationNode) que utiliza o tipo de dados hierarchyid. Este tipo de dado é suportado apenas para replicação no SQL Server 2017.

    Se estiver a usar uma compilação anterior ao SQL Server 2017, aparece uma mensagem na parte inferior do ecrã a notificá-lo de uma possível perda de dados por usar esta coluna em replicação bidirecional. Para efeitos deste tutorial, pode ignorar esta mensagem. No entanto, este tipo de dado não deve ser replicado num ambiente de produção a menos que esteja a usar a build suportada.

    Para mais informações sobre a replicação do tipo de dados hierarchyid, consulte a Utilização de colunas hierarchyid na replicação.

  8. Na página de Linhas da Tabela de Filtros , selecione Adicionar e depois selecione Adicionar Filtro.

  9. Na caixa de diálogo Adicionar Filtro , selecione Colaborador (Recursos Humanos) em Selecionar a tabela a filtrar. Selecione a coluna LoginID , selecione a seta direita para adicionar a coluna à cláusula WHERE da consulta do filtro e modifique a cláusula WHERE da seguinte forma:

     WHERE [LoginID] = HOST_NAME()  
    

    Selecione Uma linha desta tabela irá para apenas uma subscrição e selecione OK.

    Seleções para adicionar um filtro

  10. Na página de Linhas da Tabela de Filtros , selecione Colaborador (Recursos Humanos),selecione Adicionar e depois selecione Adicionar Juntar para Estender o Filtro Selecionado.

    a. Na caixa de diálogo Adicionar Junção, selecione Sales.SalesOrderHeader na Tabela Unida. Selecione Escrever manualmente a instrução join e complete a instrução join da seguinte forma:

    ON [Employee].[BusinessEntityID] =  [SalesOrderHeader].[SalesPersonID] 
    

    b) Em Especificar opções de junção, selecione Chave Única e depois selecione OK.

    Seleções para adicionar uma junção ao filtro

  11. Na página de Linhas da Tabela de Filtros , selecione CabeçalhoEncomenda de Vendas, selecione Adicionar e depois selecione Adicionar Juntar para Estender o Filtro Selecionado.

    a. Na caixa de diálogo Adicionar Associação, selecione Sales.SalesOrderDetail na tabela Associada.
    b) Selecione Usar o Construtor para criar a instrução.
    c. Na caixa Pré-visualização, confirme que a instrução de junção é a seguinte:

    ON [SalesOrderHeader].[SalesOrderID] = [SalesOrderDetail].[SalesOrderID] 
    

    d. Em Especificar opções de junção, selecione Chave Única e depois selecione OK. Selecione Avançar.

    Seleções para adicionar outra junção, para encomendas de venda

  12. Selecione Criar um instantâneo imediatamente, desmarque Agendar o agente de instantâneo para ser executado nos seguintes horários e selecione Seguinte:

    Seleção para criar um instantâneo imediatamente

  13. Na página de Segurança do Agente , selecione Definições de Segurança. Introduza <Publisher_Machine_Name>\repl_snapshot na caixa Processar conta, introduza a palavra-passe dessa conta e depois selecione OK. Selecione Avançar.

    Seleções para definir a segurança do Snapshot Agent

  14. Na página Completar o Assistente, inserir AdvWorksSalesOrdersMerge no campo Nome da Publicação e selecionar Terminar:

    Página

  15. Depois de criada a publicação, selecione Fechar. No nó Replicação no Explorador de Objetos, clique com o botão direito do rato sobre Publicações Locais e selecione Atualizar para ver a sua nova replicação de fusão.

Ver o estado da geração de instantâneos

  1. Liga-te ao publicador no SQL Server Management Studio, expande o nó do servidor e depois expande a pasta Replicação.

  2. Na pasta Publicações Locais , clique com o botão direito em AdvWorksSalesOrdersMerge e depois selecione Ver Estado do Agente de Snapshot:

    Seleções para visualizar o estado do Snapshot Agent

  3. O estado atual do trabalho de Agente de Snapshot para a publicação aparece. Certifique-se de que o trabalho de snapshot foi concluído com êxito antes de passar para a próxima lição.

Adicionar o login do Merge Agent ao PAL

  1. Liga-te ao publicador no SQL Server Management Studio, expande o nó do servidor e depois expande a pasta Replicação.

  2. Na pasta Publicações Locais , clique com o botão direito em AdvWorksSalesOrdersMerge e depois selecione Propriedades.

    a. Selecione a página da Lista de Acesso à Publicação e selecione Adicionar.

    b) Na caixa de diálogo Adicionar Acesso à Publicação, selecione <Publisher_Machine_Name>\repl_merge e selecione OK. Selecione OK novamente.

    Seleções para adicionar o login do Merge Agent

Para obter mais informações, consulte:

Crie uma subscrição para a publicação de fusão

Nesta seção, adiciona uma subscrição à publicação de fusão que criou anteriormente. Este tutorial utiliza o assinante remoto (NODE2\SQL2016). Depois define permissões na base de dados de subscrição e gera manualmente o snapshot de dados filtrado para a nova subscrição.

Adicione um assinante para publicação da fusão

  1. Conecte-se ao assinante no SQL Server Management Studio e expanda o nó do servidor. Expanda a pasta Replicação , clique com o botão direito na pasta Local Subscriptions e depois selecione Novas Subscrições. O Novo Assistente de Subscrição começa:

    Seleções para iniciar o Novo Assistente de Subscrição

  2. Na página de Publicação, selecione Encontrar Publicador do SQL Server na lista de Publicadores.

    Na caixa de diálogo Ligar ao Servidor , introduza o nome da instância do editor na caixa de nome do Servidor e selecione Conectar.

    Seleções para adicionar um editor

  3. Selecione AdvWorksSalesOrdersMerge e selecione Próximo.

  4. Na página Localização do Agente de Fusão, selecione Executar cada agente no respetivo Assinante e depois selecione Seguinte:

    Opção

  5. Na página de Subscritores , selecione o nome da instância do servidor assinante. Em Base de Dados de Subscrição, selecione Nova Base de Dados da lista.

    Na caixa de diálogo Nova Base de Dados, insira PedidosDeVendaReplica na caixa Nome da Base de Dados. Selecione OK e, em seguida, selecione Avançar.

    Seleções para adicionar uma base de dados ao assinante

  6. Na página de Segurança do Agente de Fusão, selecione o botão de reticência (...). Introduza <Subscriber_Machine_Name>\repl_merge na caixa Processar conta e forneça a palavra-passe dessa conta. Selecione OK, selecione Próximo e depois selecione Seguinte novamente.

    Seleções para a segurança do Merge Agent

  7. Na página de Cronograma de Sincronização , defina o Agendamento do Agente para Correr apenas sob demanda. Selecione Avançar.

    Seleção

  8. Na página Inicializar Subscrições , selecione Na primeira sincronização na lista Inicializar Quando . Selecione Seguinte para avançar até à página de Tipo de Subscrição e selecione o tipo de subscrição apropriado. Este tutorial utiliza o Cliente. Depois de selecionar o tipo de subscrição, selecione Seguinte novamente.

    Seleções para inicializar subscrições na primeira sincronização

  9. Na página HOST_NAME Valor, introduza o valor adventure-works\pamela0 na caixa HOST_NAME Valor. Em seguida, selecione Concluir.

  10. Selecione Concluir novamente. Depois de criar a subscrição, selecione Fechar.

Definir permissões do servidor no assinante

  1. Ligue-se ao assinante no SQL Server Management Studio. Expanda Segurança, clique com o botão direito do mouse em Logons e selecione Novo Login.

    Na página Geral , selecione Pesquisar e depois introduza <Subscriber_ Machine_Name>\repl_merge na caixa Introduzir o Nome do Objeto . Selecione Verificar Nomes e, em seguida, selecione OK.

    Seleções para definir o login

  2. Na página de Mapeamento do Utilizador , selecione a base de dados SalesOrdersReplica e selecione a função db_owner . Na página Securitários, conceda a permissão explícita para alterar o rastreamento. Selecione OK.

    Páginas de

Crie a imagem de dados filtrada para a subscrição

  1. Liga-te ao publicador no SQL Server Management Studio, expande o nó do servidor e depois expande a pasta Replicação.

  2. Na pasta Publicações Locais , clique com o botão direito na publicação AdvWorksSalesOrdersMerge e depois selecione Propriedades.

    a. Selecione a página de Partições de Dados e selecione Adicionar.
    b) Na caixa de diálogo Adicionar Partição de Dados, introduza adventure-works\pamela0 na caixa HOST_NAME Valor e depois selecione OK.
    c. Selecione a partição recém-adicionada, selecione Gerar os snapshots selecionados agora e depois selecione OK.

    Seleções para adicionar uma partição

Para obter mais informações, consulte:

Sincronizar a subscrição com a publicação da fusão

Nesta secção, inicia o Merge Agent para inicializar a subscrição usando o SQL Server Management Studio. Também utilizas este procedimento para sincronizar com o editor.

Iniciar a sincronização e inicializar a subscrição

  1. Ligue-se ao assinante no SQL Server Management Studio.

  2. Certifique-se de que o Agente SQL Server está a funcionar. Se não estiver, clique com o botão direito no SQL Server Agent no Object Explorer e selecione Iniciar. Se este passo falhar ao iniciar o seu agente, terá de o fazer manualmente usando o SQL Server Configuration Manager.

  3. Expanda o nó de Replicação . Na pasta Local Subscriptions , clique com o botão direito na subscrição na base de dados SalesOrdersReplica e depois selecione Ver Estado de Sincronização.

    Selecione Iniciar para inicializar a subscrição.

    Estado de sincronização com o botão