Tarefas comuns de DBA do Amazon RDS para PostgreSQL - Amazon Relational Database Service

Tarefas comuns de DBA do Amazon RDS para PostgreSQL

Os administradores de banco de dados (DBAs) executam várias tarefas ao administrar uma instância de banco de dados Amazon RDS para PostgreSQL. Se você já é um DBA familiarizado com o PostgreSQL, esteja ciente sobre algumas das diferenças importantes entre a execução do PostgreSQL em seu hardware e do RDS para PostgreSQL. Por exemplo, por ser um serviço gerenciado, o Amazon RDS não permite acesso ao shell às suas instâncias de banco de dados. Isso significa que você não tem acesso direto a pg_hba.conf e a outros arquivos de configuração. Para o RDS para PostgreSQL, as alterações que normalmente são feitas no arquivo de configuração do PostgreSQL de uma instância on-premises são feitas em um grupo de parâmetros de banco de dados personalizado associado à instância de banco de dados do RDS para PostgreSQL. Para ter mais informações, consulte Grupos de parâmetros para Amazon RDS.

Você também não pode acessar arquivos de log da mesma forma que faz com uma instância do PostgreSQL on-premises. Para saber mais sobre registro em log, consulte Arquivos de log do banco de dados do RDS para PostgreSQL.

Como outro exemplo, não é possível ter acesso à conta superuser do PostgreSQL. No RDS para PostgreSQL, o perfil rds_superuser é o perfil mais privilegiado, e é concedido ao postgres ao configurar. Se você estiver familiarizado com o uso do PostgreSQL on-premises ou for completamente novo no RDS para PostgreSQL, recomendamos que você entenda o perfil rds_superuser e como trabalhar com perfis, usuários, grupos e permissões. Para ter mais informações, consulteNoções básicas de perfis e permissões do PostgreSQL

Veja a seguir algumas tarefas comuns do DBA para o RDS para PostgreSQL.

Trabalhar com os mecanismos de registro em log compatíveis com o RDS para PostgreSQL

Existem vários parâmetros, extensões e outros itens configuráveis que você pode definir para registrar em log as atividades que ocorrem na sua instância de banco de dados PostgreSQL. Incluindo o seguinte:

  • O parâmetro log_statement pode ser usado para registrar as atividades dos usuários no seu banco de dados PostgreSQL. Para saber mais sobre o registro em log do RDS para PostgreSQL e como monitorar os logs, consulte Arquivos de log do banco de dados do RDS para PostgreSQL.

  • O parâmetro rds.force_admin_logging_level registra na instância de banco de dados as ações do usuário interno do Amazon RDS (rdsadmin) nos bancos de dados. Ele grava a saída no log de erros do PostgreSQL. Os valores permitidos são disabled, debug5, debug4, debug3, debug2, debug1, info, notice, warning, error, log,fatal e panic. O valor padrão é disabled.

  • O parâmetro rds.force_autovacuum_logging_level pode ser definido para capturar várias operações de autovacuum no log de erros do PostgreSQL. Para ter mais informações, consulteRegistrar atividades do autovacuum e do vacuum em log

  • A extensão do PostgreSQL Audit (pgAudit) pode ser instalada e configurada para capturar atividades no nível da sessão ou no nível do objeto. Para ter mais informações, consulteUsar pgAudit para registrar a atividade do banco de dados

  • A extensão log_fdw possibilita que você acesse o log do mecanismo de banco de dados usando SQL. Para ter mais informações, consulte Usar a extensão log_fdw para acessar o log de banco de dados usando SQL.

  • A biblioteca pg_stat_statements é especificada como padrão para o parâmetro shared_preload_libraries no RDS para PostgreSQL versão 10 e posteriores. É essa biblioteca que você pode usar para analisar consultas em execução. Certifique-se de que pg_stat_statements esteja definido no grupo de parâmetros de banco de dados. Para ter mais informações sobre o monitoramento da instância de banco de dados do RDS para PostgreSQL usando as informações fornecidas por essa biblioteca, consulte Estatísticas SQL do RDS PostgreSQL.

  • O parâmetro log_hostname captura no log o nome do host de cada conexão do cliente. Para RDS para PostgreSQL versão 12 e versões superiores, esse parâmetro é definido como off por padrão. Se você ativá-lo, monitore os tempos de conexão da sessão. Quando ativado, o serviço usa a solicitação de pesquisa reversa do sistema de Nomes de Domínio (DNS) para obter o nome do host do cliente que está fazendo a conexão e adicioná-lo ao log do PostgreSQL. Isso tem um impacto perceptível durante a conexão da sessão. Recomendamos que você ative esse parâmetro apenas para solução de problemas.

Em termos gerais, o objetivo do registro em log é possibilitar que o DBA monitore, ajuste a performance e solucione problemas. Muitos dos logs são carregados automaticamente no Amazon CloudWatch ou no Performance Insights. Aqui, eles são classificados e agrupados para fornecer métricas completas para sua instância de banco de dados. Para saber mais sobre o monitoramento e as métricas do Amazon RDS, consulte Métricas de monitoramento em uma instância do Amazon RDS.

Uso de pgBadger para análise de logs com o PostgreSQL

Você pode usar um analisador de log, como o pgBadger, para analisar logs do PostgreSQL. A documentação do pgBadger indica que o padrão %l (linha de log da sessão ou do processo) deve ser uma parte do prefixo. Contudo, se você fornecer o log_line_prefix atual do RDS como um parâmetro para pgBadger, isso ainda produzirá um relatório.

Por exemplo, o comando a seguir formata corretamente um arquivo de log do Amazon RDS para PostgreSQL com data de 04/02/2014 usando pgBadger.

./pgbadger -f stderr -p '%t:%r:%u@%d:[%p]:' postgresql.log.2014-02-04-00

Usar o PGSnapper para monitorar o PostgreSQL

Você pode usar o PGSnapper para auxiliar na coleta periódica de estatísticas e métricas relacionadas à performance do Amazon RDS para PostgreSQL. Para ter mais informações, consulte Monitorar a performance do Amazon RDS para PostgreSQL usando o PGSnapper.