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...