Replicacao de Dados - SQL Server

Embed Size (px)

Citation preview

REPLICAO DE DADOS- SQL Server 2000 -

INTRODUOReplicao o processo que mantm duas ou mais rplicas dos dados em diferentes servidores SQL Server 2000. Logo, pode-se replicar desde um conjunto de linhas ou colunas de uma tabela at o prprio Banco de dados inteiro. No caso do SQL Server, temos vrias funes e assistentes que permitem configurar este processo de replicao de dados. Quando configurada a replicao, o SQL Server se encarrega de manter sincronizadas todas as rplicas. A confiabilidade da replicao alta, levando ainda em considerao, que ele capaz de reiniciar do ponto onde foi interrompido, caso exista alguma falha de comunicao na rede ou quaisquer outras falhas. Portanto, o SQL Server capaz de garantir a integridade dos dados replicados.

2

MODELOS DE REPLICAO NO SQL SERVERO SQL Server utiliza um modelo de replicao, muitas vezes chamado de metfora de replicaes. Publisher Distributor Subscribers Article Em uma viso geral, podemos dizer que o Publisher, ou publicador, quem publica informaes a serem replicadas para um ou mais Subscribers, que podemos chamar de assinantes. Entre o publicador e os assinantes, ainda pode existir o Distributor, ou distribuidor, que faz o envio dos dados para os assinantes. Publisher (Publicador) Um servidor atuando como Publisher um servidor que est disponibilizando dados para serem replicados para outros servidores. O Publisher mantm a cpia original dos dados e envia o conjunto de dados a ser replicado para um ou mais Distribuidores. O publicador disponibiliza conjuntos definidos de dados atravs de publicaes. Podemos ter uma ou mais publicaes, cada uma representando um conjunto de dados. Distributor (Distribuidor) O distribuidor recebe do Publisher uma cpia dos dados que foram alterados e devem ser replicados e disponibiliza estes dados para um ou mais assinantes. A funo do Distribuidor varia com o tipo de replicao que estamos implementando. Subscriber (Assinante) Um Assinante um servidor SQL Server que armazena uma rplica dos dados e recebe atualizaes peridicas dos mesmos. Os dados recebidos pelo assinante podem ser alterados em determinadas configuraes. Article (Artigo) Um artigo pode ser uma tabela de dados ou um objeto de Banco de Dados, como uma Stored Procedure que configurado para replicao. Podemos ter um artigo que engloba uma tabela inteira, ou um artigo, que engloba apenas algumas colunas, chamando de filtragem vertical. Com isso, compreendemos que atravs da criao de um artigo, que definimos quais dados devem ser replicados. Isto evita que tenhamos que replicar uma tabela inteira quando apenas um subconjunto dos dados necessrio.

3

Figura 1 Viso geral do modelo de replicao

Enfim, com todos esses conceitos bem definidos o SQL Server os trata atravs de uma publicao que nada mais do que um conjunto e um ou mais artigos de um Banco de Dados. A publicao a unidade de replicao. Trocando em midos, o Assinante inscreve-se em uma Publicao e no em um artigo. Mesmo que somente tenhamos que replicar dados de um nico artigo, devemos criar uma Publicao que inclui esse artigo. Podemos criar uma ou mais Publicaes em um Banco de Dados, porm uma Publicao no pode conter artigos de diferentes Bancos de Dados.

4

SUBSCRIES E SEUS TIPOSChamamos de subscrio o processo pelo qual um servidor se inscreve para receber cpia dos dados de uma ou mais Publicaes. E, ao se inscrever para isso, o servidor torna-se um assinante, ou assinante. Sendo que existem dois tipos de subscries: Pull subscription e Push Subscription. O tipo de subscrio vai definir como a mesma ser criada e administrada e tambm de que maneira os dados sero replicados. Push Subscription Este tipo de subscrio feita durante a criao ou administrao de uma Publicao. Neste tipo de subscrio, o Distribuidor responsvel por enviar as alteraes para ou mais Assinantes. Utilizamos este mtodo quando queremos ter um controle centralizado sobre o agendamento das replicaes. muito fcil configurar vrias subscries em um nico servidor, do que ter que configurar a subscrio em diversos servidores. Pull Subscription Neste, a subscrio feita no Assinante, que tomar a iniciativa de solicitar o inicio da replicao e envio dos dados do Distribuidor para o Assinante. Neste caso, o controle e agendamento da replicao, fica a cargo de cada Assinante. A administrao fica mais distribuda, e ao mesmo tempo, damos maior liberdade para cada Assinante.

Figura 2 Modelo de Replicao com todos os autores

5

TIPOS DE REPLICAOSnapshot replication Todo o conjunto de dados replicado a cada intervalo programado. Um ou mais assinantes so atualizados com uma cpia exata dos dados publicados pelo Publisher. So enviados, para os assinantes, todos os dados, quer tenham sido modificados ou no. o tipo mais simples de replicao, pois os servidores envolvidos na replicao no precisam monitorar os dados para verificar quais alteraes foram feitas, uma vez que todos os dados so replicados. A principal desvantagem deste tipo de replicao que a mesma transmite uma grande quantidade de informaes a cada ciclo de replicao. Abaixo, algumas caractersticas da Snapshot replication: No indicada para grandes volumes de dados; Exige pouco do processador, uma vez que no existe a necessidade de um monitoramento constante para verificao das alteraes efetuadas no conjunto de dados a ser replicado; Possui uma latncia elevada, sendo a latncia igual ao intervalo de replicao. Por exemplo, se uma Snapshot replication est programada para ocorrer uma vez ao dia, a latncia ser de 24 horas. Transactional Replication Nesta replicao as alteraes efetuadas no Publisher que so replicadas para um ou mais Assinantes. Qualquer alterao feita, em um ou mais artigos de uma publicao, imediatamente capturada a partir do Log de Transaes do Banco de Dados e replicada para o Distribuidor. Dependendo das configuraes e da velocidade de conexo entre os servidores, podemos manter as diversas rplicas sincronizadas quase que instantaneamente. A principal vantagem que podemos manter as diversas rplicas praticamente idnticas, diminuindo bastante a latncia (questo de segundos) de atualizao entre as diversas rplicas. A grande desvantagem que este monitoramento contnuo em busca de alteraes, implica em uma maior exigncia de memria e processamento no servidor SQL Server. Merge Replication A principal caracterstica deste tipo de replicao que alteraes podem ser feitas em qualquer uma das replicas dos dados. As alteraes feitas em uma das replicas sero repassadas para as demais. O SQL Server utiliza um mecanismo prprio para resoluo de conflitos de replicao. Ao iniciarmos o processo de replicao, temos uma Snapshot replication na primeira vez que os dados so enviados para um ou mais Assinantes. Na seqncia, o mecanismo de replicao fica monitorando as alteraes efetuadas nas diversas rplicas e fica repassando as alteraes para as demais rplicas. No temos a garantia de que todas as rplicas estaro perfeitamente sincronizadas instantaneamente. Porm, temos a certeza de que as diversas rplicas iro convergir com o passar do tempo.

6

REPLICANDO OS DADOSPara comear a implementao, devemos ter registrado no SQL Server os servidores aos quais queremos usar para a replicao de dados. Conforme, imagem a seguir:

Figura 3 - Lista de servidores SQL Server 2000 registrados

Em seguida, clicamos no servidor onde os dados sero obtidos para a replicao dos dados e criamos uma nova Publicao.

Figura 4 Criando uma nova Publicao

7

Com isso, faremos a configurao utilizando um assistente do SQL Server, para criar uma nova Publicao.

Figura 5 Opes do Publicador/Distribuidor

Nesta janela, selecionamos a opo para que o servidor, neste caso, o THIAGONOTE seja no s Publicador, como tambm o Distribuidor dos dados, pois como vimos anteriormente, a existncia de um servidor com a funo de ser o distribuidor no obrigatria. Ao continuarmos, temos que selecionar o Banco de Dados que queremos publicar para o(s) outro(s) servidore(s).

8

Figura 6 Selecionando o Database

Aps este passo, temos que escolher o tipo de replicao que desejamos realizar nesta publicao.

Figura 7 Tipos de Publicao

Na tela seguinte o assistente nos mostra onde ser armazenada a cpia do banco realizada para a replicao dos dados no Snapshot.

9

Figura 8 Local da rede onde ser salvo o Snapshot para a publicao

Agora devemos escolher quais objetos vo ser gravados no Snapshot para serem replicados.

Figura 9 Definindo os artigos (objetos do banco de dados) que sero publicados

O passo seguinte nomear a publicao que criamos.

10

Figura 10 Definindo um nome para a Publicao

Neste ltimo passo, o assistente pergunta se desejamos definir algum filtro de dados ou personalizar algumas propriedades da replicao, neste caso, no entraremos nestes detalhes, pois se tratam de opes e formas de customizao da replicao mais avanadas.

Figura 11 Definindo filtros de dados e/ou customizando opes de publicao

E, por fim, finalizando a criao da Publicao atravs do Assistente do SQL Server, feita a configurao do Distribuidor pelo prprio SQL Server.

11

Figura 12 Finalizando o assistente da Publicao

Com a publicao criada, faremos agora a criao da Assinatura, ou seja, da Inscrio dos servidores que recebero os dados do Publicador. Para isso, clicamos, sobre a Publicao que acabamos de criar, para configurar um Push Subscription seguindo o passo a passo do assistente, conforme as imagens a seguir:

Figura 13 Criando uma Subscription

12

Figura 14 Escolhendo o servidor que ser o Subscriber

Com a escolha do servidor que receber as publicaes, partimos para a configurao do Banco de Dados de destino. Nesta tela do assistente, escolhemos o nome do Banco de Dados existente, ou conforme a Figura 14, criamos o Banco de Dados para a publicao.

Figura 15 Escolhendo o DataBase

13

Figura 16 Criando o Database no servidor que receber os dados

Neste momento, temos que configurar quando rodar o snapshot para replicar os dados no(s) servidor(es) que recebero os dados.

Figura 17 Selecionando a freqncia com que a replicao ser realizada

Logo em seguida, verificamos o status do Agente do SQL Server que o responsvel pela criao do Snapshot e consequentemente a realizao da replicao.

14

Figura 18 Finalizando a criao da Subscription

Assim, finalizamos a instalao e o SQL Server configura da forma correta para a realizao da publicao e obtemos a imagem de sucesso na criao.

Figura 19 Criao da Subscription efetuada

15

Agora, para simular a replicao dos dados iremos forar a criao do Snapshot, inicializando os Jobs que so criados pelos assistentes. Pois, atravs destes Jobs que o SQL Server executa a replicao dos dados na data e freqncia definida.

Figura 20 Inicializando o Job que cria o Snapshot do Database

Com isso, podemos verificar no servidor SIGA1, que o Banco de Dados de destino, que chamamos de replicacao_thiago, est criado, porm no existe nenhuma tabela criada. At porque, at agora s executamos o Job que cria a Snapshot do Banco de Dados.

Figura 21 Verificao das tabelas no servidor SIGA1 antes da replicao

16

Depois que o Job de replicao realizado j podemos verificar que as tabelas foram criadas no servidor SIGA1, na tabela replicacao_thiago, conforme a figura 21.

Figura 22 Inicializando o JOB que replica os dados para o servidor de Subscription

Figura 23 Verificando as tabelas do servidor SIGA1, depois da execuo do Job de replicao

Portanto, notamos que as tabelas contidas no servidor THIAGONOTE foram exatamente copiadas para o servidor SIGA1. Alm das tabelas conforme visualizado na figura 21, todas as Stored Procedures foram criadas tambm.

17

Figura 24 Todas Stored Procedures criadas no servidor SIGA1 aps a replicao

18

CONCLUSOConclumos ento, que a replicao o mtodo preferido de distribuio de dados, pois ela demanda em um menor custo do que a utilizao de transaes distribudas. O SQL Server 2000 ainda permite que voc escolha um, dos trs tipos de replicao existentes, dependendo do modelo fsico utilizado. Teoricamente, qualquer modelo de replicao pode ser utilizado por qualquer um dos tipos de replicao, muito embora, cada modelo tenha um tipo especfico para cada caso de replicao. Uma publicao a menor unidade de replicao. Um banco de dados pode ter muitas publicaes, com diferentes tipos de replicao, entretanto, cada publicao corresponde a apenas um banco de dados.

19

BIBLIOGRAFIA[1] Battisti, Jlio. SQL Server 2000 Administrao & Desenvolvimento Curso Completo. Axcel Books. [2] Dusan Petkovic-SQL Server 2000- Macron Books http://support.microsoft.com/ph/2852 www.microsoft.com/sql/default.mspx

20