Tutorial: Preparar o SQL Server para replicação (editor, distribuidor, assinante)

Aplica-se a:SQL Server

É importante planejar a segurança antes de configurar a topologia de replicação. Este tutorial mostra como você deve proteger melhor uma topologia de replicação. Ele também mostra como configurar a distribuição, que é a primeira etapa na replicação de dados. É preciso concluir este tutorial antes de qualquer outro.

Observação

Para replicar dados com segurança entre servidores, é necessário implementar todas as recomendações em Práticas recomendadas em relação à segurança de replicação.

O que você aprenderá

Este tutorial ensina você a preparar um servidor para que a replicação possa ser executada de modo seguro com privilégios mínimos.

Neste tutorial, você aprenderá a:

  • Crie contas do Windows para replicação.
  • Prepare a pasta de instantâneos.
  • Configure a distribuição.

Pré-requisitos

Este tutorial é destinado a usuários que estão familiarizados com operações fundamentais de bancos de dados, mas que têm pouca experiência com 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. Estas edições não podem ser editores 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 Compact. O SQL Server Compact não pode ser um assinante em uma replicação transacional.

  • 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. Para saber mais, veja Supported SQL Server Versions in Replication Topology (Versões do SQL Server compatíveis na topologia de replicação).
  • 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: 30 minutos

Criar contas do Windows para replicação

Nesta seção, você criará contas do Windows para executar os agentes de replicação. Você criará uma conta de Windows separada no servidor local para os seguintes agentes:

Agente Localidade Account name
Snapshot Agent Publisher <machine_name>\repl_snapshot
Agente de Leitor de Log Publisher <machine_name>\repl_logreader
Agente de Distribuição Publicador e assinante <machine_name>\repl_distribution
Merge Agent Publicador e assinante <machine_name>\repl_merge

Observação

Nos tutoriais de replicação, o editor e o distribuidor compartilham a mesma instância (NODE1\SQL2016) do SQL Server. A instância de assinante (NODE2\SQL2016) é remota. O editor e o assinante podem compartilhar a mesma instância do SQL Server, mas isso não é um requisito. Se o editor e o assinante compartilharem a mesma instância, as etapas usadas para criar contas no assinante não são necessárias.

Criar contas locais do Windows para agentes de replicação no editor

  1. No editor, abra Gerenciamento do Computador em Ferramentas Administrativas no Painel de Controle.

  2. Em Ferramentas do Sistema, expanda Usuários e Grupos Locais.

  3. Clique com o botão direito do mouse em Usuários e, em seguida, selecione Novo Usuário.

  4. Insira repl_snapshot na caixa Nome de usuário, forneça a senha e outras informações relevantes e, em seguida, selecione Criar para criar a conta repl_snapshot:

  5. Repita a etapa anterior para criar as contas de repl_logreader, repl_distribution e repl_merge:

    List of replication users

  6. Selecione Fechar.

Crie contas locais do Windows para agentes de replicação no assinante

  1. No assinante, abra Gerenciamento do Computador em Ferramentas Administrativas no Painel de Controle.

  2. Em Ferramentas do Sistema, expanda Usuários e Grupos Locais.

  3. Clique com o botão direito do mouse em Usuários e, em seguida, selecione Novo Usuário.

  4. Insira repl_distribution na caixa Nome de usuário, forneça a senha e outras informações relevantes e, em seguida, selecione Criar para criar a conta repl_distribution.

  5. Repita a etapa anterior para criar a conta de repl_merge.

  6. Selecione Fechar.

Para saber mais, veja Visão geral dos agentes de replicação.

Preparar a pasta de instantâneos

Nesta seção, você configurará a pasta de instantâneos, usada para criar e armazenar o instantâneo de publicação.

Criar um compartilhamento para a pasta de instantâneos e atribuir permissões

  1. No Explorador de Arquivos, navegue até a pasta de dados do SQL Server. O local padrão é C:\Arquivos de Programa\Microsoft SQL Server\MSSQL.X\MSSQL\Data.

  2. Crie uma nova pasta chamada repldata.

  3. Clique com o botão direito do mouse nessa pasta e selecione Propriedades.

    a. Na guia Compartilhamento da caixa de diálogo Propriedades de repldata, selecione Compartilhamento Avançado.

    b. Na caixa de diálogo Compartilhamento Avançado, selecione Compartilhar esta Pasta e, em seguida, selecione Permissões.

    Selections for sharing the repldata folder

  4. Na caixa de diálogo Permissões para repldata, selecione Adicionar. Na caixa de texto Selecionar Usuário, Computadores, Conta de Serviço ou Grupos, digite o nome da conta do Agente de Instantâneo criado anteriormente, como <Nome_do_Computador_do_Editor>\repl_snapshot. Selecione Verificar Nomes e, em seguida, OK.

    Selections to add sharing permissions

  5. Repita a etapa 6 para adicionar as outras duas contas que você criou anteriormente: <Nome_do_Computador_do_Editor>\repl_merge e <Nome_do_Computador_do_Editor>\repl_distribution.

  6. Depois de adicionar as três contas, atribua as seguintes permissões:

    • repl_distribution: Leitura
    • repl_merge: Leitura
    • repl_snapshot: Controle Total

    Shared permissions for each account

  7. Depois que as permissões de compartilhamento forem configuradas corretamente, selecione OK para fechar a caixa de diálogo Permissões para repldata. Selecione OK para fechar a caixa de diálogo Compartilhamento Avançado.

  8. Na caixa de diálogo Propriedades de repldata, selecione a guia Segurança e Editar:

  9. Na caixa de diálogo Permissões para repldata, selecione Adicionar. Na caixa de texto Selecionar Usuários, Computadores, Conta de Serviço ou Grupos, digite o nome da conta do Agente de Instantâneo criado anteriormente, como <Nome_do_Computador_do_Editor>\repl_snapshot. Selecione Verificar Nomes e, em seguida, OK.

    Selections to add security permissions

  10. Repita a etapa anterior para adicionar permissões para o Agente de Distribuição, como <Nome_do_Computador_do_Editor>\repl_distribution, e para o Agente de Mesclagem, como <Nome_do_Computador_do_Editor>\repl_merge.

  11. Verifique se as permissões a seguir são permitidas:

    • repl_distribution: Leitura
    • repl_merge: Leitura
    • repl_snapshot: Controle Total

    User permissions for replication data

  12. Selecione a guia Compartilhamento novamente e anote o Caminho da Rede para o compartilhamento. Você precisará desse caminho posteriormente quando estiver configurando a pasta de instantâneos.

    Network path on the

  13. Selecione OK para fechar a caixa de diálogo Propriedades de repldata.

Para saber mais, veja Proteger a pasta de instantâneos.

Configurar distribuição

Nesta seção, você configurará a distribuição no editor e definirá as permissões necessárias nos bancos de dados de publicação e distribuição. Se você já tiver configurado o distribuidor, será necessário desabilitar a publicação e a distribuição antes de iniciar esta seção. Não faça isto se for preciso manter uma topologia de replicação existente, especialmente em produção.

A configuração de um editor com um distribuidor remoto está fora do escopo deste tutorial.

Configurar a distribuição no editor

  1. Conecte-se ao Publicador no SQL Server Management Studio e expanda o nó de servidor.

  2. Clique com o botão direito do mouse na pasta Replicação e selecione Configurar Distribuição:

    Observação

    • Se você tiver se conectado ao SQL Server usando localhost em vez do nome do servidor real, receberá um aviso de que o SQL Server não pode se conectar ao localhost ou Endereço IP. Selecione OK na caixa de diálogo de aviso. Na caixa de diálogo Conectar ao Servidor, altere o Nome do servidor de localhost ou Endereço IP para o nome do seu servidor. Depois, selecione Conectar.
    • No momento, há um problema conhecido com o SSMS (SQL Server Management Studio) 18.0 (e versões posteriores) em que uma mensagem de aviso não é exibida ao se conectar ao distribuidor com o endereço IP, mas isso ainda é inválido. O nome real do servidor deve ser usado ao se conectar ao distribuidor.

    O Assistente para Configuração de Distribuição é iniciado.

  3. Na página Distribuidor, selecionar <'ServerName'> atuará como seu próprio Distribuidor; o SQL Server criará um banco de dados de distribuição e um log. Em seguida, selecione Avançar.

    Option to make the server act as its own distributor

  4. Se o SQL Server Agent não estiver em execução, na página Inicial do SQL Server Agent, selecione Sim, configurar o serviço do SQL Server Agent para ser iniciado automaticamente. Selecione Avançar.

  5. Insira o caminho \\<Nome_do_Computador_do_Editor>\repldata na caixa de texto Pasta de instantâneos e, em seguida, selecione Avançar. Esse caminho deve corresponder ao que você viu anteriormente em Caminho da Rede para a pasta de propriedades de repldata depois de configurar as propriedades de compartilhamento.

    Comparison of network paths in the

  6. Aceite os valores padrão das páginas restantes do assistente.

    Last page of the wizard

  7. Selecione Concluir para habilitar a distribuição.

Você poderá ver esse erro a seguir ao configurar o distribuidor. É uma indicação de que a conta usada para iniciar a conta do SQL Server Agent não é um administrador do sistema. Você precisará iniciar o SQL Server Agent manualmente, conceder as permissões para a conta existente ou modificar a conta que está sendo usada pelo SQL Server Agent.

Error message for configuring the SQL Server Agent

Se a instância do SQL Server Management Studio estiver sendo executada com direitos administrativos, você poderá iniciar o SQL Agent manualmente no SSMS:

Selecting

Observação

Se o SQL Agent não for visivelmente iniciado, clique com o botão direito do mouse no SQL Server Agent no SSMS e selecione Atualizar. Se ele ainda estiver em um estado interrompido, você precisará iniciá-lo manualmente no SQL Server Configuration Manager.

Definir permissões do banco de dados

  1. No SQL Server Management Studio, expanda Segurança, clique com o botão direito do mouse em Logons e selecione Novo Logon:

  2. Na página Geral, selecione Pesquisar. Insira <Nome_do_Computador_do_Editor>\repl_snapshot na caixa Inserir o nome do objeto a ser selecionado, selecione Verificar Nomes e OK.

    Selections for entering the object name

  3. Na página Mapeamento de Usuário, na lista Usuários mapeados para este logon, selecione os bancos de dados de distribuição e de AdventureWorks2022.

    Na lista associação à função de banco de dados, selecione a função db_owner para o logon de ambos os bancos de dados.

    Selecting the databases and their role

  4. Selecione OK para criar o logon.

  5. Repita as etapas 1 a 4 para criar um logon para outras contas locais (repl_distribution, repl_logreader e repl_merge). Esses logons também devem ser mapeados para usuários que são membros da função de banco de dados fixa db_owner nos bancos de dados de distribuição e AdventureWorks.

    View of all four accounts in Object Explorer

Para saber mais, veja:

Próximas etapas

Agora você preparou com êxito o servidor para replicação. O próximo artigo ensina como configurar a Replicação Transacional: