21
Cluster de banco de dados e replicação Alexandro Ribeiro Igor Bueno Gurski Jean Carlo Nascimento Pedro Luiz Meneghel Filho Silvano Gurski

Cluster e replicação em banco de dados

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Cluster e replicação em banco de dados

Cluster de banco de dados 

e  replicaçãoAlexandro RibeiroIgor Bueno Gurski

Jean Carlo NascimentoPedro Luiz Meneghel Filho

Silvano Gurski

Page 2: Cluster e replicação em banco de dados

Cluster    Cluster é um sistema que compreende dois ou mais computadores ou sistemas (denominados nodos) na qual trabalham em conjunto para executar aplicações ou realizar outras tarefas.

Page 3: Cluster e replicação em banco de dados

Cluster

    As características fundamentais para a construção de clusters são: 

• confiança• distribuição de carga• performance

Page 4: Cluster e replicação em banco de dados

Cluster

     O sistema deve executar funções ou realizar outras tarefas, de tal forma para que os usuários que os utilizam tenham a impressão que somente um único sistema responde para eles.

    Este conceito é denominado transparência do sistema.

Page 5: Cluster e replicação em banco de dados

Clusters

Quando falamos em Cluster de banco de dados, pensamos em 3 tipos de clusters:

Shared All: Onde a memória (shared buffers) e os discos (datafiles) são compartilhados por cada nó do cluster;

Shared Disc: Onde apenas os disco são compartilhados pelos nós do cluster;

Shared Nothing: Onde cada nó tem a sua própria memória e discos;

Page 6: Cluster e replicação em banco de dados
Page 7: Cluster e replicação em banco de dados

Replicação

    Replicação dos dados refere-se a cópia dos dados para um     ou mais servidores;     Finalidades:        - Backup;        - Alta Disponibilidade;        - Segurança para o DBA;    Replicação de Dados    Replicação de Base de Dados

    Mínimo 2 computadores distintos. MASTER/SLAVE.

   

Page 8: Cluster e replicação em banco de dados

Replicação        Protocolos Tradicionais        - Primário        - Lê um, escreve todos        - Votação Simples        - Votação Ponderada

    Porque Não?        - Ocupa mais espaço;        - Garantindo ACID, nós todos 100%;     PostgreSQL 9.0 - Nativo Assíncrono    PostgreSQL 9.1 - Nativo Síncrono (desenv.)

    Replicação x Cluster;

Page 9: Cluster e replicação em banco de dados

Replicação

    A replicação também pode servir como um concentrador de dados de diversas fontes.

Page 10: Cluster e replicação em banco de dados

ReplicaçãoQuando falamos em Replicação de banco de dados, pensamos em 4 tipos de replicação orientados por 2 paradigmas distintos:

Replicação sincrona: onde todas as réplicas possuem sempre os mesmo dados;

Replicação assíncrona: onde as réplicas podem ser sincronizadas depois que um alteração nos dados é realizada;

Replicação MultiMaster: onde é possível realizar leitura e gravação em qualquer réplica;

Replicação Master/Slave: onde apenas a réplica master permite gravação, enquanto as demais réplicas só permitem leitura;

Page 11: Cluster e replicação em banco de dados
Page 12: Cluster e replicação em banco de dados

Sharding

    Sharding consiste em dividir os dados dados horizontalmente, ou seja, quebrar as tabelas, diminuindo o seu número de linhas e separando-as em ambientes diferentes.

    Você fica com mais rendimento e com maior capacidade de armazenamento em disco. Caso o seu armazenamento e desempenho precisem crescer, basta acrescentar mais shards.

Page 13: Cluster e replicação em banco de dados

GridFS

    O GridFS é um sistema para o compartilhamento de arquivos em grades e ambientes distribuídos heterogêneos. Ao disponibilizar um servidor em diversas máquinas, é possível construir um cluster integrando os diversos sistemas de arquivos locais e abrindo possibilidades de armazenamento na ordem de terabytes.

Page 14: Cluster e replicação em banco de dados

GridFS

    O sistema proposto foi modelado e desenvolvido levando em consideração diversos aspectos como escalabilidade, interoperabilidade e desempenho. 

    Ele trabalha dividindo grandes objetos em pequenas partes de 256k.

Page 15: Cluster e replicação em banco de dados
Page 16: Cluster e replicação em banco de dados

Extensões - PostgreSQL

• pgpool-II

• Slony-I

• PGCluster

• Postgres-R– Componentes de um Cluster Postgres-R– Ciclo de Vida de uma Transação Replicada– Resolução de Conflitos

Page 17: Cluster e replicação em banco de dados

Replicação - pgpool-II

• Middleware entre o servidor de banco de dados PostgreSQL e seus clientes;

• Melhor tratamento de conexões excedentes • Pool de conexões, que permite que conexões com as

mesmas características (usuário, banco de dados e versão do protocolo utilizado)

• Replicação através da execução simultânea de uma operação em diversos servidores

• Modos : raw, connection cool, replication, parallel e master/slave(Slony-I)

Page 18: Cluster e replicação em banco de dados

Replicação - pgpool-II - Modos

• Raw Mode: Clientes simplesmente se conectam ao servidor PostgreSQL através do pgpool-II. Limitar o número máximo de conexões simultâneas ao PostgreSQL, ou permitir que um servidor alternativo assuma em caso de falha do servidor principal.

• Connection Pool Mode: modo básico (Raw Mode). A diferença é que pedidos de conexão que apresentam as mesmas características são reutilizadas

• Replication Mode: executa todas as operações em todos os servidores gerenciados por ele, criando uma réplica dos bancos de dados

• Parallel Mode: é um modo avançado no qual os dados são distribuídos entre os servidores

• Master/Slave Mode : operações que precisam ser replicadas são passadas ao Mestre, enquanto as outras são distribuídas entre os servidores sempre que possível

Page 19: Cluster e replicação em banco de dados

Replicação - Slony-I

• O Slony-I é uma extensão ao PostgreSQL que realiza replicação Assíncrona entre um mestre e um ou mais escravos;

• Indicado principalmente para uso em Data Centers e para realização de backups em tempo real das bases de dados de um servidor.

• Solução apontada pelo site oficial do PostgreSQL1 como a extensão mais popular disponível livremente para replicação assíncrona.

Page 20: Cluster e replicação em banco de dados

Replicação - PGCluster

• PGCluster é uma extensão para PostgreSQL que oferece replicação Síncrona entre dois ou mais mestres

• Solução indicada pelo site oficial do PostgreSQL como a solução mais popular disponível para esse tipo de replicação

• Composto por três tipos de servidores distintos: – Servidor de replicação (Replication Server)

– Balanceador de carga (Load Balance Server)

– Servidor PostgreSQL em si;

Page 21: Cluster e replicação em banco de dados

Replicação - Postgres-R

• Postgres-R é uma extensão ao servidor de banco de dados PostgreSQL que fornece replicação Síncrona (vários mestres) e foi projetada para ser o mais transparente possível para o cliente.

• Objetivo de implantação de um servidor de banco de dados PostgreSQL de alta disponibilidade e com balanceamento de carga sem o uso de qualquer equipamento especial,

• Utilizar equipamentos que estão amplamente disponíveis e um custo acessível.