Los servidores de bases de datos PostgreSQL permiten recargar su configuración invocando una función SQL desde un cliente.

Postgres incluye ciertas funciones SQL que permiten enviar diferentes señales al servidor, las cuales pueden ser de gran utilidad para desarrollar scripts o tareas de backup. Estas funciones están típicamente restringidas para que puedan ser utilizadas sólo por un superusuario.

La función pg_reload_conf() causa que el servidor Postgres recargue la configuración de la instancia, releyendo efectivamente el archivo de configuración postgresql.conf.

Supongamos que hemos hecho un cambio en la configuración de Postgres (archivo postgresql.conf) y deseamos recargar la configuración sin hacer uso del utilitario pg_ctl (pg_ctl reload).

Cambiar al superusuario de Postgres (típicamente "postgres"):

root@slackware:/usr/local/pgsql/data# su - postgres
postgres@slackware:~$ 

Desde la sesión del usuario "postgres", abrir la terminal interactiva de PostgreSQL:

postgres@slackware:~$ psql
psql (9.0.3)
Type "help" for help.

postgres=# 

Recargar la configuración del servidor Postgres ejecutando la siguiente consulta SQL:

postgres=# select pg_reload_conf();
 pg_reload_conf 
----------------
 t
(1 row)

postgres=# 

Finalmente cerrar la terminal y la sesión de "postgres":

postgres=# \q
postgres@slackware:~$ exit
logout
root@slackware:/usr/local/pgsql/data#

Para comprobar que el servidor ha recibido la señal y ha recargado su configuración (más allá de la salida de la función pg_reload_conf()), es posible revisar el log de la instancia:

root@slackware:/usr/local/pgsql/data# tail serverlog 
LOG:  received SIGHUP, reloading configuration files
LOG:  parameter "log_statement" changed to "all"

Resulta interesante que el servidor reporte cuáles fueron los parámetros alterados por esta nueva configuración, lo cual nos permite saber si los cambios en el archivo postgresql.conf surtieron efecto o no.

Referencias


Tal vez pueda interesarte


Compartí este artículo