Throwback Thursday – Replicação

Um manual prático para tecnologia e serviços

Throwback Thursday – Replicação

This entry is part [part not set] of 4 in the series Replicação SQL Server
Tempo de leitura: 3 minutos
5/5 - (2 votos)

Oi, oi gente! 🙂

Contradizendo meu primeiro post ‘TARDAMOS, MAS NÃO FALHAMOS’, falhei! Mas hoje é dia do tradicional #tbt e vou me aproveitar do movimento das massas para voltar. Partindo de uma necessidade, resolvi criar uma série e farei alguns posts sobre o tema.

Há algum tempo tive oportunidade de trabalhar num ambiente com replicação e era assustador quando a sincronização parava (acontecia com frequência). Na época não dei muita atenção por pensar ser algo ultrapassado (leiga como sou), mas a tecnologia continua sendo muito utilizada e em alguns casos é a única opção.

Disponível desde o SQL Server 6.0, a Microsoft veio aprimorando a ferramenta, o que acabou aumentando a confiabilidade, facilidade de uso e gerenciamento da mesma. Hoje a replicação é capaz de reunir dados dispersos geograficamente e distribuí-los em redes locais ou web. Permite alterações online, é aplicável em ambientes SQL Server Azure, de alta disponibilidade com uso de republicadores, com OLTP In-memory e ainda faz replicações heterogêneas (Oracle e DB2).

 Pensando em vantagens, utilizar replicação de dados garante redundância, performance, disponibilidade com processamento off-line, baixo custo e independência. É um recurso bem flexível, permite cópia, distribuição e sincronização de dados e objetos para outros bancos de dados, servidores e instâncias.

Componentes da replicação

  • Publicador: Responsável pela disponibilidade dos dados. Um publicador pode ter mais de uma publicação. Com o Publicador definido, é possível criar as publicações e escolhermos os objetos que serão replicados.
  • Assinante: Responsável por receber e manter os dados replicados. Dependendo do tipo de replicação escolhida, é possível que sejam feitas alterações no assinante e os dados sejam replicados para o publicador. Há dois tipos:
    • Assinatura push: o distribuidor atualiza diretamente os dados no banco de dados do Assinante.
    • Assinatura pull: o Assinante está agendado para verificar regularmente no Distribuidor se há novas alterações disponíveis e, em seguida, atualizará os dados no próprio banco de dados de assinaturas.
  • Distribuidor: Atua como um repositório de dados específicos da replicação (status, metadados). Cada publicador é associado a um banco de dados distribuidor e ambos podem estar na mesma instância ou não.
  • Artigo: identifica um objeto incluído na publicação, podem ser tabelas, views, procedures. E permitido dimensioná-lo utilizando filtros.
  • Agentes de Replicação: Executados como jobs pelo SQL Server Agent, os agentes de replicação são um conjunto de programas autônomos que executam as atividades relacionadas aos dados.
  • Snapshot Agent: Utilizado por todos os tipos de replicação, o snapshot é responsável pela sincronização inicial entre o publicador e assinante.
  • Log Reader Agent: Usado apenas com replicação transacional, é responsável por mover as transações de replicação do log de transações online, do banco de dados de publicação para o banco de dados de distribuição.
  • Agente de Distribuição: Usado apenas com a replicação Snapshot e replicação Transacional do SQL Server, faz a sincronização inicial com a assinatura.
  • Agente de Mesclagem: Utilizado com a replicação de mesclagem, faz upload de alterações do Assinante para o Publicador e download das alterações do Publicador para o Assinante. Executado no Distribuidor para assinaturas push ou no Assinante para assinaturas pull.

Tipos de Replicação

  • Replicação Snapshot: o publicador faz uma cópia completa da base de dados e disponibiliza para os assinantes. Como o consumo de recursos é alto, é adequada para cenários onde não é preciso atualização de dados imediata.
Fonte: Microsoft
  • Replicação Transacional: as alterações realizadas no publicador são monitoradas pelo Agent e replicadas para o assinante de forma que se mantenham atualizados. Adequada para ambientes que tenham boa conectividade.
Fonte: Microsoft
  • Replicação de mesclagem: permite alterações no publicador e no assinante (bidirecional). Em um ambiente onde nem sempre há conexão entre os servidores, essa opção é ideal. Caso aconteça de usuários diferentes alterarem a mesma linha (um no publicador e outro no assinante), o resolvedor de conflitos define o valor baseado em regras de prioridade (definidas na criação do Publicador).
Fonte: Microsoft

Resumo

Nesse post, falei brevemente sobre alguns conceitos importantes e vantagens da replicação.
Nos próximos iremos discutir mais a fundo a tecnologia e sua aplicabilidade em diferentes cenários.

Abaixo segue link com mais detalhes e referências:

https://docs.microsoft.com/en-us/sql/database-engine/install-windows/upgrade-replicated-databases?view=sql-server-2017

https://docs.microsoft.com/pt-br/sql/relational-databases/replication/sql-server-replication?view=sql-server-2017

https://docs.microsoft.com/pt-br/sql/sql-server/editions-and-components-of-sql-server-2017?view=sql-server-2017h

Caso tenha alguma dúvida ou sugestão, fique a vontade para comentar.

Até o próximo! 🙂

Series Navigation

Nenhum comentário

Deixe uma resposta