Artigo da SQL Magazine 40 - Utilizando replicação transacional PTP no SQL Server 2005 Enterprise Edition
Artigos Banco de Dados Artigo da SQL Magazine 40 - Utilizando replicação transacional PTP no SQL Server 2005 Enterprise Edition
Utilizando replicação transacional PTP no SQL Server 2005 Enterprise Edition<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Replicação de dados é um recurso de banco de dados que possibilita manter pontas (locais) iguais, ou seja, com a sincronia de dados. Um exemplo clássico seria uma matriz possuindo a sua tabela de fornecedores e diversas filiais espalhadas pelo país contendo, cada uma, uma réplica do cadastro. Supondo que a inclusão dos dados dos fornecedores seja muito alta (grandes volumes de inclusão), e que essas mudanças precisam ser enviadas a todas as filiais de maneira que o cadastro de fornecedores fique igual em todas as lojas, então poderíamos nos valer do recurso de replicação de dados.
Neste artigo, veremos como fazer uma replicação de dados usando a nova tecnologia PTP (Peer to Peer) transacional, que está presente na nova versão do SQL Server. Ao longo deste artigo veremos como funciona uma replicação e quais são os usos mais comuns. Em seguida iremos detalhar o seu processo.
Na replicação de dados, um servidor SQL Server pode desempenhar vários papéis, sendo eles Publicação, Subscrição e Distribuição. Qualquer desses papéis pode ser desempenhado por um ou mais servidores SQL Server. A descrição mais detalhada de cada um desses papéis se encontra na Tabela 1.
Tabela 1. Funções de um servidor SQL Server.
Seria o publicador, ou seja, a base de dados que será replicada.
O Assinante. O servidor (ler Nota 1) que irá receber uma base de dados replicada. Existem duas possibilidades: no primeiro caso as tabelas somente serão consultadas, no segundo caso as tabelas também sofrem alterações (neste caso, essas alterações podem ou não ser reenviadas à base publicada).
Uma observação interessante em replicações com SQL Server é que outros sources padrão OLE DB podem assinar uma replicação do SQL Server, como um servidor Oracle. Infelizmente na versão 2005 do SQL Server, bases de dados padrão JET, como o Access ou até mesmo uma planilha em excel, não podem mais assinar uma replicação, o que era possível na versão 2000 do SQL Server.
O Servidor que irá repassar os dados do publicador para o(os) assinantes.
As combinações de replicação podem acontecer de várias maneiras:
1- Publicador – Distribuidor – Assinantes na mesma máquina;
2- Publicador – Distribuidor na mesma máquina e Assinantes em outra;
3- Publicador – Distribuidor – Assinantes em máquinas separadas.
Nota 1. Esclarecimento sobre servidores
Entendemos Servidor não só como máquinas separadas. Podemos entender Servidor como uma instância SQL Server.
A seguir veremos alguns conceitos adicionais:
· Article: artigo, ou seja, uma tabela de banco de dados. Dentro de uma tabela podemos ainda colocar filtros para colunas e linhas fazendo com que todos os campos e linhas da tabela sejam replicados, assim como apenas algumas linhas ou até mesmo algumas colunas, protegendo dessa forma dados sigilosos de uma tabela ou diminuindo o tráfego de rede na replicação.
· Publication: seria um grupo de artigos (objetos de banco de dados a serem replicados).
· Subscription: assinatura. O ato de associar uma publicação e seus artigos a um ou vários assinantes. Existem dois tipos de assinatura:
o Push: os dados são enviados para o assinante pelo publicador.
o Pull: ao contrário do push, os assinantes é que são os responsáveis por ir pegar as alterações no publicador.
Ainda nos conceitos básicos da replicação, temos no SQL Server três modelos que são a base para as outras variações de replicação. São eles:
· Snapshot: neste modelo será feita uma cópia total do banco de dados ou das tabelas selecionadas. Todas as alterações são reenviadas ao assinante a cada sincronização. Geralmente é utilizado quando temos que replicar pequenas quantidades de dados, pois o tráfego de rede será alto já que tudo será reenviado para o assinante, e não apenas as alterações;
o Vantagens: é simples de se configurar, não exige que a modelagem do banco esteja perfeita, pois todo o banco de dados será enviado para o assinante.
o Desvantagens: todo o banco de dados é replicado, então, o consumo e tráfego de rede são grandes. Esse modelo não é aplicável a bases de dados muito grandes ou que necessitem de uma sincronização muito alta.
· Transacional: neste modelo, apenas as alterações efetuadas no publicador são enviadas ao assinante. Este modelo é muito utilizado quando temos que ter alto controle sobre a entrega dos dados (a nível transacional) e agilidade (baixa latência) na entrega dos dados. Com o SQL Server 2005 tivemos uma remodelagem neste tipo de replicação. Agora as duas pontas podem ser sincronizadas, criando assim uma rotina de envio e recebimento de dados.
o Vantagens: possibilita um alto grau de controle de envio de informações (já que trabalha a nível transacional). Uma das aplicações mais usada é para redundância de dados, podendo ser usado como servidor de backup. ...