Els paràmetres de configuració del servidor defineixen el comportament de la instància de PostgreSQL
(el clúster). Es classifiquen segons el seu context, que determina quan i com es poden modificar:
Context
Significat
Com s'aplica
Exemples
internal
Només lectura. Fixat en compilar PostgreSQL o en crear el clúster (initdb).
La configuració de la instància es gestiona mitjançant el fitxer postgresql.conf,
situat al directori de dades (PGDATA), que es llig en iniciar el servidor.
Es pot consultar la ubicació del fitxer en ús amb:
Un paràmetre es pot modificar només per a la sessió actual o per a tot el servidor.
El primer cas és útil per fer proves, ja que el canvi desapareix en tancar la connexió:
A nivell de sessió, amb SET:
SETwork_mem='64MB';SETdatestyle='ISO, DMY';
El valor original de la sessió es recupera amb RESET:
RESETwork_mem;
A nivell de sistema, amb ALTER SYSTEM (disponible des de PostgreSQL 9.4), que escriu
el nou valor a un fitxer addicional postgresql.auto.conf, sense modificar directament
postgresql.conf:
Modifica els paràmetres anteriors a nivell de sessió amb SET.
Comprova els canvis amb SHOW ALL o consultant pg_settings.
Modifica els mateixos paràmetres a nivell de sistema amb ALTER SYSTEM, de manera permanent.
Recarrega la configuració i comprova els canvis amb una nova sessió.
Solució
SETdatestyle='ISO, DMY';SETTimeZone='Europe/Madrid';SETwork_mem='64MB';SETstatement_timeout=30000;SHOWALL;ALTERSYSTEMSETdatestyle='ISO, DMY';ALTERSYSTEMSETTimeZone='Europe/Madrid';ALTERSYSTEMSETwork_mem='64MB';ALTERSYSTEMSETstatement_timeout=30000;SELECTpg_reload_conf();-- Amb una nova connexió:SELECTname,settingFROMpg_settingsWHEREnameIN('datestyle','timezone','work_mem','statement_timeout');
Exercici: canvi d'idioma
Consulta el paràmetre lc_time, relacionat amb l'idioma dels noms de mesos i dies de la setmana.
Mostra el mes actual amb l'idioma per defecte:
SELECTto_char(current_date,'TMMonth')ASmes;
Assigna la variable de sessió lc_time a l'alemany (de_DE.UTF-8, si està disponible
al servidor) i torna a mostrar el mes actual.
lc_time requereix que el locale estiga instal·lat al sistema operatiu del servidor.
Torna a deixar el valor per defecte i comprova que el mes torna a mostrar-se en l'idioma original.
📌 Aquest document pot quedar desactualitzat després d’imprimir-lo. Pots consultar la versió més recent
a la pàgina web.
🌿 Abans d’imprimir aquest document, considera si és realment necessari. Redueix el consum de paper i ajuda a protegir el nostre entorn.