Por que eu devo ler este artigo:Este artigo apresenta uma introdução à extensão BDR (Bidirecional Replication) desenvolvida pela 2ndQuadrant, que permite a replicação multimestre assíncrona entre servidores de banco de dados PostgreSQL. Serão demonstradas as vantagens e desvantagens do BDR em relação a outras soluções do mesmo segmento. Além disso, será realizada uma implementação básica para demonstrar seu funcionamento. Esse tema é útil para administradores de sistemas e de banco de dados que desejam conhecer e implementar uma solução de replicação bidirecional entre bancos de dados PostgreSQL.

As empresas atuais, independentemente de sua dimensão profissional, estão cada vez mais condicionadas aos sistemas computacionais, uma vez que esses se tornaram ferramentas indispensáveis para o gerenciamento e a tomada de decisões diárias. Sendo assim, é de extrema importância para as empresas garantir que o acesso a esses sistemas esteja sempre disponível e evitar que qualquer falha que venha a ocorrer possa implicar direta ou indiretamente na perda de lucros da organização.

Em algumas empresas, os prejuízos causados pela indisponibilidade de sistemas de informação são enormes. Esses se agravam ainda mais quando ocorrem falhas em que o tempo de downtime (BOX 1) se torna alto e algumas vezes, inestimável (ver seção Links). Para resolver esses problemas, organizações realizam investimentos cada vez mais altos em soluções para manter seus sistemas sempre disponíveis e, assim, garantir a segurança das informações cruciais para o desenvolvimento de suas atividades.

BOX 1. Downtime

É a duração de tempo que um sistema de computador ou um de seus componentes permanece inativo por problemas inesperados, podendo gerar altos custos dependendo do tipo da organização, ramo de atividade, entre outros. Um exemplo de prejuízo financeiro ocorreu na Amazon, uma empresa multinacional de comércio eletrônico, onde, segundo o site NETWORKWORLD, um downtime de 49 minutos significou uma perda de $5 milhões em vendas, sem contar no abalo da confiança por parte de seus clientes.

As soluções atuais disponíveis no mercado são diversas, e uma delas é a replicação de banco de dados, onde as modificações feitas no banco principal são replicadas em outro, mantendo assim uma cópia do mesmo. O objetivo desse artigo é descrever o funcionamento de uma nova extensão desenvolvida para PostgreSQL, onde é possível utilizar o recurso da replicação em modo multimestre, ou seja, ambos os bancos recebem e aplicam alterações.

O PostgreSQL é um sistema gerenciador de banco de dados (SGBD) objeto-relacional com mais de 15 anos de desenvolvimento, é distribuído sob a licença BSD clássica e, por ser de código aberto, qualquer pessoa ou empresa pode modificá-lo de acordo com suas necessidades. O PostgreSQL é considerado um dos melhores SGBDs de código aberto, pois possui as mesmas características de outros grandes bancos de dados comerciais. Além disso, tem uma comunidade ativa, as atualizações e melhorias são constantes e a cada versão lançada novas funcionalidades são adicionadas, tornando-o extremamente robusto e confiável.

Replicação no PostgreSQL

A replicação é o processo de copiar alterações feitas em um banco de dados principal e transferi-las para outro. Dessa forma, sempre haverá uma cópia que pode ser utilizada caso ocorra qualquer tipo de interrupção na base principal. Assim, tem-se a segurança de que os dados não foram corrompidos ou perdidos, podendo ser utilizados normalmente.

No PostgreSQL, podemos definir os tipos de replicação como síncrona ou assíncrona, física ou lógica e master-slave ou multi-master, os quais possuem as seguintes descrições:

· Síncrona: as mudanças que ocorrem no banco principal são enviadas para os bancos de standby (espera), e somente quando essas são confirmadas é que o banco principal é liberado e pode-se continuar com outras transações. Esse tipo de replicação garante que todas as informações sejam consistentes em relação à base original. Porém, nesse modo há uma exigência maior de tempo de processamento por parte dos servidores e, quando falamos de bases distribuídas geograficamente, esse tempo tende a ser ainda maior;

· Assíncrona: nesse modo, todas as operações são enviadas para o banco de standby, porém o servidor não espera que as mesmas sejam c ...

Quer ler esse conteúdo completo? Tenha acesso completo