AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 34472
Accepted
SrgHartman
SrgHartman
Asked: 2013-02-10 12:44:27 +0800 CST2013-02-10 12:44:27 +0800 CST 2013-02-10 12:44:27 +0800 CST

A produção de replicação do PostgreSQL está pronta?

  • 772

Como a replicação nativa do PostgreSQL se compara ao MySQL?

Sei que a replicação assíncrona tem suporte há mais tempo do que a sincronização, que é recente. O síncrono é confiável para ser usado em projetos reais?

postgresql replication
  • 1 1 respostas
  • 4101 Views

1 respostas

  • Voted
  1. Best Answer
    Craig Ringer
    2013-02-10T18:09:36+08:002013-02-10T18:09:36+08:00

    Produção pronta?

    Sim, está pronto para produção e é amplamente utilizado. Os seguidores do Heroku são baseados na replicação assíncrona integrada do PostgreSQL, por exemplo, assim como os standbys do AWS RDS e as réplicas de leitura. A replicação de streaming é usada quase universalmente com o PostgreSQL.

    A configuração da replicação não é exatamente adorável, mas ferramentas como repmgr ajudam um pouco nisso e estão melhorando lentamente a cada versão principal. A capacidade do pg_basebackup de fazer uma cópia do sistema usando a replicação de streaming (e fazê-lo de outro modo de espera) é uma grande ajuda.

    Em geral, um recurso simplesmente não será lançado no PostgreSQL até que esteja pronto para produção. Bugs acontecem, como em qualquer software, mas normalmente são corrigidos logo após serem identificados. Novos recursos realmente importantes às vezes têm bugs e problemas descobertos após o lançamento do .0, mas, nesse caso, corrigi-los é uma alta prioridade; os bugs não são apenas deixados por aí.

    Não tenho conhecimento de nenhum problema sério com a replicação de streaming - sincronizado ou assíncrono - nem vi nenhum relatado por um bom tempo. Eles eram menos estáveis ​​do que o padrão usual do Pg nos lançamentos .0 das versões principais em que foram introduzidos, mas ambos amadureceram rapidamente e estão completamente prontos para produção.

    (Atualização: havia um bug específico na nova versão 9.3 anterior à 9.3.4 que causava problemas de replicação em alguns casos; os usuários da versão 9.3 devem atualizar para a versão 9.3.4 imediatamente. As versões mais antigas não são afetadas.)

    A única ressalva que quero mencionar é um pequeno detalhe com a replicação síncrona: se você confirmar no mestre, cancele a consulta após a confirmação enquanto aguarda a confirmação da réplica, ela é tratada como confirmada no mestre antes mesmo de ser replicada. Você obtém o mesmo efeito reiniciando o mestre enquanto aguarda a resposta da réplica. Na prática, isso é irrelevante, mas é o único problema em que consigo pensar.

    Comparar com o MySQL?

    A replicação nativa do Pg é bem diferente da do MySQL.

    O MySQL usa replicação lógica onde envia as alterações lógicas feitas nos dados da tabela, estrutura da tabela, etc, e a réplica aplica essas alterações.

    A replicação do PostgreSQL é de nível inferior (em 9.5 e abaixo; versões futuras também podem adicionar replicação lógica). Envia os blocos que mudaram nas tabelas. É mais simples, mais fácil de acertar e impõe uma carga menor no servidor de réplica, mas consome mais largura de banda da rede e requer mais armazenamento no mestre para manter as alterações ainda não replicadas. É melhor configurado para usar replicação de streaming com fallback de arquivamento WAL, tornando-o mais complexo de configurar do que o do MySQL. Ele replica alterações de baixo nível, como atividade VACUUM, não apenas alterações de tupla, mantendo o estado em disco da réplica igual ao do mestre. Ele é incapaz de replicar apenas um banco de dados; todo o sistema deve ser replicado, o que pode ser frustrante se você tiver um banco de dados grande, de alta rotatividade e sem importância e um banco de dados pequeno, de baixa rotatividade e vital.

    Em suma, depende do que você quer fazer com ele.

    Vejo a replicação do PostgreSQL consideravelmente melhor para réplicas usadas para backup, alta disponibilidade e recuperação de desastres. Particularmente quando combinado com recuperação pontual (PITR) .

    Por outro lado, não é tão bom para réplicas de relatório somente leitura porque a necessidade de atrasar a aplicação de dados replicados durante a execução de transações longas significa que você precisa permitir que ele cancele consultas de execução muito longa ou fique muito atrás do mestre, consumindo mais espaço em disco no mestre e forçando-o a trabalhar mais para acompanhar.

    Há um trabalho contínuo para habilitar a replicação lógica no PostgreSQL , onde as alterações lógicas na estrutura da tabela, conteúdo da tabela etc. são replicadas, em vez de seu estado no disco. O design do catálogo do Pg e o suporte para tudo definido pelo usuário tornam essa tarefa bastante complexa. Algumas das bases foram implementadas para 9.4, mas é improvável que a replicação lógica completa seja utilizável antes de 9.6 ou posterior.

    • 31

relate perguntas

  • Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo

  • Os procedimentos armazenados impedem a injeção de SQL?

  • Sequências Biológicas do UniProt no PostgreSQL

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Conceder acesso a todas as tabelas para um usuário

    • 5 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve