Trabalhar com parâmetros na instância de banco de dados do RDS para PostgreSQL
Em alguns casos, você pode criar uma instância de banco de dados do RDS para PostgreSQL sem especificar um grupo de parâmetros personalizado. Se for o caso, sua instância de banco de dados será criada usando o grupo de parâmetros padrão para a versão do PostgreSQL que você escolher. Por exemplo, suponha que você crie uma instância de banco de dados do RDS para PostgreSQL usando o PostgreSQL 13.3. Nesse caso, a instância de banco de dados é criada usando os valores no grupo de parâmetros para versões do PostgreSQL 13, default.postgres13
.
Você também pode criar seus próprios grupos de parâmetros de banco de dados personalizados. Você precisará fazer isso se quiser modificar qualquer configuração da instância de banco de dados do RDS para PostgreSQL de seus valores padrão. Para saber como, consulte Grupos de parâmetros para Amazon RDS.
Você pode rastrear as configurações em sua instância de banco de dados do RDS para PostgreSQL de várias maneiras diferentes. Você pode usar o AWS Management Console, a AWS CLI ou a API do Amazon RDS. Você também pode consultar os valores pg_settings
da tabela PostgreSQL da instância, conforme mostrado a seguir.
SELECT name, setting, boot_val, reset_val, unit FROM pg_settings ORDER BY name;
Para saber mais sobre os valores retornados dessa consulta, consulte pg_settings
Tenha cuidado especial ao alterar as configurações para max_connections
e shared_buffers
em sua instância de banco de dados do RDS para PostgreSQL. Por exemplo, suponha que você modifique as configurações de max_connections
ou shared_buffers
e use valores muito altos para sua workload real. Nesse caso, sua instância de banco de dados do RDS para PostgreSQL não será iniciada. Se isso acontecer, você verá o erro a seguir no postgres.log
.
2018-09-18 21:13:15 UTC::@:[8097]:FATAL: could not map anonymous shared memory: Cannot allocate memory
2018-09-18 21:13:15 UTC::@:[8097]:HINT: This error usually means that PostgreSQL's request for a shared memory segment
exceeded available memory or swap space. To reduce the request size (currently 3514134274048 bytes), reduce
PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
No entanto, não é possível alterar nenhum valor das configurações contidas nos grupos de parâmetros de banco de dados padrão do RDS para PostgreSQL. Para alterar as configurações de qualquer parâmetro, primeiro crie um grupo de parâmetros de banco de dados personalizado. Em seguida, altere as configurações nesse grupo personalizado e, em seguida, aplique o grupo de parâmetros personalizado à sua instância de banco de dados do RDS para PostgreSQL. Para saber mais, consulte Grupos de parâmetros para Amazon RDS.
Existem dois tipos de parâmetro no RDS para PostgreSQL.
Parâmetros estáticos – Os parâmetros estáticos exigem que a instância de banco de dados do RDS para PostgreSQL seja reinicializada após uma alteração para que o novo valor possa entrar em vigor.
Parâmetros dinâmicos – Parâmetros dinâmicos não exigem uma reinicialização após alterar suas configurações.
nota
Se sua instância de banco de dados do RDS para PostgreSQL estiver usando seu próprio grupo de parâmetros de banco de dados personalizado, você poderá alterar os valores de parâmetros dinâmicos na instância de banco de dados em execução. Isso pode ser feito usando o AWS Management Console, a AWS CLI ou a API do Amazon RDS.
Você também poderá alterar valores de parâmetros se tiver os privilégios de segurança necessários para isso usando os comandos ALTER
DATABASE
, ALTER ROLE
e SET
.
Lista de parâmetros de instância de banco de dados do RDS para PostgreSQL
A tabela a seguir lista alguns dos parâmetros (mas nem todos) disponíveis em uma instância de banco de dados do RDS para PostgreSQL. Para visualizar todos os parâmetros disponíveis, use o comando describe-db-parameters da AWS CLI. Por exemplo, para obter a lista de todos os parâmetros disponíveis no grupo de parâmetros padrão do RDS para PostgreSQL versão 13, execute o seguinte.
aws rds describe-db-parameters --db-parameter-group-name default.postgres13
Você também pode usar o console. Selecione Parameter groups (Grupos de parâmetros) no menu do Amazon RDS e depois selecione o grupo de parâmetros dentre os disponíveis em sua Região da AWS.
Nome do parâmetro |
Apply_Type |
Descrição |
---|---|---|
|
Dinâmico | Define o nome da aplicação a ser informada em estatísticas e logs. |
|
Dinâmico | Define o comando shell que será chamado para arquivar um arquivo WAL. |
|
Dinâmico | Permite entrada de elementos NULL em arrays. |
|
Dinâmico | Define o tempo máximo permitido para concluir a autenticação de cliente. |
|
Dinâmico | Inicia o subprocesso de autovacuum. |
|
Dinâmico | Número de inserções, atualizações ou exclusões de tuplas anteriores à análise, como uma fração de reltuplas. |
|
Dinâmico | Número mínimo de inserções, atualizações ou exclusões de tuplas antes da análise. |
|
Estático | Idade na qual o autovacuum de uma tabela deve ocorrer para evitar a conclusão do ID de transação. |
|
Dinâmico | Tempo de suspensão entre execuções de autovacuum. |
|
Estático | Define o número máximo de processos de trabalho de autovacuum em execução simultaneamente. |
|
Dinâmico | Atraso de custo de vacuum, em milissegundos, para autovacuum. |
|
Dinâmico | Valor do custo de vacuum disponível antes da suspensão, para autovacuum. |
|
Dinâmico | Número de atualizações ou exclusões de tuplas antes de vacuum, como uma fração de reltuplas. |
|
Dinâmico | Número mínimo de atualizações ou exclusões de tuplas antes de vacuum. |
|
Dinâmico | Define-se uma barra invertida (\) é permitida em literais de string. |
|
Dinâmico | Tempo de suspensão do gravador em segundo plano entre rodadas. |
|
Dinâmico | Número máximo do gravador em segundo plano de páginas LRU para descarregamento por rodada. |
|
Dinâmico | Múltiplo do uso médio do buffer para liberação por rodada. |
|
Dinâmico | Define o formato da saída para bytes. |
|
Dinâmico | Verifica corpos de funções durante CREATE FUNCTION. |
|
Dinâmico | Tempo gasto descarregando buffers sujos durante verificações, como uma fração do intervalo de verificação. |
|
Dinâmico | Define a distância máxima em segmentos de log entre verificações pontos de verificação WAL (write-ahead log)de log WAL automáticos. |
|
Dinâmico | Define o tempo máximo entre verificações WAL automáticas. |
|
Dinâmico | Permite avisos se segmentos de verificação forem preenchidos mais frequentemente do que isso. |
|
Dinâmico | Define o intervalo de tempo entre as verificações de desconexão durante a execução de consultas. |
|
Dinâmico | Define a codificação do conjunto de caracteres do cliente. |
|
Dinâmico | Define os níveis de mensagem enviados ao cliente. |
|
Dinâmico | Define o atraso em microssegundos entre a confirmação da transação e a liberação do WAL no disco. |
|
Dinâmico | Define o mínimo de transações simultâneas abertas antes de realizar commit_delay. |
|
Dinâmico | Permite que o planejador use restrições para otimizar consultas. |
|
Dinâmico | Define a estimativa do planejador sobre o custo do processamento de cada entrada de índice durante uma verificação de índice. |
|
Dinâmico | Define a estimativa do planejador sobre o custo do processamento de cada operador ou chamada de função. |
|
Dinâmico | Define a estimativa do planejador sobre o custo do processamento de cada tupla (linha). |
|
Dinâmico | Define a estimativa do planejador sobre a fração de linhas de um cursor que serão recuperadas. |
|
Dinâmico | Define o formato de exibição de valores de data e hora. |
|
Dinâmico | Define o tempo de espera em um bloqueio antes de verificar a existência de um deadlock. |
|
Dinâmico | Recua exibições de árvores de análise e plano. |
|
Dinâmico | Registra a árvore de análise de cada consulta. |
|
Dinâmico | Registra o plano de execução de cada consulta. |
|
Dinâmico | Registra a árvore de análise regravada de cada consulta. |
|
Dinâmico | Define o destino de estatísticas padrão. |
|
Dinâmico | Define o espaço de tabela padrão no qual criar tabelas e índices. |
|
Dinâmico | Define o status padrão postergável de novas transações. |
|
Dinâmico | Define o nível de isolamento de transação de cada nova transação. |
|
Dinâmico | Define o status padrão somente leitura de novas transações. |
|
Dinâmico | Cria tabelas com “Object IDs” (OIDs – IDs de objetos) por padrão. |
|
Dinâmico | Define a pressuposição do planejador sobre o tamanho do cache de disco. |
|
Dinâmico | Número de solicitações simultâneas que podem ser manipuladas de forma eficiente pelo subsistema de disco. |
|
Dinâmico | Permite o uso do planejador de planos de verificação de bitmap. |
|
Dinâmico | Permite o uso do planejador de planos de agregação em hash. |
|
Dinâmico | Permite o uso do planejador de planos de junção hash. |
|
Dinâmico | Permite o uso do planejador de planos de verificação de índice. |
|
Dinâmico | Permite o uso do planejador da materialização. |
|
Dinâmico | Permite o uso do planejador de planos de junção de mesclagem. |
|
Dinâmico | Permite o uso do planejador de planos de junção de loop aninhado. |
|
Dinâmico | Permite o uso do planejador de planos de verificação sequencial. |
|
Dinâmico | Permite o uso do planejador de etapas de classificação explícitas. |
|
Dinâmico | Permite o uso do planejador de planos de verificação TID. |
|
Dinâmico | Avisa sobre escapes de barra invertida (\) em literais de string comuns. |
|
Dinâmico | Define o número de dígitos exibidos para valores de ponto flutuante. |
|
Dinâmico | Define o tamanho da lista FROM além do qual subconsultas não são recolhidas. |
|
Dinâmico | Força a sincronização de atualizações no disco. |
|
Dinâmico | Grava páginas cheias no WAL ao serem modificadas pela primeira vez após uma verificação. |
|
Dinâmico | Permite a otimização de consultas genéticas. |
|
Dinâmico | GEQO: esforço é usado para definir o padrão para outros parâmetros GEQO. |
|
Dinâmico | GEQO: número de iterações do algoritmo. |
|
Dinâmico | GEQO: número de indivíduos na população. |
|
Dinâmico | GEQO: propagação para seleção de caminho aleatório. |
|
Dinâmico | GEQO: pressão seletiva dentro da população. |
|
Dinâmico | Define o limite de itens FROM além do qual o GEQO é usado. |
|
Dinâmico | Define o resultado máximo permitido para pesquisa exata por GIN. |
|
Dinâmico | Determina se um standby a quente envia mensagens de comentários ao standby principal ou upstream. |
|
Dinâmico | Define o formato de exibição para valores de intervalo. |
|
Dinâmico | Define o tamanho da lista FROM além do qual constructos JOIN não são nivelados. |
|
Dinâmico | Define o idioma em que as mensagens são exibidas. |
|
Dinâmico | Define a localidade para a formatação de valores monetários. |
|
Dinâmico | Define a localidade para a formatação de números. |
|
Dinâmico | Define a localidade para a formatação de valores de data e hora. |
|
Dinâmico | Define o tempo de execução mínimo acima do qual as ações de autovacuum serão registradas em log. |
|
Dinâmico | Registra cada verificação. |
|
Dinâmico | Registra cada conexão bem-sucedida. |
|
Dinâmico | Registra o fim de uma sessão, incluindo a duração. |
|
Dinâmico | Registra a duração de cada instrução SQL concluída. |
|
Dinâmico | Define a verbosidade das mensagens registradas. |
|
Dinâmico | Grava estatísticas de performance do executor no log do servidor. |
|
Dinâmico | Define o padrão de nome de arquivo para arquivos de log. |
|
Dinâmico | Define as permissões de arquivos de log. O valor padrão é 0644. |
|
Dinâmico | Registra o nome do host nos logs de conexão. A partir do PostgreSQL 12 e versões posteriores, esse parâmetro está “desativado” por padrão. Quando ativada, a conexão usa a pesquisa reversa de DNS para obter o nome do host que é capturado nos logs de conexão. Se você ativar esse parâmetro, deverá monitorar o impacto que ele tem no tempo necessário para estabelecer conexões. |
|
Dinâmico | Controla informações prefixadas para cada linha de log. |
|
Dinâmico | Registra esperas de bloqueio longas. |
|
Dinâmico | Define o tempo de execução mínimo acima do qual as instruções serão registradas em log. |
|
Dinâmico | Faz com que todas as instruções que geram um erro igual ou acima desse nível sejam registradas. |
|
Dinâmico | Define os níveis de mensagem registrados. |
|
Dinâmico | Grava estatísticas de performance do analisador no log do servidor. |
|
Dinâmico | Grava estatísticas de performance do planejador no log do servidor. |
|
Dinâmico | A rotação automática de arquivos de log ocorrerá depois de N minutos. |
|
Dinâmico | A rotação automática de arquivos de log ocorrerá depois de N kilobytes. |
|
Dinâmico | Define o tipo de instruções registradas. |
|
Dinâmico | Grava estatísticas de performance cumulativas no log do servidor. |
|
Dinâmico | Registra o uso de arquivos temporários maiores do que esse número de kilobytes. |
|
Dinâmico | Define o fuso horário a ser usado em mensagens de log. |
|
Dinâmico | Trunca os arquivos de log existentes com o mesmo nome durante a alternância do log. |
|
Estático | Inicia um subprocesso para capturar a saída stderr e/ou csvlogs em arquivos de log. |
|
Dinâmico | Define a memória máxima a ser usada para operações de manutenção. |
|
Estático | Define o número máximo de conexões simultâneas. |
|
Estático | Define o número máximo de arquivos abertos simultaneamente para cada processo do servidor. |
|
Estático | Define o número máximo de bloqueios por transação. |
|
Estático | Define o número máximo de bloqueios de predicado por transação. |
|
Estático | Define o número máximo de transações simultaneamente preparadas. |
|
Dinâmico | Define a profundidade máxima da pilha, em kilobytes. |
|
Dinâmico | Define o atraso máximo antes de cancelar consultas quando um servidor em standby a quente está processando dados WAL arquivados. |
|
Dinâmico | Define o atraso máximo antes de cancelar consultas quando um servidor em standby a quente está processando dados do WAL em stream. |
max_wal_size |
Dinâmico | Define o tamanho do WAL (MB) que aciona o ponto de verificação. Para todas as versões após o RDS para PostgreSQL 10, o padrão é pelo menos 1 GB (1.024 MB). Por exemplo, a configuração max_wal_size do RDS para PostgreSQL 14 é 2 GB (2.048 MB). Use o comando SHOW max_wal_size; na instância de banco de dados do RDS para PostgreSQL para ver o valor atual. |
min_wal_size |
Dinâmico | Define o tamanho mínimo até o qual diminuir o WAL. Para o PostgreSQL versão 9.6 e anterior, min_wal_size está em unidades de 16 MB. Para o PostgreSQL versão 10 e posterior, min_wal_size está em unidades de 1 MB. |
|
Dinâmico | Adiciona aspas (") a todos os identificadores ao gerar fragmentos SQL. |
|
Dinâmico | Define a estimativa do planejador sobre o custo de uma página de disco não sequencialmente buscada. Esse parâmetro não tem valor, a menos que o gerenciamento do plano de consulta (QPM) esteja ativado. Quando o QPM está ativado, o valor padrão desse parâmetro é 4 . |
rds.adaptive_autovacuum |
Dinâmico | Ajusta automaticamente os parâmetros de autovacuum sempre que os limites de ID de transação são excedidos. |
rds.force_ssl |
Dinâmico | Requer o uso de conexões SSL. O valor padrão é definido como 1 (ligado) para o RDS para PostgreSQL versão 15. Todas as outras versões principais do RDS para PostgreSQL 14 e anteriores têm o valor padrão definido como 0 (desativado). |
|
Estático | Permite gravar arquivos de despejo lógico no volume local. |
|
Dinâmico | Define a retenção de logs para que o Amazon RDS exclua os logs do PostgreSQL com mais de n minutos. |
rds.rds_superuser_reserved_connections |
Estático | Define o número de slots de conexão reservados para rds_superusers. Esse parâmetro só está disponível nas versões 15 e posterior. Para ter mais informações, consulte reserved_connections |
rds.restrict_password_commands |
Estático | Restringe quem gerencia senhas para usuários com a função rds_password . Defina esse parâmetro como 1 para habilitar a restrição de senha. O padrão é 0. |
|
Dinâmico | Define a ordem de pesquisa do esquema de nomes que não são qualificados para esquema. |
|
Dinâmico | Define a estimativa do planejador sobre o custo de uma página de disco sequencialmente buscada. |
|
Dinâmico | Define o comportamento de sessões para disparadores e regras de regravação. |
|
Estático | Define o número de buffers de memória compartilhada usados pelo servidor. |
|
Estático | Lista as bibliotecas compartilhadas a serem pré-carregadas na instância de banco de dados do RDS para PostgreSQL. Os valores compatíveis incluem auto_explain, orafce, pgaudit, pglogical, pg_bigm, pg_cron, pg_hint_plan, pg_prewarm, pg_similarity, pg_stat_statements, pg_tle, pg_transport, plprofiler e plrust. |
|
Dinâmico | Habilita conexões SSL. |
|
Dinâmico | Faz com que subtabelas sejam incluídas por padrão em vários comandos. |
|
Dinâmico | Define a quantidade de tráfego para envio e recebimento antes da renegociação das chaves de criptografia. |
|
Dinâmico | Faz com que strings ... tratem barras invertidas literalmente. |
|
Dinâmico | Define a duração máxima permitida de qualquer instrução. |
|
Dinâmico | Permite varreduras sequenciais sincronizadas. |
|
Dinâmico | Define o nível de sincronização de transações atual. |
|
Dinâmico | Número máximo de retransmissões de keepalives TCP. |
|
Dinâmico | Tempo entre a emissão de keepalives TCP. |
|
Dinâmico | Tempo entre retransmissões de keepalives TCP. |
|
Dinâmico | Define o número máximo de buffers temporários usado por cada sessão. |
temp_file_limit |
Dinâmico | Define o tamanho máximo em KB até o qual os arquivos temporários podem aumentar. |
|
Dinâmico | Define os espaços de tabela a serem usados para tabelas temporárias e arquivos de classificação. |
|
Dinâmico | Define o fuso horário para exibir e interpretar carimbos de data/hora. A Internet Assigned Numbers Authority (IANA) publica novos fusos horários várias vezes por ano em https://www.iana.org/time-zones |
|
Dinâmico | Coleta informações sobre a execução de comandos. |
|
Estático | Define o tamanho reservado para pg_stat_activity.current_query, em bytes. |
|
Dinâmico | Coleta estatísticas sobre a atividade do banco de dados. |
|
Dinâmico | Coleta estatísticas em nível de função sobre a atividade do banco de dados. |
|
Dinâmico | Coleta estatísticas de tempo sobre atividades de E/S do banco de dados. |
|
Dinâmico | Indica se uma transação serializável somente de leitura deve ser adiada até que ela possa ser iniciada sem falhas de serialização possíveis. |
|
Dinâmico | Define o nível atual de isolamento de transações. |
|
Dinâmico | Define o status somente leitura das transações atuais. |
|
Dinâmico | Trata expr=NULL como expr IS NULL. |
|
Dinâmico | Atualiza o título do processo para mostrar o comando SQL ativo. |
|
Dinâmico | Atraso de custo de vacuum, em milissegundos. |
|
Dinâmico | Valor do custo de vacuum disponível antes da suspensão. |
|
Dinâmico | Custo de vacuum para uma página suja por vacuum. |
|
Dinâmico | Custo de vacuum para uma página encontrada no cache do buffer. |
|
Dinâmico | Custo de vacuum para uma página não encontrada no cache do buffer. |
|
Dinâmico | Número de transações pelas quais a limpeza vacuum e hot deve ser adiada, se houver. |
|
Dinâmico | Idade mínima na qual o vacuum deve congelar uma linha de tabela. |
|
Dinâmico | Idade na qual o vacuum deve varrer uma tabela inteira para congelar tuplas. |
|
Estático | Define o número de buffers da página de disco na memória compartilhada para WAL. |
|
Dinâmico | Tempo de suspensão do gravador WAL entre liberações do WAL. |
|
Dinâmico | Define o máximo de memória a ser usado para espaços de trabalho de consulta. |
|
Dinâmico | Define como valores binários devem ser codificados em XML. |
|
Dinâmico | Define se dados XML em operações de análise e serialização implícitas são considerados documentos ou fragmentos de conteúdo. |
O Amazon RDS usa as unidades padrão do PostgreSQL para todos os parâmetros. A tabela a seguir mostra a unidade padrão de cada parâmetro do PostgreSQL.
Nome do parâmetro |
Unidade |
---|---|
| s |
| s |
| s |
| ms |
| ms |
| s |
| s |
| ms |
| 8 KB |
| ms |
| ms |
| ms |
| minutos |
| KB |
| KB |
| KB |
| KB |
| ms |
| ms |
| s |
| s |
| 8 KB |
| 8 KB |
| ms |
| KB |
| s |
| s |
| KB |
| KB |
| 8 KB |
| ms |
| 8 KB |
| ms |
| B |
| ms |
| ms |
| s |