Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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
AdventureWorks2025exemplo. 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.
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
Liga-te ao publicador no SQL Server Management Studio e depois expande o nó do servidor.
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.
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:
Na página da Base de Dados de Publicações , selecione
AdventureWorks2025, e depois selecione Próximo.Na página Tipo de Publicação, selecione Mesclar publicação e depois selecione Seguinte.
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:
Na página Artigos, expanda o nó Tabelas. Selecione as seguintes três tabelas: Employee, SalesOrderHeader e SalesOrderDetail. Selecione Avançar.
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.
Na página de Linhas da Tabela de Filtros , selecione Adicionar e depois selecione Adicionar Filtro.
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.
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.
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.
Selecione Criar um instantâneo imediatamente, desmarque Agendar o agente de instantâneo para ser executado nos seguintes horários e selecione Seguinte:
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.
Na página Completar o Assistente, inserir AdvWorksSalesOrdersMerge no campo Nome da Publicação e selecionar Terminar:
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
Liga-te ao publicador no SQL Server Management Studio, expande o nó do servidor e depois expande a pasta Replicação.
Na pasta Publicações Locais , clique com o botão direito em AdvWorksSalesOrdersMerge e depois selecione Ver Estado do Agente de Snapshot:
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
Liga-te ao publicador no SQL Server Management Studio, expande o nó do servidor e depois expande a pasta Replicação.
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.
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
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:
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.
Selecione AdvWorksSalesOrdersMerge e selecione Próximo.
Na página Localização do Agente de Fusão, selecione Executar cada agente no respetivo Assinante e depois selecione Seguinte:
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.
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.
Na página de Cronograma de Sincronização , defina o Agendamento do Agente para Correr apenas sob demanda. Selecione Avançar.
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.
Na página HOST_NAME Valor, introduza o valor adventure-works\pamela0 na caixa HOST_NAME Valor. Em seguida, selecione Concluir.
Selecione Concluir novamente. Depois de criar a subscrição, selecione Fechar.
Definir permissões do servidor no assinante
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.
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.
Crie a imagem de dados filtrada para a subscrição
Liga-te ao publicador no SQL Server Management Studio, expande o nó do servidor e depois expande a pasta Replicação.
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.
Para obter mais informações, consulte:
- Subscreva publicações
- Crie uma subscrição de pull
- Snapshots para publicações de fusão com filtros parametrizados
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
Ligue-se ao assinante no SQL Server Management Studio.
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.
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.