Ir al contenido

Instalar PgBouncer para Odoo paso a paso

26 de diciembre de 2025 por
Instalar PgBouncer para Odoo paso a paso
Juan Manuel De Castro
| Todavía no hay comentarios

🎯 Objetivo de este capítulo

Al terminar este capítulo tendrás:

  • PgBouncer instalado correctamente

  • Funcionando como proxy entre Odoo y PostgreSQL

  • Sin romper Odoo

  • Listo para optimización y hardening

👉 No vamos a tunear todavía.

Primero: que funcione bien.

🧱 Arquitectura recomendada

En este curso asumimos la arquitectura más común y estable:
Odoo → PgBouncer → PostgreSQL
  • PgBouncer en el mismo servidor que PostgreSQL (recomendado)

  • Odoo conectando solo a PgBouncer

  • PostgreSQL no expuesto directamente a Odoo


🖥️ Requisitos previos

  • Odoo funcionando correctamente

  • PostgreSQL operativo

  • Acceso root o sudo

  • Sistema Linux (Debian / Ubuntu / RHEL)


📦 Paso 1 – Instalar PgBouncer

Debian / Ubuntu

sudo apt update
sudo apt install pgbouncer


RHEL / Rocky / Alma

sudo dnf install pgbouncer

Verifica:

pgbouncer --version


📁 Paso 2 – Archivos importantes

Normalmente encontrarás:

  • Config principal:

    /etc/pgbouncer/pgbouncer.ini

  • Usuarios:

    /etc/pgbouncer/userlist.txt

  • Servicio:

    pgbouncer.service


⚙️ Paso 3 – Configuración mínima de PgBouncer

Edita /etc/pgbouncer/pgbouncer.ini:

[databases]
odoo = host=127.0.0.1 port=5432 dbname=odoo

[pgbouncer]
listen_addr = 0.0.0.0
listen_port = 6432

auth_type = scram-sha-256
auth_file = /etc/pgbouncer/userlist.txt

pool_mode = transaction

max_client_conn = 500
default_pool_size = 20

log_connections = yes
log_disconnections = yes


👉 Notas importantes

  • pool_mode = transaction → el único modo seguro para Odoo

  • listen_port = 6432 → puerto estándar de PgBouncer

  • odoo debe coincidir con el nombre de la DB


👤 Paso 4 – Crear el archivo de usuarios

Edita /etc/pgbouncer/userlist.txt:

Formato:

"usuario" "password"

Ejemplo:

"odoo" "SCRAM-SHA-256$4096:..."

👉 Debe coincidir exactamente con el usuario de PostgreSQL.

Si no usas SCRAM todavía:

ALTER USER odoo WITH PASSWORD 'password_seguro';

(PostgreSQL generará el hash SCRAM)


🔐 Paso 5 – Verificar acceso a PostgreSQL

Asegúrate de que PgBouncer sí puede conectarse a PostgreSQL:

  • pg_hba.conf debe permitir:

    • localhost

    • usuario odoo

    • método scram-sha-256 o md5

Ejemplo:

host    all     odoo    127.0.0.1/32    scram-sha-256

Reinicia PostgreSQL si cambias esto.


▶️ Paso 6 – Arrancar PgBouncer

sudo systemctl enable pgbouncer
sudo systemctl start pgbouncer

Verifica:

sudo systemctl status pgbouncer

Y que el puerto esté abierto:

ss -lntp | grep 6432

🔌 Paso 7 – Probar conexión manual

Desde el servidor:

psql -h 127.0.0.1 -p 6432 -U odoo odoo

Si entras:

👉 PgBouncer funciona correctamente.

Si falla:

  • revisa logs

  • revisa auth

  • revisa pg_hba.conf


🔁 Paso 8 – Conectar Odoo a PgBouncer

Edita odoo.conf:

db_host = 127.0.0.1
db_port = 6432
db_user = odoo
db_password = password_seguro

⚠️ Odoo NO debe conectarse directo a PostgreSQL

Reinicia Odoo:

systemctl restart odoo


👀 Paso 9 – Ver que Odoo ya pasa por PgBouncer

En PgBouncer:

psql -p 6432 -U odoo pgbouncer

Luego:

SHOW POOLS;
SHOW CLIENTS;

Si ves actividad:

👉 Odoo ya está usando PgBouncer.

❌ Errores comunes en esta etapa

  • Conectar Odoo a PostgreSQL “solo para probar”

  • Pool mode incorrecto

  • Password distinto entre PgBouncer y PostgreSQL

  • pg_hba.conf bloqueando conexiones

  • No reiniciar servicios tras cambios

📌 Conclusión

Ahora tienes:

  • PgBouncer instalado

  • Conexiones desacopladas

  • Base estable para optimizar

👉 Todavía no has ganado rendimiento máximo,

pero ya evitaste el colapso.


👉 Siguiente capítulo

Configuración básica de PgBouncer optimizada para Odoo

Ahí empezamos a:

  • calcular pools

  • evitar starvation

  • preparar producción real


Siguiente capítulo ->

Instalar PgBouncer para Odoo paso a paso
Juan Manuel De Castro 26 de diciembre de 2025
Compartir
Archivo
Iniciar sesión dejar un comentario