PostgreSQL Transformando um elefante numa manada

download PostgreSQL Transformando um elefante numa manada

If you can't read please download the document

description

Palestra realizada no 1° Seminário de Inovações Tecnológicas em Cluster e Grid no Governo Federal em dezembro de 2005 sobre técnicas de replicação no PostgreSQL

Transcript of PostgreSQL Transformando um elefante numa manada

  • 1. por Fbio Telles Rodriguez PostgreSQL Transformando um elefante numa manada 15 de Dezembro de 2005

2. Agenda

  • Cluster em banco de dados - Stand By
  • Tipos de replicao - Bancos de dados distribudos
  • Slony-I
  • PG_Pool
  • PG_Cluster
  • Commit em duas fases
  • Dvidas

3.

  • Alta disponibilidade, tolerncia a falhas
    • Stand By
    • Replicao
  • Balanceamento de carga, aumento de desempenho
    • Pool de conexes
    • Replicao Master/Slave
    • Banco de dados Distribudos (dblink)
    • Cluster de Storage

Cluster em Bancos de Dados 4.

  • Vantagens
    • Nativo a partir do PostgreSQL 8.0
    • Simples de implementar
    • Baixo impacto na rede e no processamento
  • Desvantagens
    • Banco em Stand By no pode ser utilizado
    • Tempo de recuperao do Stand By
    • Implementao obrigatria de um agrupamento de Bancos de Dados inteiro.

Stand By 5.

  • Master/Slave assncrona:
    • Permite Tolerncia a falhas com perda das ltimas transaes;
    • Permite a distribuio da carga nas operaes de leitura;
    • Pode gerar inconsistncia nos Slaves em relao ao Master;
    • Gera trfego considervel na rede.

Tipos de Replicao 6.

  • Master/Slave sncrona:
    • Permite Tolerncia a falhas;
    • Permite a distribuio da carga nas operaes de leitura;
    • Garante a consistncia entre as rplicas;
    • Gera trfego alto na rede.

Tipos de Replicao 7.

  • Multi Master sncrona:
    • Garante a consistncia entre as rplicas;
    • Diminui a velocidade das transaes, pois exige que ela seja confirmada em todas as rplicas;
    • Permite o balanceamento de carga;
    • Permite a tolerncia a falhas;
    • Gera alto trfego na rede.

Tipos de Replicao 8.

  • Multi Master assncrona:
    • Necessita de uma base central;
    • Realiza sincronizao espordica, com uma base central;
    • Gera inconsistncias locais;
    • Aplicao tem de ser desenvolvida para este fim;
    • Utilizado em aplicaes instaladas em computadores portteis;

Tipos de Replicao 9.

  • Cada site armazena dados relativo ao seu contexto;
  • Cada site tem autonomia em relao aos demais;
  • Operaes locais so mais rpidas;
  • SELECTs envolvendo dados de outros sites mais lentos e exigem otimizao especfica;
  • Transaes evolvendo dados de outros sites necessitam de controle de transao especfico.
  • Atravs de alteraes no modelo fsico, possvel tornar o modelo lgico transparente para a aplicao

Bancos Distribudos 10.

  • Projeto de replicao Oficial do PostgreSQL;
  • Replicao Master/Slave assncrona;
  • Tolerncia a falhas com possvel perda das ltimas transaes;
  • Permite o cascateamento de replicas diminuindo o impacto na rede;
  • Permite a criao de DUMPs que permitem a replicao para sincronia por meios diversos.

Slony-I 11.

  • Replica Tabelas e Sequncias;
  • Permite a execuo de DDL de um ponto central para todas as rplicas;
  • Utiliza Triggers e um Daemon chamado Slonik em cada rplica;
  • Otimizao na replicao de dados redundantes.

Slony-I 12.

  • Realiza um Pool de conexes ideal para aplicaes WEB
  • Aplicaes se conectam ao PG_Pool ao invs do PostgreSQL de forma transparente;
  • Replicao Master/Slave sncrona para at 2 servidores
  • Possui um load balance para consultas;
  • Implementao obrigatria de um agrupamento de Bancos de Dados inteiro.

PG_Pool 13.

  • Pode ser instalado num servidor separado dos bancos de dados, sem a necessidade de nenhuma configurao nestes.
  • Replicao de seqncia exige lock de tabela;
  • Controle de acesso do pg_hba.conf no pode ser utilizado;
  • Permite se conectar a um servidor PostgreSQL replicado pelo Slony-I.

PG_Pool 14.

  • Replicao Multi Master sncrona;
  • Balanceamento de carga e tolerncia a falhas;
  • Replica tabelas e sequncias;
  • Sincroniza bases que tenham perdido a sincronia atravs do rsync;
  • Utiliza um servidor como Load Balance e um ou mais servidores como Replicadores e cada n possui uma verso modificada do PostgreSQL;
  • Utiliza um mnimo de 3 ns;
  • Instalao relativamente complexa.

PG_Cluster 15.

  • Disponvel a partir da verso 8.1 do PostgreSQL;
  • Permite a distribuio de uma transao para vrios Bancos de Dados distintos atravs de uma WAN;
  • Garante a integridade transaes em replicaes sncronas;

Commit em duas fases 16.

  • Apresentao de Bruce Momjiam:
    • http://candle.pha.pa.us/main/writings/pgsql/replication.pdf
  • Slony-I
    • http://gborg.postgresql.org/project/slony1/projdisplay.php
    • http://www.ntlug.org/~cbbrowne/slony.html
  • PG_Pool
    • http://pgpool.projects.postgresql.org/
    • http://pgfoundry.org/projects/pgpool/
  • PG_Cluster
    • http://pgcluster.projects.postgresql.org/index.html

Links 17.

  • Listas de discusso:
    • [email_address]
    • [email_address]
  • IRC irc.freenodes.net:
    • #POSTGRESQL
    • #POSTGRESQL-BR

Dvidas