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

Aplica-se: 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.

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. Essas edições não podem ser editores de replicação.

    • O banco de dados de exemplo AdventureWorks2022. Para aumentar 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 na replicação transacional.

  • Instale o SQL Server Management Studio.

  • Instale o SQL Server Developer Edition.

  • Baixe o banco de dados de exemplo do AdventureWorks. Para obter instruções sobre como restaurar um banco de dados no SSMS, consulte Restaurar um backup de banco de dados usando o SSMS.

Observação

  • Não há suporte para replicação em instâncias do SQL Server com mais de duas versões de diferença. Para obter mais informações, consulte Compatibilidade com versões anteriores 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 Editor <machine_name>\repl_snapshot
Agente de Leitor de Log Editor <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 publicador e o assinante podem compartilhar a mesma instância do SQL Server, mas isso não é um requisito. Se o publicador e o assinante compartilharem a mesma instância, as etapas usadas para criar contas no assinante não serã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:

    Captura de tela da caixa de diálogo 'Novo usuário'.

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

    Captura de tela da lista de usuários de replicação.

  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 obter mais informações, consulte 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.

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

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

    Captura de tela das seleções para compartilhar a pasta repldata.

  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.

    Captura de tela das seleções para adicionar permissões de compartilhamento.

  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

    Captura de tela das permissões compartilhadas para cada conta.

  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:

    Captura de tela do botão 'Editar' na guia 'Segurança'.

  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.

    Captura de tela das seleções para adicionar permissões de segurança.

  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

    Captura de tela das permissões de usuário para dados de replicação.

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

    Captura de tela do caminho de rede na guia 'Compartilhamento'.

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

Para obter mais informações, consulte 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á configurou o distribuidor, deverá desabilitar a publicação e a distribuição antes de iniciar esta seção. Não desabilite a publicação e a distribuição se você precisar 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:

    Captura de tela do comando 'Configurar distribuição' no menu de atalho.

    • Se você se conectar ao SQL Server usando localhost em vez do nome real do servidor, receberá um aviso de que o SQL Server não pode se conectar ao localhost ou ao 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.

    • Atualmente, há um problema conhecido com o SSMS (SQL Server Management Studio) 18.0 (e posterior) em que uma mensagem de aviso não é exibida ao se conectar ao Distribuidor com o endereço IP, mas ainda é inválida. O nome real do servidor deve ser usado ao se conectar ao distribuidor.

    Observação

    O nome do servidor pode ser especificado como <Hostname>,<PortNumber> para uma instância padrão ou <Hostname>\<InstanceName>,<PortNumber> para uma instância nomeada. Especifique o número da porta para sua conexão quando o SQL Server for implantado no Linux ou Windows com uma porta personalizada e o serviço do navegador estiver desabilitado. O uso de números de porta personalizados para distribuidor remoto se aplica ao SQL Server 2019 (15.x) e versões posteriores.

    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.

    Captura de tela da opção para fazer o servidor atuar como seu próprio distribuidor.

  4. Se o SQL Server Agent não estiver em execução, na página Iniciar do SQL Server Agent, selecione Sim, configurar o serviço do SQL Server Agent para iniciar 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.

    Captura de tela da comparação de caminhos de rede na caixa de diálogo 'repldata Properties' e no Assistente para Configurar Distribuição.

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

    Captura de tela da última página do assistente.

  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 que foi usada para iniciar a conta do SQL Server Agent não é um administrador no sistema. Você precisa iniciar o SQL Server Agent manualmente, conceder essas permissões à conta existente ou modificar qual conta o SQL Server Agent está usando.

Captura de tela da mensagem de erro para configurar o 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:

Captura de tela da seleção de 'Iniciar' no menu de atalho do agente no SSMS.

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:

    Captura de tela do comando 'Novo login' no menu de atalho.

  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.

    Captura de tela das seleções para inserir o nome do objeto.

  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.

    Captura de tela da seleção dos bancos de dados e sua função.

  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.

    Captura de tela de todas as quatro contas no Pesquisador de Objetos.

Para obter mais informações, consulte Configurar a distribuição e o modelo de segurança do Replication Agent.

Próxima etapa