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 / 130622
Accepted
foobar0100
foobar0100
Asked: 2016-02-27 16:09:05 +0800 CST2016-02-27 16:09:05 +0800 CST 2016-02-27 16:09:05 +0800 CST

Para uma carga de trabalho em espera de consultas analíticas de execução longa, é melhor ativar hot_standby_feedback ou definir as configurações de max_standby_*_delay como -1?

  • 772

Ao ativar um servidor de espera ativa especificamente para propósitos de BI/Analytics, onde consultas longas podem ser comuns, é melhor ativar hot_standby_feedbackou definir as max_standby_*_delayconfigurações como -1?

Meu entendimento é que hot_standby_feedbackimpede o mestre de fazer coisas como VACUUMaté que seja seguro fazer o mesmo no modo de espera, onde as max_standby_*_delayconfigurações permitem VACUUMiniciar no mestre, mas o modo de espera, se necessário, aguarda para aplicar qualquer limpeza a vácuo que possa entrar em conflito com um longo consulta em execução.

Além disso, os documentos afirmam para hot_standby_feedback:

Existem possibilidades corretivas se o número de cancelamentos de consultas em espera for considerado inaceitável. A primeira opção é definir o parâmetro hot_standby_feedback, que evita que o VACUUM remova as linhas mortas recentemente e, portanto, não ocorram conflitos de limpeza. Se você fizer isso, observe que isso atrasará a limpeza de linhas mortas no primário, o que pode resultar em um inchaço indesejável da tabela. No entanto, a situação de limpeza não será pior do que se as consultas em espera estivessem sendo executadas diretamente no servidor primário, e você ainda obteria o benefício de descarregar a execução no modo de espera.

E para max_standby_*_delayos documentos, estado:

Se o servidor em espera for designado como um servidor adicional para consultas de suporte à decisão, pode ser aceitável definir os valores máximos de atraso para muitas horas ou até mesmo -1, o que significa aguardar indefinidamente a conclusão das consultas.

Ainda não está claro para mim qual é o melhor e quais são os prós e contras exatos de cada um.

postgresql replication
  • 2 2 respostas
  • 2805 Views

2 respostas

  • Voted
  1. Best Answer
    jjanes
    2016-03-03T07:58:15+08:002016-03-03T07:58:15+08:00

    Com hot_standby_feedbackativado, o vácuo ainda pode ser feito, mas será menos eficaz, pois algumas tuplas que seriam aspiradas agora precisam ser adiadas para um vácuo posterior. A única desvantagem real que eu conheço é o aumento do inchaço. O quanto isso é uma desvantagem depende inteiramente do seu uso. O pior caso é se seu banco de dados tiver tabelas pequenas e intensamente atualizadas, como uma tabela de fila de trabalho. Esses podem ficar extremamente inchados. Se você não tiver esse tipo de mesa, provavelmente não terá problemas.

    Os problemas com max_standby_*_delay são que outras consultas em execução no modo de espera também estão tendo seu horizonte retido por quantidades potencialmente grandes e que, se você segurar o modo de espera por tempo suficiente, os arquivos WAL não repetidos acumulados encherão seu disco rígido e você perderá o stand-by.

    • 4
  2. shx
    2016-02-27T20:49:30+08:002016-02-27T20:49:30+08:00

    hot_standby_feedbackafeta a atividade do servidor principal, enquanto max_standby_*_delayafeta a atividade do servidor em espera.

    Contras de hot_standby_feedbacké óbvio: Primário não pode remover tuplas mortas enquanto o conflito ocorre.

    max_standby_*_delaysão para servidores em espera e não afetam a atividade do primário. Este é um dos prós desses parâmetros. Os contras deles são os seguintes: Quando ocorre um conflito em standby, seu standby suspende a repetição do log do WAL por até max_standby_*_delay. Portanto, se um conflito ocorrer por uma consulta, as consultas subsequentes lerão dados antigos (instantâneo do banco de dados pouco antes de ocorrer o conflito), não poderão ler os dados mais recentes, pois o modo de espera suspende a reprodução do WAL.

    Se você executar apenas uma consulta no modo de espera, acho que pode definir -1como max_standby_*_delay.

    • 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

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

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

    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
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • 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
    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