Upload
suissa-corp
View
12.653
Download
1
Embed Size (px)
DESCRIPTION
Citation preview
Cluster de banco de dados
e replicaçãoAlexandro RibeiroIgor Bueno Gurski
Jean Carlo NascimentoPedro Luiz Meneghel Filho
Silvano Gurski
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.
Cluster
As características fundamentais para a construção de clusters são:
• confiança• distribuição de carga• performance
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.
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;
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.
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;
Replicação
A replicação também pode servir como um concentrador de dados de diversas fontes.
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;
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.
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.
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.
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
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)
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
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.
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;
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.