Cluster de banco de dados  e  replicação Alexandro Ribeiro Igor Bueno Gurski Jean Carlo Nascimento Pedro 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ção Quando 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.

Cluster e replicação em banco de dados

  • 1.
    Cluster de bancode dados  e  replicação Alexandro Ribeiro Igor Bueno Gurski Jean Carlo Nascimento Pedro Luiz Meneghel Filho Silvano Gurski
  • 2.
    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.
  • 3.
    Cluster     As características fundamentais para a construção de clusters são:  confiança distribuição de carga performance
  • 4.
    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.
  • 5.
    Clusters Quando falamosem 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;
  • 6.
  • 7.
    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.    
  • 8.
    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;
  • 9.
    Replicação     A replicação também pode servir como um concentrador de dados de diversas fontes.
  • 10.
    Replicação Quando falamosem 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;
  • 11.
  • 12.
    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.
  • 13.
    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.
  • 14.
    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.
  • 15.
  • 16.
    Extensões - PostgreSQLpgpool-II Slony-I PGCluster Postgres-R Componentes de um Cluster Postgres-R Ciclo de Vida de uma Transação Replicada Resolução de Conflitos
  • 17.
    Replicação - pgpool-IIMiddleware 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 )
  • 18.
    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
  • 19.
    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.
  • 20.
    Replicação - PGClusterPGCluster é 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;
  • 21.
    Replicação - Postgres-RPostgres-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.