Luego de compilar e instalar un servidor de bases de datos Postgres, el siguiente paso luego de inicializar una instancia consiste en configurar el demonio o servicio. Este artículo explica las opciones de configuración básicas de un servidor de bases de datos PostgreSQL.
Suponiendo que se ha creado una nueva instancia de PostgreSQL en el directorio /usr/local/postgres/pg_nuevo
(directorio de datos de la instancia de Postgres), editar el archivo de configuración de la misma (postgresql.conf
):
# nano /usr/local/postgres/pg_nuevo/postgresql.conf
El archivo postgresql.conf
define los parámetros de configuración del servidor PostgreSQL (es una especie de análogo a my.cnf
en servidores MySQL). Este archivo es creado por la herramienta initdb
al momento de crear la instancia.
Los parámetros de configuración básicos para toda instancia de Postgres son los siguientes:
data_directory
: directorio de datos de la instancia. Típicamente es el directorio donde se encuentra el archivopostgresql.conf
, aunque es posible ubicarlo en cualquier otro directorio.data_directory = '/usr/local/postgres/pg_nuevo'
external_pid_file
: archivo donde guardar el ID de proceso de la instancia.external_pid_file = '/usr/local/postgres/pg_nuevo/postmaster.pid'
listen_addresses
: direcciones IP donde escuchar peticiones.listen_addresses = 'localhost,192.168.63.42'
port
: puerto donde escuchar peticiones (por defecto5432
).port = 5432
max_connections
: máxima cantidad de clientes de manera concurrente permitidamax_connections = 100
ssl_*
: opciones de SSL. Si se utiliza SSL (recomendado), estas opciones definen las suites de cifrado permitidas y las rutas al certificado y su clave privada.ssl = on ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH' ssl_cert_file = 'server.crt' ssl_key_file = 'server.key'
shared_buffers
: tamaño de la memoria utilizada para caché. A partir de 1 GB, el valor aconsejado es a partir de 1/4 de la memoria RAM (por ejemplo 128 MB). En sistemas con menor cantidad de memoria se recomienda utilizar un 15% de la misma.shared_buffers = 24MB
log_*
: opciones de logging (registro de eventos). Estas opciones determinan dónde se guardan los archivos de log y su esquema de rotación (en este ejemplo cada 180 días o 100 MB).logging_collector = on log_directory = 'pg_log' log_filename = 'pg_nuevo%Y%m%d%H%M%S.log' log_truncate_on_rotation = on log_rotation_age = 180d log_rotation_size = 100MB log_duration = on log_line_prefix = '%t %u %c %d %p %i' log_statement = 'all'
La opciónlog_line_prefix
determina el prefijo de cada entrada en el log:%t
indica el timestamp,%u
el usuario,%c
el ID de sesión,%d
el nombre de la base de datos,%p
el ID de proceso e%i
el tag asociado al comando ejecutado.- Opciones de localización (configuradas por
initdb
):datestyle = 'iso, dmy' lc_messages = 'es_AR.UTF-8' lc_monetary = 'es_AR.UTF-8' lc_numeric = 'es_AR.UTF-8' lc_time = 'es_AR.UTF-8' default_text_search_config = 'pg_catalog.spanish'
Referencias
- Compilar e instalar PostgreSQL desde los fuentes
- Cómo crear una instancia de PostgreSQL
- PostgreSQL Documentation - Server Configuration - Setting Parameters
- Tuning Your PostgreSQL Server
Fuente: linuxito