Administración de PostgreSQL y ajustes de Performance

Level:

Intermediate

Duration:

5 days

Fechas

ONLINE (5 days á 4 hours):

2020-07-13 till 2020-07-17
9.00 am – 1.00 pm (CET)

This online training will be held in English language.

 

Bajo demanda pueden llevarse a cabo capacitaciones y workshops a demanda en donde se disponga – cualquier parte del mundo. Contacto >>

 

REGISTRESE AL CURSO

AUDIENCIA

Este curso está dirigido principalmente hacia administradores de bases de datos (Linux / Windows / Solaris / Mac OS X) y sysadmis. Nos enfocaremos en temas relacionados con la administración de bases de datos y los ajustes de performance.

 

Contenido

DÍA 1:

Instalación de PostgreSQL

  • Instalación de PostgreSQL en Windows
  • Instalación de PostgreSQL en Linux
  • Compilar Postgresql desde el código fuente
  • Cómo realizar actualizaciones
  • Especifiaciones en Solaris/AIX
  • Crear instancias de Bases de Datos
  • Crear y eliminar Bases de Datos
  • Encoding y set de carácteres
  • Ajustes de parámetros de kernel

Arquitectura de PostgreSQL

  • Intrdoucción
  • Postmaster
  • Backends
  • Utilización de memoria compartida
  • Recolector de estadísticas
  • Subprocesos de checkpoint

Performance e índices en PostgreSQL

  • Tipos de índices en PostgreSQL
  • Comprendiendo el optimizador de PostgreSQL
  • EXPLAIN y EXPLAIN ANALYZE
  • Como leer planes de ejecución
  • Detección de queries lentas
  • Hallar índices faltantes
  • Búsqueda de texto completo
  • Índices en GIS y búsqueda geoespacial

DÍA 2:

Transacciones y locking

  • Modelo de transacciones en PostgreSQL
  • Comprendiendo el MVCC (concurrencia mediante versiones múltiples)
  • FOR UPDATE vs. FOR SHARE vs. LOCK TABLE
  • Manejo de la integridad transaccional
  • Como utilizar advisory locks
  • Comprendiendo los interbloqueos (deadlocks)
  • Utilización de los niveles de aislamiento en transacciones
  • Como detectar problemas de locking

Manejo del  almacenamiento

  • Utilización de tablespaces
  • VACUUM y VACUUM FULL
  • Comprensión de pg_squeeze
  • Como prevenir el bloating en tablas
  • Como mejorar la performance de los UPDATE
  • HOT-UPDATE y FILLFACTOR
  • PostgreSQL partitioning

Actualización de PostgreSQL

  • Implementación de pg_upgrade 

DÍA 3:

WAL: Registro transaccional en PostgreSQL

  • Como PostgreSQL escribe data al disco
  • Como mejorar la performance de checkpoints  (postgresql.conf)
  • Acelerar cargas de grandes volúmenes de datos
  • COMMIT asincrónico
  • Tablas no registradas (unlogged)

Manejo de memoria

  • Adjustando shared_buffers
  • Como elegir work_mem y maintenance_work_mem
  • Comprensión de parámetros adicionales de memoria

Replicación en PostgreSQL 

  • Configuración de streaming replication
  • Replicación sincrónica y asincrónica
  • Failover automatizado (Patroni)
  • Manejode servicios de IP
  • Resolución de conflictos de replicación
  • Como utilizar pg_rewind manualmente
  • Replicación lógica

Backups de bases de datos

  • Utilización de pg_dump y pg_restore
  • Backups binarios (pg_basebackups)
  • Point-In-Time-Recovery (PITR)
  • Herramientas para backup (pgbackrest)

DÍA 4:

Seguridad en PostgreSQL

  • Sockets TCP vs. UNIX
  • Conexiones encriptadas a la BBDD
  • Creación de usuarios y roles
  • Permisos de acceso (GRANT / REVOKE)
  • Autenticación central
  • Manejo de pg_hba.conf
  • Definición de privilegios por default
  • Cifrado de datos en PostgreSQL
  • Seguridad a nivel fila (RLS)
  • Barrera de seguridad, funciones sin efectos secundarios, etc

Monitoreo y logging

  • Manejo de archivos de registro (logs)
  • Manejo de rotación de log
  • Tablas del sistema en PostgreSQL
  • Recolección de datos de performance
  • Inspección de performance vitales
  • Control de performance de procedimientos almacenados (stored procedures)
  • Monitoreo con pgwatch2 

DÍA 5:

Queries en paralelo 

  • Configuración de queries en paralelo 
  • Como el optimizador maneja el paralelismo 
  • Consideraciones de performance

Código del lado del servidor 

  • Optimización de procedimientos almnacenados PL/pgSQL
  • Encontrar embotellamientos en código del lado del servidor
  • Monitoreo de procedimientos 
  • Implementación de extensiones en PostgreSQL

Data Wrappers externos

  • Acceso a data remota
  • Conexión a Oracle
  • Conexión to PostgreSQL
  • Migración de data hacia PostgreSQL
  • Consecuencias para el optimizador

 

REGISTRESE AL CURSO