Replicação no PostgreSQL

Artigo publicado Revista SQL Magazine 60.

Esse artigo faz parte da revista SQL Magazine edição 60. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler esse editorial em PDF

PostgreSQL

Replicação no PostgreSQL

Descrição, prós e contras de algumas técnicas disponíveis

 

Com o crescimento dos sistemas de informações e do aumento das bases de dados, torna-se cada vez mais necessária a utilização de técnicas de replicação de dados. Tais técnicas vão desde uma simples cópia de um servidor a outro, até uma estrutura que provê capacidade de alta disponibilidade, recuperação de falhas, balanceamento de carga e etc. Cada uma com sua particularidade de utilização e gerenciamento, com pontos negativos e positivos.

Este artigo demonstrará algumas técnicas de replicação de bases de dados disponíveis no PostgreSQL. Para tanto, serão feitas apresentações rápidas de cada método, focando os prós e contras de cada utilização. Serão mostradas as técnicas de replicação com PGCluster, Slony, replicação dos arquivos de transações (log shipping), Sequoia e PGPool.

 

PGCluster

O PGCluster é uma ferramenta de replicação do PostgreSQL que permite a montagem de um sistema de replicação síncrono multi-master, onde existe uma replicação em tempo real, com a utilização de vários servidores primários. Ele pode ser composto por três tipos de servidores: o de balanceamento de carga, o de armazenamento e o de replicação (ver Figura 1).

Pode haver mais de um servidor responsável pelo balanceamento de carga, recebendo as consultas e as encaminhando para os nós de armazenamento com menor carga. O fator de carga de um nó é calculado pelo número de sessões ativas (conexões feitas pelo sistema ou diretamente por usuários que estão realizando alguma tarefa). Ele também tem a função de verificar se há problemas com o nó de armazenamento durante esta comunicação, separando-o se houver falhas.

O servidor de armazenamento, podendo haver mais de um, faz parte do agrupamento do banco de dados (chamado cluster). É o servidor que mantém o back-end do PostgreSQL, onde os dados podem ser armazenados (caso não se utilize uma unidade externa de armazenamento como um storage) e processados.

O servidor de replicação, podendo também haver mais de um, cuida da sincronia dos dados entre os diversos hosts de armazenamento, e quando o servidor de replicação principal falha, outro assume o seu lugar.

A replicação pode ser feita de dois modos: modo normal e modo confiável. No modo normal, uma resposta é enviada ao usuário assim que a atualização for executada no nó de armazenamento que a recebe. No modo confiável, a resposta só é enviada após a execução do comando de atualização ter sido realizada em todos os nós de armazenamento.

O servidor de replicação também verifica problemas com o nó de armazenamento durante a comunicação. Se um problema for detectado, o servidor de replicação separa o nó para posterior replicação e uma entrada no arquivo de log é criada. Quando um nó é recolocado ou adicionado ao agrupamento, o servidor de replicação cuida da sincronização dos dados.

 

Figura 1. Estrutura do PGCluster para balanceamento de carga e replicação" [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados