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 transacional é uma boa solução para o problema de mover dados entre servidores continuamente conectados. Ao usar o Assistente de Replicação, pode facilmente configurar e administrar uma topologia de replicação.
Este tutorial mostra-lhe como configurar uma topologia de replicação transacional para servidores continuamente ligados. Para mais informações sobre como funciona a replicação transacional, consulte a visão geral da replicação transacional.
O que vais aprender
Este tutorial ensina-o a publicar dados de uma base de dados para outra usando replicação transacional.
Neste tutorial, vai aprender a:
- Crie um publicador com replicação transacional.
- Crie um subscritor para o publicador transacional.
- Valida a subscrição e mede a latência.
Pré-requisitos
Este tutorial destina-se a utilizadores familiarizados com operações básicas 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 publicadores 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 o SQL Server Compact. O SQL Server Compact não pode ser assinante na replicação transacional.
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
Configure o Publisher para replicação transacional
Nesta secção, cria uma publicação transacional usando SQL Server Management Studio para publicar um subconjunto filtrado da tabela Product na AdventureWorks2025 base de dados de exemplo. Também adiciona o login do SQL Server usado pelo Agente de Distribuição à lista de acesso à publicação (PAL).
Crie uma publicação e defina artigos
Liga-te ao publicador no SQL Server Management Studio e depois expande o nó do servidor.
Clique com o botão direito no SQL Server Agent e selecione Iniciar. O SQL Server Agent deve estar a correr antes de criar a publicação. Se este passo não iniciar o seu agente, terá de o fazer manualmente a partir do SQL Server Configuration Manager.
Expanda a pasta Replicação , clique com o botão direito na pasta Publicações Locais e selecione Nova Publicação. Este passo inicia o Novo Mago de Publicação:
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 Publicação Transacional e depois selecione Próximo:
Na página de Artigos, expanda o nó Tabelas e selecione a caixa de seleção Produto. Depois, expande Produto e limpa as caixas de seleção ao lado de Preço de Lista e de Custo Padrão. Selecione Avançar.
Na página de Linhas da Tabela de Filtro , selecione Adicionar.
Na caixa de diálogo Adicionar Filtro , selecione a coluna SafetyStockLevel . Selecione a seta da direita para adicionar a coluna à cláusula WHERE da consulta de filtro. Depois, digite manualmente o modificador da cláusula WHERE da seguinte forma:
WHERE [SafetyStockLevel] < 500
Selecione OK e, em seguida, selecione Avançar.
Selecione a caixa Criar um snapshot imediatamente e mantenha o snapshot disponível para inicializar subscrições, e selecione Seguinte:
Na página Segurança do Agente, desmarque a caixa Usar as definições de segurança do Snapshot Agent.
Selecione Definições de Segurança para o Agente de Snapshot. Introduza <Publisher_Machine_Name>\repl_snapshot na caixa Processar conta, introduza a palavra-passe dessa conta e depois selecione OK.
Repita o passo anterior para definir <Publisher_Machine_Name>\repl_logreader como conta de processo para o Agente Leitor de Log. Em seguida, selecione OK.
Na página Completar o Assistente, escreva AdvWorksProductTrans na caixa de nome da Publicação e selecione Concluir:
Depois de a publicação ser criada, selecione Fechar para completar o assistente.
Pode encontrar o seguinte erro se o seu SQL Server Agent não estiver a correr quando tentar criar a publicação. Este erro indica que a sua publicação foi criada com sucesso, mas o seu Snapshot Agent não conseguiu iniciar. Se isto acontecer, terá de iniciar o SQL Server Agent e depois iniciar manualmente o Snapshot Agent. A secção seguinte dá instruções.
Ver o estado da geração de instantâneos
Liga-te ao editor no SQL Server Management Studio, expande o nó servidor e depois expande a pasta Replication .
Na pasta Publicações Locais , clique com o botão direito em AdvWorksProductTrans e depois selecione Ver Estado do Agente de Snapshot:
O estado atual do trabalho de Agente de Snapshot para a publicação aparece. Verifique se a tarefa de snapshot foi bem-sucedida antes de continuar para a secção seguinte.
Se o seu SQL Server Agent não estava em execução quando criou a publicação, verá que o Snapshot Agent nunca foi executado ao verificar o estado do Snapshot Agent para a sua publicação. Se for esse o caso, selecione Iniciar para iniciar o seu Snapshot Agent:
Se vir um erro aqui, consulte Erro do Agente de Instantâneo no Resolução de Problemas.
Adicionar o login do Agente de Distribuição ao PAL
Liga-te ao editor no SQL Server Management Studio, expande o nó servidor e depois expande a pasta Replication .
Na pasta Publicações Locais , clique com o botão direito em AdvWorksProductTrans e depois selecione Propriedades. A caixa de diálogo Propriedades de Publicação aparece.
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_distribution e selecione OK.
Para mais informações, veja Conceitos de programação de replicação.
Crie uma subscrição para a publicação transacional
Nesta secção, adiciona um assinante à publicação que criou anteriormente. Este tutorial utiliza um assinante remoto (NODE2\SQL2016), mas também pode adicionar uma assinatura localmente ao publicador.
Criar a subscrição
Liga-te ao editor no SQL Server Management Studio, expande o nó servidor e depois expande a pasta Replication .
Na pasta Publicações Locais , clique com o botão direito na publicação AdvWorksProductTrans e depois selecione Novas Subscrições. O Novo Assistente de Subscrição começa:
Na página de Publicação, selecione AdvWorksProductTrans e depois selecione Próximo:
Na página de Localização do Agente de Distribuição , selecione Executar todos os agentes no Distribuidor e depois selecione Próximo. Para mais informações sobre subscrições pull and push, consulte Subscrever publicações.
Na página Subscritores, se o nome da instância do subscritor não estiver exibido, selecione Adicionar Subscritor e depois selecione Adicionar Subscritor do SQL Server na lista suspensa. Este passo abre a caixa de diálogo Ligar ao Servidor . Introduza o nome da instância do assinante e depois selecione Conectar.
Depois de o assinante ser adicionado, selecione a caixa de seleção ao lado do nome da instância do seu assinante. Depois, selecione Nova Base de Dados em Base de Dados por Subscrição.
A caixa de diálogo Nova Base de Dados aparece. Introduza Réplica de Produto na caixa de nome da base de dados , selecione OK e depois selecione Próximo:
Na página de Segurança do Agente de Distribuição , selecione o botão de reticência (...). Introduza <Publisher_Machine_Name>\repl_distribution na caixa Processar conta , introduza a palavra-passe desta conta, selecione OK e depois selecione Próximo.
Selecione Terminar para aceitar os valores padrão nas páginas restantes e complete o assistente.
Definir permissões de base de dados no assinante
Estabeleça ligação ao assinante no SQL Server Management Studio. Expanda Segurança, clique com o botão direito do mouse em Logons e selecione Novo Login.
a. Na página Geral , em Nome de Login, selecione Pesquisar e adicione o login para <Subscriber_Machine_Name>\repl_distribution.
b) Na página Mapeamentos de Usuários, conceda o login db_owner como membro da base de dados ProductReplica.
Selecione OK para fechar a caixa de diálogo Novo Login .
Veja o estado de sincronização da subscrição
Conecte-se ao editor no SQL Server Management Studio. Expande o nó do servidor e, em seguida, expande a pasta Replicação.
Na pasta Publicações Locais , expanda a publicação AdvWorksProductTrans , clique com o botão direito na subscrição na base de dados ProductReplica e depois selecione Ver Estado de Sincronização. O estado atual de sincronização da subscrição aparece:
Se a subscrição não estiver visível em AdvWorksProductTrans, selecione a tecla F5 para atualizar a lista.
Para obter mais informações, consulte:
Mede a latência de replicação
Nesta secção, utiliza-se tokens rastreadores para verificar se as alterações estão a ser replicadas ao assinante e para determinar a latência. Latência é o tempo que demora até uma alteração feita no editor aparecer ao assinante.
Conecte-se ao editor no SQL Server Management Studio. Expanda o nó do servidor, clique com o botão direito na pasta Replicação e selecione Iniciar o Monitor de Replicação:
Expanda um grupo de editores no painel esquerdo, expanda a instância do editor e depois selecione a publicação AdvWorksProductTrans .
a. Selecione o separador Tokens de Rastreio.
b) Selecione Inserir Rastreador.
c. Veja o tempo decorrido para o token rastreador nas colunas seguintes: Editor para Distribuidor, Distribuidor para Assinante, Latência Total. O valor de Pendente indica que o token não atingiu um ponto especificado.
Para obter mais informações, consulte:
- Mede a latência e valida ligações para replicação transacional
- Encontrar erros com os agentes de replicação transacional