Partilhar via


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

Aplica-se a:SQL Server

É importante planear a segurança antes de configurar a topologia de replicação. Este tutorial mostra-te como proteger melhor uma topologia de replicação. Também mostra como configurar a distribuição, que é o primeiro passo para replicar dados. Tens de completar este tutorial antes de qualquer um dos outros.

Observação

Para replicar dados de forma segura entre servidores, deve implementar todas as recomendações nas melhores práticas de segurança de Replicação.

Este tutorial ensina-o a preparar um servidor para que a replicação possa correr de forma segura com o mínimo de privilégios.

Neste tutorial, aprenderás como:

  • Criar contas Windows para replicação.
  • Prepara a pasta de snapshots.
  • Configurar a distribuição.

Pré-requisitos

Este tutorial destina-se a utilizadores familiarizados com operações fundamentais de bases de dados, mas que têm exposição limitada à replicação.

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

Observação

  • A replicação não é suportada em instâncias do SQL Server separadas por mais de duas versões. Para mais informações, veja Retrocompatibilidade de Replicação.

  • 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: 30 minutos

Criar contas Windows para replicação

Nesta secção, cria contas Windows para executar agentes de replicação. Cria-se uma conta Windows separada no servidor local para os seguintes agentes:

Agente Localização Nome da conta
Agente de instantâneo Editora < machine_name>\repl_snapshot
Agente Leitor de Logs Editora < machine_name>\repl_logreader
Agente de Distribuição Editora e assinante < machine_name>\repl_distribution
Agente de fusão Editora e assinante < machine_name>\repl_merge

Observação

Nos tutoriais de replicação, o editor e o distribuidor partilham a mesma instância (NODE1\SQL2016) do SQL Server. A instância de assinante (NODE2\SQL2016) é remota. O editor e o subscritor podem partilhar a mesma instância do SQL Server, mas não é um requisito. Se o editor e o assinante partilharem a mesma instância, os passos usados para criar contas no assinante não são necessários.

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

  1. Na editora, abre a Gestão de Computadores a partir das Ferramentas Administrativas no Painel de Controlo.

  2. Em Ferramentas de Sistema, expanda os Utilizadores e Grupos Locais.

  3. Clique com o botão direito em Utilizadores e depois selecione Novo Utilizador.

  4. Introduza repl_snapshot na caixa de nome de utilizador , forneça a palavra-passe e outras informações relevantes, e depois selecione Criar para criar a conta repl_snapshot:

    Captura de ecrã da caixa de diálogo 'Novo Utilizador'.

  5. Repita o passo anterior para criar as contas repl_logreader, repl_distribution e repl_merge:

    Captura de ecrã da lista de utilizadores de replicação.

  6. Selecione Fechar.

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

  1. No computador do assinante, abra o Gestor de Computadores nas Ferramentas Administrativas no Painel de Controlo.

  2. Em Ferramentas de Sistema, expanda os Utilizadores e Grupos Locais.

  3. Clique com o botão direito em Utilizadores e depois selecione Novo Utilizador.

  4. Introduza repl_distribution na caixa de nome de utilizador, forneça a palavra-passe e outras informações relevantes, e depois selecione Criar para criar a conta repl_distribution.

  5. Repita o passo anterior para criar a conta repl_merge.

  6. Selecione Fechar.

Para mais informações, consulte a visão geral dos Agentes de Replicação.

Prepara a pasta de instantâneo

Nesta secção, configura a pasta snapshot que é usada para criar e armazenar o snapshot da publicação.

Crie uma partilha para a pasta snapshot e atribua permissões

  1. No Explorador de Ficheiros, navegue até à pasta de dados do SQL Server. A localização padrão é C:\Program Files\Microsoft SQL Server\MSSQL. X\MSSQL\Data.

  2. Cria uma nova pasta chamada repldata.

  3. Clique com o botão direito nesta pasta e selecione Propriedades.

    1. No separador Partilha na caixa de diálogo Propriedades repldata , selecione Partilha Avançada.

    2. Na caixa de diálogo Partilha Avançada , selecione Partilhar esta Pasta e depois selecionar Permissões.

    Captura de ecrã das seleções para partilhar a pasta repldata.

  4. Na caixa de diálogo Permissões para repldata , selecione Adicionar. Na caixa Selecionar Utilizador, Computadores, Conta de Serviço ou Grupos, escreva o nome da conta do Snapshot Agent que criou anteriormente, tal como <Publisher_Machine_Name>\repl_snapshot. Selecione Verificar Nomes e, em seguida, selecione OK.

    Captura de ecrã das seleções para adicionar permissões de partilha.

  5. Repita o passo 6 para adicionar as outras duas contas que criou anteriormente: <Publisher_Machine_Name>\repl_merge e <Publisher_Machine_Name>\repl_distribution.

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

    • repl_distribution: Leitura
    • repl_merge: Leia
    • repl_snapshot: Controlo Total

    Captura de ecrã das permissões partilhadas para cada conta.

  7. Depois de as permissões de partilha estarem configuradas corretamente, selecione OK para fechar a caixa de diálogo Permissões para repldata . Selecione OK para fechar a caixa de diálogo Partilha Avançada .

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

    Captura de ecrã do botão 'Editar' no separador 'Segurança'.

  9. Na caixa de diálogo Permissões para repldata , selecione Adicionar. Na caixa Selecionar Utilizadores, Computadores, Contas de Serviço ou Grupos , escreva o nome da conta do Agente Snapshot que criou anteriormente, como <Publisher_Machine_Name>\repl_snapshot. Selecione Verificar Nomes e, em seguida, selecione OK.

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

  10. Repita o passo anterior para adicionar permissões ao Agente de Distribuição como <Publisher_Machine_Name>\repl_distribution, e ao Agente de Fusão como <Publisher_Machine_Name>\repl_merge.

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

    • repl_distribution: Leitura
    • repl_merge: Leia
    • repl_snapshot: Controlo Total

    Captura de ecrã das permissões do utilizador para dados de replicação.

  12. Selecione novamente o separador Partilhar e indique o Caminho de Rede para a partilha. Precisas deste caminho mais tarde, quando estiveres a configurar a tua pasta de snapshots.

    Captura de ecrã do caminho da rede no separador 'Partilhar'.

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

Para obter mais informações, consulte Proteger a pasta de snapshots.

Configurar distribuição

Nesta secção, configura a distribuição na editora e define as permissões necessárias nas bases de dados de publicação e distribuição. Se já configurou o distribuidor, deve desativar a publicação e distribuição antes de começar esta secção. Não desative a publicação e distribuição se tiver de manter uma topologia de replicação existente, especialmente em produção.

Configurar um editor com um distribuidor remoto está fora do âmbito deste tutorial.

Configurar a distribuição no publicador

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

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

    Captura de ecrã do comando 'Configurar Distribuição' no menu de atalhos.

    • Se se ligar ao SQL Server usando localhost em vez do nome real do servidor, é um aviso de que o SQL Server não consegue ligar ao localhost ou ao endereço IP. Selecione OK na caixa de aviso. Na caixa de diálogo Ligar ao Servidor , altere o nome do servidor de localhost ou endereço IP para o nome do seu servidor. Em seguida, selecione Conectar.

    • Atualmente, há um problema conhecido com o SQL Server Management Studio (SSMS) 18.0 (e posteriores), em que não aparece uma mensagem de aviso ao ligar-se ao Distribuidor com o endereço IP, mas continua a ser inválida. O nome real do servidor deve ser usado ao ligar 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 no 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 de Configuração de Distribuição inicia.

  3. Na página do Distribuidor, selecione <'Nomedo do Servidor'>funcionará como um Distribuidor próprio; O SQL Server cria uma base de dados de distribuição e regista. Em seguida, selecione Seguinte.

    Captura de ecrã da opção de fazer o servidor funcionar como distribuidor próprio.

  4. Se o Agente SQL Server não estiver a correr, na página de Início do Agente SQL Server, selecione Sim, configure o serviço do Agente SQL Server para iniciar automaticamente. Selecione Avançar.

  5. Introduza o caminho \\<Publisher_Machine_Name>\repldata na caixa da pasta Snapshot e depois selecione Próximo. Este caminho deve corresponder ao que viste anteriormente em Network Path para a pasta das propriedades de repldata, depois de configurares as propriedades de partilha.

    Captura de ecrã da comparação dos caminhos de rede na caixa de diálogo 'Propriedades repldata' e no Assistente de Configurar Distribuição.

  6. Aceite os valores predefinidos nas restantes páginas do assistente.

    Captura de ecrã da última página do feiticeiro.

  7. Selecione Terminar para ativar a distribuição.

Pode ver o seguinte erro ao configurar o distribuidor. É uma indicação de que a conta que foi usada para iniciar a conta do SQL Server Agent não é administradora no sistema. Ou tens de iniciar manualmente o SQL Server Agent, conceder essas permissões à conta existente, ou modificar qual a conta que o SQL Server Agent está a usar.

Captura de ecrã da mensagem de erro para configurar o SQL Server Agent.

Se a sua instância SQL Server Management Studio estiver a correr com direitos administrativos, pode iniciar o SQL Agent manualmente a partir do SSMS:

Captura de ecrã de selecionar 'Iniciar' no menu de atalhos do agente no SSMS.

Observação

Se o SQL Agent não começar visivelmente, clique com o botão direito no SQL Server Agent no SSMS e selecione Atualizar. Se ainda estiver no estado parado, inicia-o manualmente a partir do Gestor de Configuração do SQL Server.

Definir permissões de base de dados

  1. No SQL Server Management Studio, expanda Segurança, clique com o botão direito em Logins e depois selecione Novo Login:

    Captura de ecrã do comando 'Novo Login' no menu de atalho.

  2. Na página Geral , selecione Pesquisar. Introduza <Publisher_Machine_Name>\repl_snapshot na caixa Introduza o nome do objeto para selecionar, selecione Verificar Nomes e, em seguida, OK.

    Captura de ecrã das seleções para introduzir o nome do objeto.

  3. Na página de Mapeamento do Utilizador, na lista de Utilizadores mapeados para este login, selecione tanto as bases de dados de distribuição como AdventureWorks2025 outras bases de dados.

    Na lista de membros das funções da base de dados, selecione a função db_owner para o login de utilizador em ambas as bases de dados.

    Captura de ecrã da seleção das bases de dados e do seu papel.

  4. Selecione OK para criar o login.

  5. Repita os passos 1-4 para criar um login para as outras contas locais (repl_distribution, repl_logreader e repl_merge). Estes logins também devem ser mapeados para utilizadores que são membros da função fixa de base de dados db_owner nas bases de dados distribuição e AdventureWorks.

    Captura de ecrã das quatro contas no Object Explorer.

Para mais informações, consulte Configurar distribuição e modelo de segurança do Agente de Replicação.

Próximo passo