Como posso resolver o erro “ERRO: <módulo/extensão> deve ser carregado via shared_preload_libraries”?

4 minuto de leitura
0

Tenho um Amazon Relational Database Service (Amazon RDS) para uma instância de banco de dados PostgreSQL. Quero solucionar o erro “ERRO: <módulo/extensão> deve ser carregado via shared_preload_libraries”.

Descrição breve

Ao usar o Amazon RDS para PostgreSQL, você pode pré-carregar bibliotecas compartilhadas no servidor. Isso permite carregar funcionalidades adicionais ou obter benefícios de performance. No entanto, talvez você possa receber o seguinte erro ao usar o módulo/extensão:

“ERRO: <módulo/extensão> deve ser carregado via shared_preload_libraries"

Por exemplo, ao consultar pg_stat_statements, você pode receber o seguinte erro:

postgres=> SELECT * FROM pg_stat_statements;
ERROR:  relation "pg_stat_statements" does not exist
postgres=> CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
CREATE EXTENSION

postgres=> SELECT * FROM pg_stat_statements;
ERROR:  pg_stat_statements must be loaded via shared_preload_libraries

Para resolver esse erro e consultar pg_stat_statements, defina o valor de shared_preload_libraries como pg_stat_statements em um grupo de parâmetros personalizado associado à sua instância de banco de dados.

Modifique o valor do parâmetro shared_preload_libraries em um grupo de parâmetros personalizado para usar os seguintes módulos/extensões no RDS para PostgreSQL:

  • auto_explain
  • orafce
  • pgaudit
  • pglogical
  • pg_hint_plan
  • pg_prewarm
  • pg_similarity
  • pg_stat_statements
  • pg_transport
  • plprofiler

Observação: você pode modificar valores de parâmetros em um grupo de parâmetros personalizado. Porém, não pode alterar os valores de parâmetros em um grupo de parâmetros de banco de dados padrão. Se você fizer alterações nos parâmetros em um grupo de parâmetros personalizado, suas alterações se aplicarão a todas as instâncias de banco de dados associadas a esse grupo.

Resolução

Criar um grupo de parâmetros personalizado

Observação: se você já tiver um grupo de parâmetros personalizado, vá para a próxima etapa.

  1. Faça login no Console do Amazon RDS.
  2. No painel de navegação, escolha Parameter groups (Grupos de parâmetros).
  3. Escolha Create parameter group (Criar grupo de parâmetros).
  4. Selecione uma Família de grupo de parâmetros de banco de dados na lista Família do grupo de parâmetros do banco de dados.
  5. Insira o nome do novo grupo de parâmetros de banco de dados na caixa Nome do grupo.
  6. Digite uma descrição para o novo grupo de parâmetros de banco de dados na caixa Descrição.
  7. Escolha Criar.

Modificar o parâmetro no grupo de parâmetros personalizado

  1. Faça login no Console do Amazon RDS.
  2. No painel de navegação, escolha Parameter groups (Grupos de parâmetros).
  3. Na lista, escolha o grupo de parâmetros que você deseja modificar.
  4. Em Ações do grupo de parâmetros, escolha Editar.
  5. Altere os valores do parâmetro shared_preload_libraries.
  6. Escolha Salvar alterações.

Observação: o parâmetro shared_preload_libraries é estático. Quando você altera um parâmetro estático e salva o grupo de parâmetros do banco de dados, a alteração do parâmetro entrará em vigor depois que você reinicializar a instância de banco de dados manualmente.

Associar o grupo de parâmetros à sua instância de banco de dados

Observação: se seu grupo de parâmetros personalizado já estiver associado à sua instância de banco de dados, vá para a próxima etapa.

Modifique sua instância de banco de dados para associar o grupo de parâmetros personalizado à sua instância de banco de dados.

Reinicializar a instância de banco de dados

Importante: depois de alterar o grupo de parâmetros de banco de dados associado a uma instância de banco de dados, você deverá reinicializar manualmente a instância de banco de dados. Você deve fazer isso antes que a instância de banco de dados use o novo grupo de parâmetros de banco de dados.

Use o console do Amazon RDS para reinicializar sua instância de banco de dados. Uma alternativa é chamar explicitamente a operação da API RebootDBInstance (sem failover, se a instância de banco de dados estiver em uma implantação Multi-AZ).

Informações relacionadas

Documentação do PostgreSQL para pg_stat_statements ( no site do PostgreSQL)

Trabalhar com grupos de parâmetros