Por favor ingresa o regístrese. Junio 27, 2017, 07:43:12 pm

Autor Tema: Restauración rápida de Backups de Bases de Datos PostgreSQL de gran tamaño  (Leído 1000 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado admin

  • Administrator
  • Newbie
  • *****
  • Mensajes: 17
  • Karma: +0/-0
    • Ver Perfil
"Que parámetros de PostgreSQL debería setear para una restauración rápida ?":

Utilizar la opción -j de multiproceso para el pg_restore (y en 9.3, también para el pg_dump)
La concurrencia ideal es generalmente dos menos el numero de núcleos que tenga el servidor con un limite de 8
Usuarios con muchas tablas ( > 1000) serán beneficiados con los mayores niveles de concurrencia.

Asumimos que solamente existe una base de datos corriendo en el Servidor.
Estos parámetros no son seguros si existen en el mismo servidor otras bases de producción.
Si el pg_restore falla, deberías dar delete la base y volver a restaurar.
Estas configuraciones romperán replicaciones y también el PITR backup.
Estas configuraciones necesitan un restart de la Base de Datos PostgreSQL para asumir los nuevos valores y volverlos a lo normal o sea de producción.
Deberás realizar un ANALYZE de forma manual después del restauro.

shared_buffers = (entre 512 y 1GB)
maintenance_work_mem = (entre 1GB y2GB )
fsync = off
synchronous_commit = off
wal_level = minimal
full_page_writes = off
wal_buffers = 64MB
checkpoint_segments = 256 (o más)
max_wal_senders = 0
wal_keep_segments = 0
archive_mode = off
autovacuum = off
all activity logging settings disabled (todos los parametros de log deberán estar desactivados)

Algunos puntos a considerar:

Deberías setear el parámetro maintenance_work_mem lo más alto posible, poniendo como maximo 2GB,para construir nuevos indices. 
El limite deberá ser (RAM/(2*concurrency)), para poder mantener lago para el FS buffer. 
Esta es la razón del porque debes bajar la concurrencia si solamente tienes pocas tablas pero de gran tamaño dentro de la base e datos a restaurar
checkpoint_segments deberá ser seteado bien alto, pero requiere de espacio disponible, de 1GB por 32 segments. 
Este será el tamaño del espacio necesitado para la base de datos.
Diviértanse!