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
No editor, abra Gerenciamento do Computador em Ferramentas Administrativas no Painel de Controle.
Em Ferramentas do Sistema, expanda Usuários e Grupos Locais.
Clique com o botão direito do mouse em Usuários e, em seguida, selecione Novo Usuário.
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:
Repita a etapa anterior para criar as contas de repl_logreader, repl_distribution e repl_merge:
Selecione Fechar.
Crie contas locais do Windows para agentes de replicação no assinante
No assinante, abra Gerenciamento do Computador em Ferramentas Administrativas no Painel de Controle.
Em Ferramentas do Sistema, expanda Usuários e Grupos Locais.
Clique com o botão direito do mouse em Usuários e, em seguida, selecione Novo Usuário.
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.
Repita a etapa anterior para criar a conta de repl_merge.
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
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.
Crie uma nova pasta chamada repldata.
Clique com o botão direito do mouse nessa pasta e selecione Propriedades.
Na guia Compartilhamento da caixa de diálogo Propriedades de repldata, selecione Compartilhamento Avançado.
Na caixa de diálogo Compartilhamento Avançado, selecione Compartilhar esta Pasta e, em seguida, selecione Permissões.
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.
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.
Depois de adicionar as três contas, atribua as seguintes permissões:
- repl_distribution: Leitura
- repl_merge: Leitura
- repl_snapshot: Controle Total
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.
Na caixa de diálogo Propriedades de repldata, selecione a guia Segurança e Editar:
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.
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.
Verifique se as permissões a seguir são permitidas:
- repl_distribution: Leitura
- repl_merge: Leitura
- repl_snapshot: Controle Total
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.
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
Conecte-se ao Publicador no SQL Server Management Studio e expanda o nó de servidor.
Clique com o botão direito do mouse na pasta Replicação e selecione Configurar Distribuição:
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.
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.
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.
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.
Aceite os valores padrão das páginas restantes do assistente.
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.
Se a instância do SQL Server Management Studio estiver sendo executada com direitos administrativos, você poderá iniciar o SQL Agent manualmente 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
No SQL Server Management Studio, expanda Segurança, clique com o botão direito do mouse em Logons e selecione Novo Logon:
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.
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.
Selecione OK para criar o logon.
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.
Para obter mais informações, consulte Configurar a distribuição e o modelo de segurança do Replication Agent.