¿Cómo puedo resolver el error «ERROR: <el módulo o la extensión> deben cargarse mediante shared_preload_libraries»?

4 minutos de lectura
0

Tengo un servicio de Amazon Relational Database Service (Amazon RDS) para una instancia de base de datos de PostgreSQL. Quiero solucionar el error «ERROR: <el módulo o la extensión> deben cargarse mediante shared_preload_libraries».

Descripción breve

Al utilizar Amazon RDS para PostgreSQL, puede precargar las bibliotecas compartidas en el servidor. Esto le permite cargar funciones adicionales o lograr beneficios de rendimiento. Sin embargo, es posible que reciba el siguiente error al utilizar el módulo o la extensión:

«ERROR: el módulo o la extensión deben cargarse mediante shared_preload_libraries»

Por ejemplo, al consultar pg_stat_statements, puede recibir el siguiente error:

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 este error y consultar pg_stat_statements, establezca el valor de shared_preload_libraries como pg_stat_statements en un grupo de parámetros personalizado asociado a su instancia de base de datos.

Modifique el valor del parámetro shared_preload_libraries en un grupo de parámetros personalizado para usar los siguientes módulos o extensiones en RDS para PostgreSQL:

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

Nota: Puede modificar los valores de los parámetros en un grupo de parámetros personalizado. No puede cambiar los valores de los parámetros de un grupo de parámetros de base de datos predeterminado. Si hace cambios en los parámetros de un grupo de parámetros personalizado, los cambios se aplicarán a todas las instancias de base de datos asociadas a ese grupo de parámetros.

Resolución

Crear un grupo de parámetros personalizado

Nota: Si ya tiene un grupo de parámetros personalizado, vaya al paso siguiente.

  1. Inicie sesión en la consola de Amazon RDS.
  2. En el panel de navegación, elija Grupos de parámetros.
  3. Elija Crear grupo de parámetros.
  4. En la Lista de familias de grupos de parámetros, seleccione una familia de grupos de parámetros de base de datos.
  5. En el cuadro Nombre del grupo, introduzca el nombre del nuevo grupo de parámetros de base de datos.
  6. En el cuadro Descripción, introduzca una descripción para el nuevo grupo de parámetros de base de datos.
  7. Elija Crear.

Modificar el parámetro en un grupo de parámetros personalizado

  1. Inicie sesión en la consola de Amazon RDS.
  2. En el panel de navegación, elija Grupos de parámetros.
  3. En la lista, elija el grupo de parámetros que quiera modificar.
  4. En Acciones del grupo de parámetros, elija Editar.
  5. Cambie los valores del parámetro shared_preload_libraries.
  6. Elija Guardar cambios.

Nota: El parámetro shared_preload_libraries es un parámetro estático. Al cambiar un parámetro estático y guardar el grupo de parámetros de base de datos, el cambio de parámetro surtirá efecto después de reiniciar manualmente la instancia de base de datos.

Asociar el grupo de parámetros a la instancia de base de datos

Nota: Si el grupo de parámetros personalizado ya está asociado a la instancia de base de datos, vaya al paso siguiente.

Modifique la instancia de base de datos para asociar el grupo de parámetros personalizado a la instancia de base de datos.

Reiniciar la instancia de base de datos

Importante: Después de cambiar el grupo de parámetros de base de datos asociado a una instancia de base de datos, debe reiniciar manualmente la instancia de base de datos. Debe hacerlo antes de que la instancia de base de datos utilice el nuevo grupo de parámetros de base de datos.

Utilice la consola de Amazon RDS para reiniciar la instancia de base de datos. Como alternativa, puede llamar explícitamente a la operación de API RebootDBInstance (sin conmutación por error, si la instancia de base de datos se encuentra en un despliegue multi-AZ).

Información relacionada

Documentación de PostgreSQL para pg_stat_statements (en el sitio web de PostgreSQL)

Trabajo con los grupos de parámetros