Partilhar via


Servidores de replicação/envio

max_replication_slots

Atributo Value
Categoria Servidores de replicação/envio
Description Especifica o número máximo de slots de replicação que o servidor pode suportar.
Tipo de dados integer
Default value 10
Valores permitidos 2-262143
Tipo de parâmetro estático
Documentação max_replication_slots

max_slot_wal_keep_size

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tamanho máximo de WAL que pode ser reservado por slots de replicação.
Tipo de dados integer
Default value -1
Valores permitidos -1
Tipo de parâmetro somente leitura
Documentação max_slot_wal_keep_size

max_wal_senders

Atributo Value
Categoria Servidores de replicação/envio
Description Define o número máximo de processos de remetente WAL em execução simultânea.
Tipo de dados integer
Default value 10
Valores permitidos 5-100
Tipo de parâmetro estático
Documentação max_wal_senders

Notas específicas do Azure

O valor padrão para o max_wal_senders conjunto de parâmetros de servidor quando você provisiona a instância do Banco de Dados do Azure para o servidor flexível PostgreSQL nunca deve ser diminuído abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.

Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para ser capaz de lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:

  • Logicamente, replicar um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
  • A única razão pela qual você precisa de remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos de.
  • Seja qual for o número de remetentes WAL que estão sendo utilizados para replicação física e lógica, todos eles ficam ativos de uma só vez, sempre que qualquer back-end grava algo no log write-ahead. Quando isso acontece, os remetentes WAL atribuídos para fazer replicação lógica são todos ativados para:
    1. Decodificar todos os novos registros no WAL,
    2. Filtrar registros de log nos quais eles não estão interessados,
    3. Replique os dados relevantes para cada um deles.
  • Os remetentes WAL são semelhantes a conexões no sentido de que, se estiverem ociosos, não importa quantos sejam. No entanto, se eles estiverem ativos, eles apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara de CPU. Cada trabalhador tem que decodificar toda a WAL, mesmo que ela replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log write-ahead. Para replicação física, não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e tendem a ser limitados pela largura de banda da rede primeiro.
  • Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
  • É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos seguintes podem ajudar a ilustrá-lo melhor.
    • Para um servidor com 8 vCores, HA desabilitado, 2 réplicas de leitura e 3 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos(3) + alguns extras para crescimento futuro, considerando vCores disponíveis (1) = 6.
    • Para um servidor com 16 vCores, HA habilitado, 4 réplicas de leitura e 5 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos(5) + alguns extras para crescimento futuro, considerando vCores disponíveis (2) = 13.
  • Se você ainda considerar que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário tivesse um desempenho adequado.

track_commit_timestamp

Atributo Value
Categoria Servidores de replicação/envio
Description Coleta o tempo de confirmação da transação.
Tipo de dados boolean
Default value off
Valores permitidos on,off
Tipo de parâmetro estático
Documentação track_commit_timestamp

wal_keep_size

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tamanho dos arquivos WAL mantidos para servidores em espera.
Tipo de dados integer
Default value 400
Valores permitidos 400
Tipo de parâmetro somente leitura
Documentação wal_keep_size

wal_sender_timeout

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tempo máximo de espera pela replicação WAL.
Tipo de dados integer
Default value 60000
Valores permitidos 60000
Tipo de parâmetro somente leitura
Documentação wal_sender_timeout

max_replication_slots

Atributo Value
Categoria Servidores de replicação/envio
Description Especifica o número máximo de slots de replicação que o servidor pode suportar.
Tipo de dados integer
Default value 10
Valores permitidos 2-262143
Tipo de parâmetro estático
Documentação max_replication_slots

max_slot_wal_keep_size

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tamanho máximo de WAL que pode ser reservado por slots de replicação.
Tipo de dados integer
Default value -1
Valores permitidos -1
Tipo de parâmetro somente leitura
Documentação max_slot_wal_keep_size

max_wal_senders

Atributo Value
Categoria Servidores de replicação/envio
Description Define o número máximo de processos de remetente WAL em execução simultânea.
Tipo de dados integer
Default value 10
Valores permitidos 5-100
Tipo de parâmetro estático
Documentação max_wal_senders

Notas específicas do Azure

O valor padrão para o max_wal_senders conjunto de parâmetros de servidor quando você provisiona a instância do Banco de Dados do Azure para o servidor flexível PostgreSQL nunca deve ser diminuído abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.

Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para ser capaz de lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:

  • Logicamente, replicar um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
  • A única razão pela qual você precisa de remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos de.
  • Seja qual for o número de remetentes WAL que estão sendo utilizados para replicação física e lógica, todos eles ficam ativos de uma só vez, sempre que qualquer back-end grava algo no log write-ahead. Quando isso acontece, os remetentes WAL atribuídos para fazer replicação lógica são todos ativados para:
    1. Decodificar todos os novos registros no WAL,
    2. Filtrar registros de log nos quais eles não estão interessados,
    3. Replique os dados relevantes para cada um deles.
  • Os remetentes WAL são semelhantes a conexões no sentido de que, se estiverem ociosos, não importa quantos sejam. No entanto, se eles estiverem ativos, eles apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara de CPU. Cada trabalhador tem que decodificar toda a WAL, mesmo que ela replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log write-ahead. Para replicação física, não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e tendem a ser limitados pela largura de banda da rede primeiro.
  • Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
  • É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos seguintes podem ajudar a ilustrá-lo melhor.
    • Para um servidor com 8 vCores, HA desabilitado, 2 réplicas de leitura e 3 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos(3) + alguns extras para crescimento futuro, considerando vCores disponíveis (1) = 6.
    • Para um servidor com 16 vCores, HA habilitado, 4 réplicas de leitura e 5 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos(5) + alguns extras para crescimento futuro, considerando vCores disponíveis (2) = 13.
  • Se você ainda considerar que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário tivesse um desempenho adequado.

track_commit_timestamp

Atributo Value
Categoria Servidores de replicação/envio
Description Coleta o tempo de confirmação da transação.
Tipo de dados boolean
Default value off
Valores permitidos on,off
Tipo de parâmetro estático
Documentação track_commit_timestamp

wal_keep_size

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tamanho dos arquivos WAL mantidos para servidores em espera.
Tipo de dados integer
Default value 400
Valores permitidos 400
Tipo de parâmetro somente leitura
Documentação wal_keep_size

wal_sender_timeout

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tempo máximo de espera pela replicação WAL.
Tipo de dados integer
Default value 60000
Valores permitidos 60000
Tipo de parâmetro somente leitura
Documentação wal_sender_timeout

max_replication_slots

Atributo Value
Categoria Servidores de replicação/envio
Description Especifica o número máximo de slots de replicação que o servidor pode suportar.
Tipo de dados integer
Default value 10
Valores permitidos 2-262143
Tipo de parâmetro estático
Documentação max_replication_slots

max_slot_wal_keep_size

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tamanho máximo de WAL que pode ser reservado por slots de replicação.
Tipo de dados integer
Default value -1
Valores permitidos -1
Tipo de parâmetro somente leitura
Documentação max_slot_wal_keep_size

max_wal_senders

Atributo Value
Categoria Servidores de replicação/envio
Description Define o número máximo de processos de remetente WAL em execução simultânea.
Tipo de dados integer
Default value 10
Valores permitidos 5-100
Tipo de parâmetro estático
Documentação max_wal_senders

Notas específicas do Azure

O valor padrão para o max_wal_senders conjunto de parâmetros de servidor quando você provisiona a instância do Banco de Dados do Azure para o servidor flexível PostgreSQL nunca deve ser diminuído abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.

Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para ser capaz de lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:

  • Logicamente, replicar um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
  • A única razão pela qual você precisa de remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos de.
  • Seja qual for o número de remetentes WAL que estão sendo utilizados para replicação física e lógica, todos eles ficam ativos de uma só vez, sempre que qualquer back-end grava algo no log write-ahead. Quando isso acontece, os remetentes WAL atribuídos para fazer replicação lógica são todos ativados para:
    1. Decodificar todos os novos registros no WAL,
    2. Filtrar registros de log nos quais eles não estão interessados,
    3. Replique os dados relevantes para cada um deles.
  • Os remetentes WAL são semelhantes a conexões no sentido de que, se estiverem ociosos, não importa quantos sejam. No entanto, se eles estiverem ativos, eles apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara de CPU. Cada trabalhador tem que decodificar toda a WAL, mesmo que ela replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log write-ahead. Para replicação física, não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e tendem a ser limitados pela largura de banda da rede primeiro.
  • Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
  • É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos seguintes podem ajudar a ilustrá-lo melhor.
    • Para um servidor com 8 vCores, HA desabilitado, 2 réplicas de leitura e 3 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos(3) + alguns extras para crescimento futuro, considerando vCores disponíveis (1) = 6.
    • Para um servidor com 16 vCores, HA habilitado, 4 réplicas de leitura e 5 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos(5) + alguns extras para crescimento futuro, considerando vCores disponíveis (2) = 13.
  • Se você ainda considerar que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário tivesse um desempenho adequado.

track_commit_timestamp

Atributo Value
Categoria Servidores de replicação/envio
Description Coleta o tempo de confirmação da transação.
Tipo de dados boolean
Default value off
Valores permitidos on,off
Tipo de parâmetro estático
Documentação track_commit_timestamp

wal_keep_size

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tamanho dos arquivos WAL mantidos para servidores em espera.
Tipo de dados integer
Default value 400
Valores permitidos 400
Tipo de parâmetro somente leitura
Documentação wal_keep_size

wal_sender_timeout

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tempo máximo de espera pela replicação WAL.
Tipo de dados integer
Default value 60000
Valores permitidos 60000
Tipo de parâmetro somente leitura
Documentação wal_sender_timeout

max_replication_slots

Atributo Value
Categoria Servidores de replicação/envio
Description Especifica o número máximo de slots de replicação que o servidor pode suportar.
Tipo de dados integer
Default value 10
Valores permitidos 2-262143
Tipo de parâmetro estático
Documentação max_replication_slots

max_slot_wal_keep_size

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tamanho máximo de WAL que pode ser reservado por slots de replicação.
Tipo de dados integer
Default value -1
Valores permitidos -1
Tipo de parâmetro somente leitura
Documentação max_slot_wal_keep_size

max_wal_senders

Atributo Value
Categoria Servidores de replicação/envio
Description Define o número máximo de processos de remetente WAL em execução simultânea.
Tipo de dados integer
Default value 10
Valores permitidos 5-100
Tipo de parâmetro estático
Documentação max_wal_senders

Notas específicas do Azure

O valor padrão para o max_wal_senders conjunto de parâmetros de servidor quando você provisiona a instância do Banco de Dados do Azure para o servidor flexível PostgreSQL nunca deve ser diminuído abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.

Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para ser capaz de lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:

  • Logicamente, replicar um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
  • A única razão pela qual você precisa de remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos de.
  • Seja qual for o número de remetentes WAL que estão sendo utilizados para replicação física e lógica, todos eles ficam ativos de uma só vez, sempre que qualquer back-end grava algo no log write-ahead. Quando isso acontece, os remetentes WAL atribuídos para fazer replicação lógica são todos ativados para:
    1. Decodificar todos os novos registros no WAL,
    2. Filtrar registros de log nos quais eles não estão interessados,
    3. Replique os dados relevantes para cada um deles.
  • Os remetentes WAL são semelhantes a conexões no sentido de que, se estiverem ociosos, não importa quantos sejam. No entanto, se eles estiverem ativos, eles apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara de CPU. Cada trabalhador tem que decodificar toda a WAL, mesmo que ela replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log write-ahead. Para replicação física, não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e tendem a ser limitados pela largura de banda da rede primeiro.
  • Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
  • É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos seguintes podem ajudar a ilustrá-lo melhor.
    • Para um servidor com 8 vCores, HA desabilitado, 2 réplicas de leitura e 3 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos(3) + alguns extras para crescimento futuro, considerando vCores disponíveis (1) = 6.
    • Para um servidor com 16 vCores, HA habilitado, 4 réplicas de leitura e 5 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos(5) + alguns extras para crescimento futuro, considerando vCores disponíveis (2) = 13.
  • Se você ainda considerar que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário tivesse um desempenho adequado.

track_commit_timestamp

Atributo Value
Categoria Servidores de replicação/envio
Description Coleta o tempo de confirmação da transação.
Tipo de dados boolean
Default value off
Valores permitidos on,off
Tipo de parâmetro estático
Documentação track_commit_timestamp

wal_keep_size

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tamanho dos arquivos WAL mantidos para servidores em espera.
Tipo de dados integer
Default value 400
Valores permitidos 400
Tipo de parâmetro somente leitura
Documentação wal_keep_size

wal_sender_timeout

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tempo máximo de espera pela replicação WAL.
Tipo de dados integer
Default value 60000
Valores permitidos 60000
Tipo de parâmetro somente leitura
Documentação wal_sender_timeout

max_replication_slots

Atributo Value
Categoria Servidores de replicação/envio
Description Especifica o número máximo de slots de replicação que o servidor pode suportar.
Tipo de dados integer
Default value 10
Valores permitidos 2-262143
Tipo de parâmetro estático
Documentação max_replication_slots

max_slot_wal_keep_size

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tamanho máximo de WAL que pode ser reservado por slots de replicação.
Tipo de dados integer
Default value -1
Valores permitidos -1
Tipo de parâmetro somente leitura
Documentação max_slot_wal_keep_size

max_wal_senders

Atributo Value
Categoria Servidores de replicação/envio
Description Define o número máximo de processos de remetente WAL em execução simultânea.
Tipo de dados integer
Default value 10
Valores permitidos 5-100
Tipo de parâmetro estático
Documentação max_wal_senders

Notas específicas do Azure

O valor padrão para o max_wal_senders conjunto de parâmetros de servidor quando você provisiona a instância do Banco de Dados do Azure para o servidor flexível PostgreSQL nunca deve ser diminuído abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.

Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para ser capaz de lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:

  • Logicamente, replicar um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
  • A única razão pela qual você precisa de remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos de.
  • Seja qual for o número de remetentes WAL que estão sendo utilizados para replicação física e lógica, todos eles ficam ativos de uma só vez, sempre que qualquer back-end grava algo no log write-ahead. Quando isso acontece, os remetentes WAL atribuídos para fazer replicação lógica são todos ativados para:
    1. Decodificar todos os novos registros no WAL,
    2. Filtrar registros de log nos quais eles não estão interessados,
    3. Replique os dados relevantes para cada um deles.
  • Os remetentes WAL são semelhantes a conexões no sentido de que, se estiverem ociosos, não importa quantos sejam. No entanto, se eles estiverem ativos, eles apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara de CPU. Cada trabalhador tem que decodificar toda a WAL, mesmo que ela replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log write-ahead. Para replicação física, não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e tendem a ser limitados pela largura de banda da rede primeiro.
  • Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
  • É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos seguintes podem ajudar a ilustrá-lo melhor.
    • Para um servidor com 8 vCores, HA desabilitado, 2 réplicas de leitura e 3 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos(3) + alguns extras para crescimento futuro, considerando vCores disponíveis (1) = 6.
    • Para um servidor com 16 vCores, HA habilitado, 4 réplicas de leitura e 5 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos(5) + alguns extras para crescimento futuro, considerando vCores disponíveis (2) = 13.
  • Se você ainda considerar que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário tivesse um desempenho adequado.

track_commit_timestamp

Atributo Value
Categoria Servidores de replicação/envio
Description Coleta o tempo de confirmação da transação.
Tipo de dados boolean
Default value off
Valores permitidos on,off
Tipo de parâmetro estático
Documentação track_commit_timestamp

wal_keep_size

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tamanho dos arquivos WAL mantidos para servidores em espera.
Tipo de dados integer
Default value 400
Valores permitidos 400
Tipo de parâmetro somente leitura
Documentação wal_keep_size

wal_sender_timeout

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tempo máximo de espera pela replicação WAL.
Tipo de dados integer
Default value 60000
Valores permitidos 60000
Tipo de parâmetro somente leitura
Documentação wal_sender_timeout

max_replication_slots

Atributo Value
Categoria Servidores de replicação/envio
Description Especifica o número máximo de slots de replicação que o servidor pode suportar.
Tipo de dados integer
Default value 10
Valores permitidos 2-262143
Tipo de parâmetro estático
Documentação max_replication_slots

max_wal_senders

Atributo Value
Categoria Servidores de replicação/envio
Description Define o número máximo de processos de remetente WAL em execução simultânea.
Tipo de dados integer
Default value 10
Valores permitidos 5-100
Tipo de parâmetro estático
Documentação max_wal_senders

Notas específicas do Azure

O valor padrão para o max_wal_senders conjunto de parâmetros de servidor quando você provisiona a instância do Banco de Dados do Azure para o servidor flexível PostgreSQL nunca deve ser diminuído abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.

Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para ser capaz de lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:

  • Logicamente, replicar um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
  • A única razão pela qual você precisa de remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos de.
  • Seja qual for o número de remetentes WAL que estão sendo utilizados para replicação física e lógica, todos eles ficam ativos de uma só vez, sempre que qualquer back-end grava algo no log write-ahead. Quando isso acontece, os remetentes WAL atribuídos para fazer replicação lógica são todos ativados para:
    1. Decodificar todos os novos registros no WAL,
    2. Filtrar registros de log nos quais eles não estão interessados,
    3. Replique os dados relevantes para cada um deles.
  • Os remetentes WAL são semelhantes a conexões no sentido de que, se estiverem ociosos, não importa quantos sejam. No entanto, se eles estiverem ativos, eles apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara de CPU. Cada trabalhador tem que decodificar toda a WAL, mesmo que ela replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log write-ahead. Para replicação física, não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e tendem a ser limitados pela largura de banda da rede primeiro.
  • Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
  • É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos seguintes podem ajudar a ilustrá-lo melhor.
    • Para um servidor com 8 vCores, HA desabilitado, 2 réplicas de leitura e 3 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos(3) + alguns extras para crescimento futuro, considerando vCores disponíveis (1) = 6.
    • Para um servidor com 16 vCores, HA habilitado, 4 réplicas de leitura e 5 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos(5) + alguns extras para crescimento futuro, considerando vCores disponíveis (2) = 13.
  • Se você ainda considerar que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário tivesse um desempenho adequado.

track_commit_timestamp

Atributo Value
Categoria Servidores de replicação/envio
Description Coleta o tempo de confirmação da transação.
Tipo de dados boolean
Default value off
Valores permitidos on,off
Tipo de parâmetro estático
Documentação track_commit_timestamp

wal_keep_segments

Atributo Value
Categoria Servidores de replicação/envio
Description Define o número de arquivos WAL mantidos para servidores em espera.
Tipo de dados integer
Default value 25
Valores permitidos 25
Tipo de parâmetro somente leitura
Documentação

wal_sender_timeout

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tempo máximo de espera pela replicação WAL.
Tipo de dados integer
Default value 60000
Valores permitidos 60000
Tipo de parâmetro somente leitura
Documentação wal_sender_timeout

max_replication_slots

Atributo Value
Categoria Servidores de replicação/envio
Description Especifica o número máximo de slots de replicação que o servidor pode suportar.
Tipo de dados integer
Default value 10
Valores permitidos 2-262143
Tipo de parâmetro estático
Documentação max_replication_slots

max_wal_senders

Atributo Value
Categoria Servidores de replicação/envio
Description Define o número máximo de processos de remetente WAL em execução simultânea.
Tipo de dados integer
Default value 10
Valores permitidos 5-100
Tipo de parâmetro estático
Documentação max_wal_senders

Notas específicas do Azure

O valor padrão para o max_wal_senders conjunto de parâmetros de servidor quando você provisiona a instância do Banco de Dados do Azure para o servidor flexível PostgreSQL nunca deve ser diminuído abaixo de 2 (if HA is enabled) + number of read replicas provisioned + slots_used_in_logical_replication.

Ao considerar a necessidade de aumentar max_wal_senders para um valor muito mais alto para ser capaz de lidar com a replicação lógica de um número substancial de tabelas, tenha em mente os seguintes pontos importantes:

  • Logicamente, replicar um grande número de tabelas não precisa necessariamente de um grande número de remetentes WAL.
  • A única razão pela qual você precisa de remetente WAL separado por tabela ou grupo de tabelas é se você precisar de assinaturas separadas para cada uma dessas tabelas ou grupos de.
  • Seja qual for o número de remetentes WAL que estão sendo utilizados para replicação física e lógica, todos eles ficam ativos de uma só vez, sempre que qualquer back-end grava algo no log write-ahead. Quando isso acontece, os remetentes WAL atribuídos para fazer replicação lógica são todos ativados para:
    1. Decodificar todos os novos registros no WAL,
    2. Filtrar registros de log nos quais eles não estão interessados,
    3. Replique os dados relevantes para cada um deles.
  • Os remetentes WAL são semelhantes a conexões no sentido de que, se estiverem ociosos, não importa quantos sejam. No entanto, se eles estiverem ativos, eles apenas competirão pelos mesmos recursos e o desempenho pode acabar sendo terrivelmente ruim. Isso é especialmente verdadeiro para remetentes com replicação lógica, porque a decodificação lógica é bastante cara de CPU. Cada trabalhador tem que decodificar toda a WAL, mesmo que ela replique apenas as operações que afetam uma única tabela, e isso representa uma pequena porcentagem de todos os dados no log write-ahead. Para replicação física, não é tão importante, porque os remetentes WAL não consomem CPU tão intensamente e tendem a ser limitados pela largura de banda da rede primeiro.
  • Portanto, em geral, é melhor não ter muito mais remetentes WAL do que vCores.
  • É uma boa prática adicionar espaço para alguns remetentes WAL extras para acomodar crescimento futuro ou picos temporários nas conexões de replicação. Os dois exemplos seguintes podem ajudar a ilustrá-lo melhor.
    • Para um servidor com 8 vCores, HA desabilitado, 2 réplicas de leitura e 3 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (0) + slots físicos para réplicas de leitura (2) + slots lógicos(3) + alguns extras para crescimento futuro, considerando vCores disponíveis (1) = 6.
    • Para um servidor com 16 vCores, HA habilitado, 4 réplicas de leitura e 5 slots de replicação lógica, convém configurar max_wal_senders como a soma de slots físicos para HA (2) + slots físicos para réplicas de leitura (4) + slots lógicos(5) + alguns extras para crescimento futuro, considerando vCores disponíveis (2) = 13.
  • Se você ainda considerar que o valor máximo permitido para este parâmetro é muito baixo para suas necessidades, entre em contato conosco, descreva seu cenário em detalhes e explique o que você considera que seria o valor mínimo aceitável que você precisaria para que seu cenário tivesse um desempenho adequado.

track_commit_timestamp

Atributo Value
Categoria Servidores de replicação/envio
Description Coleta o tempo de confirmação da transação.
Tipo de dados boolean
Default value off
Valores permitidos on,off
Tipo de parâmetro estático
Documentação track_commit_timestamp

wal_keep_segments

Atributo Value
Categoria Servidores de replicação/envio
Description Define o número de arquivos WAL mantidos para servidores em espera.
Tipo de dados integer
Default value 25
Valores permitidos 25
Tipo de parâmetro somente leitura
Documentação

wal_sender_timeout

Atributo Value
Categoria Servidores de replicação/envio
Description Define o tempo máximo de espera pela replicação WAL.
Tipo de dados integer
Default value 60000
Valores permitidos 60000
Tipo de parâmetro somente leitura
Documentação wal_sender_timeout