Detectar errores en la configuración de PostgreSQL con pg_file_settings

pg_file_settings permite localizar el archivo, la línea y el parámetro que provocan un error al leer la configuración de PostgreSQL, sin mostrar valores sensibles innecesarios.

Terminal con una consulta de PostgreSQL que localiza errores de configuración

¿Hay una directiva de PostgreSQL que no se aplica? La vista pg_file_settings permite localizar el archivo y la línea que producen un error al leer la configuración.

Consultar los errores de configuración

Para listar solo las entradas que PostgreSQL no ha podido aplicar:

SELECT sourcefile,
       sourceline,
       name,
       applied,
       error
FROM pg_file_settings
WHERE error IS NOT NULL
ORDER BY sourcefile, sourceline;

sourcefile y sourceline indican dónde está la directiva. name muestra el parámetro afectado y error explica el problema detectado. Si la consulta no devuelve filas, PostgreSQL no ha registrado errores al leer los archivos de configuración visibles para la sesión.

Revisar una directiva concreta

Si conoces el parámetro que estás investigando, puedes limitar la salida:

SELECT sourcefile,
       sourceline,
       name,
       applied,
       error
FROM pg_file_settings
WHERE name = 'shared_buffers'
ORDER BY sourcefile, sourceline;

La columna applied ayuda a distinguir una entrada aplicada de otra que quedó sin aplicar. Para saber si un cambio concreto necesita reinicio, comprueba además pg_settings.pending_restart.

Precaución con el contenido de setting

La vista también incluye la columna setting, pero no conviene mostrarla en informes o pegar su salida sin revisar. Una configuración puede contener credenciales u otros valores sensibles. Para diagnosticar un error normalmente bastan sourcefile, sourceline, name, applied y error.

Una vez corregido el archivo, vuelve a cargar la configuración con el procedimiento habitual de tu instalación y repite la consulta. No edites ni recargues archivos de producción sin una copia y un plan de recuperación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *