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 / 30626
Accepted
jberryman
jberryman
Asked: 2012-12-18 11:25:30 +0800 CST2012-12-18 11:25:30 +0800 CST 2012-12-18 11:25:30 +0800 CST

Executando pg_dump em um servidor hot standby?

  • 772

Isenção de responsabilidade: admito que ainda não tentei isso, mas não tenho certeza se saberia se não estivesse funcionando corretamente, então gostaria de perguntar.

Eu gostaria de executar um trabalho de backup noturno (via pg_dumpall) de um servidor de espera ativa executando a replicação de streaming, para evitar colocar essa carga no primário. Eu só vi menção de algumas pegadinhas que as pessoas encontraram, por exemplo, aqui e aqui , mas muito pouca orientação. Tudo bem se o backup ficar um pouco atrás do primário, desde que seja consistente (o que deveria ser).

Minhas perguntas são:

  1. Eu realmente quero fazer isso ou o backup deve ser feito no servidor principal? Por quê?

  2. Ao fazer um dump no standby, quais configurações eu preciso e procedimento devo usar para fazer isso corretamente? por exemplo, devo interromper a replicação durante o backup?

postgresql replication
  • 3 3 respostas
  • 16122 Views

3 respostas

  • Voted
  1. Best Answer
    Craig Ringer
    2012-12-18T15:49:53+08:002012-12-18T15:49:53+08:00

    AFAIK, rodar pg_dumpem modo de espera ativo é uma das principais coisas para as quais os modos de espera são úteis. É perfeitamente seguro, embora não seja perfeitamente confiável - os dumps podem falhar se o standby abortar a transação quando estiver ficando muito atrás do master.

    A única coisa que você realmente precisa observar é garantir que o modo de espera esteja atualizado e funcionando. Se o modo de espera perdeu sua conexão com o mestre e ficou muito para trás, você não quer fazer backup alegremente de um modo de espera desatualizado de três semanas.

    Você precisará permitir que o standby fique muito atrás do mestre durante o backup, pois, caso contrário, ele terá que cancelar sua pg_dumptransação para continuar reproduzindo o WAL. Consulte a documentação sobre hot standby , particularmente a seção "lidando com conflitos de consulta" e os parâmetros max_standby_archive_delaye .max_standby_streaming_delay

    Observe que o mestre deve estar disposto a manter arquivos WAL suficientes para permitir que o escravo recupere o atraso.

    • 25
  2. Ruslan Kabalin
    2014-02-08T03:53:05+08:002014-02-08T03:53:05+08:00
    1. Fazemos backup em standby, está perfeitamente bem.
    2. Para evitar conflito de instrução cancelada durante o backup no sistema de espera, você precisa pausar a replicação no modo de espera usando SELECT pg_xlog_replay_pause();, em seguida, executar o backup, uma vez concluído, execute SELECT pg_xlog_replay_resume();para retomar a replicação. Lembre-se de que a execução dos comandos acima causará um atraso de recuperação no escravo, que pode ser muito grande, dependendo do tamanho do banco de dados. Além disso, leve em consideração o espaço que os segmentos WAL ocuparão, pois eles não serão repetidos no escravo durante a pausa.

    Você pode encontrar outras funções administrativas úteis na documentação . Por exemplo, verifique se o servidor está realmente em recuperação, antes de pausá-lo: SELECT pg_is_in_recovery().

    • 14
  3. Pablo Luna
    2016-08-20T02:57:07+08:002016-08-20T02:57:07+08:00

    Isenção de responsabilidade: funciona apenas até PG12 , PG13+ usa slots de replicação

    Se você pausar a replicação durante o backup, (isso é uma boa ideia para preservar a integridade e a consistência), você pode editar algumas linhas no seu postgresql mestre:

    Quanto tempo está atrasando seu backup habitualmente. Certifique-se de que o nó mestre preserve todos os arquivos x_log necessários para retomar a replicação. Você pode fazer isso na edição do postgresql.conf

    wal_keep_segments = 32      # in logfile segments, 16MB each; 0 disables
    

    Se você não modificar isso e seu processo de backup for muito longo, é provável que o nó mestre apague os arquivos xlog antes de enviá-los para o escravo.

    • 0

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 ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 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

    Como selecionar a primeira linha de cada grupo?

    • 6 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
    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
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +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