Tutorial

PostgreSQL en fin de vida: planificar la actualización mayor

Bases de datos4 min de lectura6 pasos

PostgreSQL publica una versión mayor al año y corrige cada una durante cinco años. Pasado ese plazo, la base de datos sigue funcionando exactamente igual que la víspera, simplemente sin parches: en un VPS, ningún mensaje se lo advierte. Esta guía explica cómo leer su versión, qué cambia realmente el fin del soporte y cómo planificar la actualización sin perder datos.

Contenido· Una versión mayor al año, cinco años de parches1/6
  1. 01Una versión mayor al año, cinco años de parches
  2. 02Lo que el fin del soporte cambia realmente
  3. 03Saber en qué versión está funcionando
  4. 04Planificar la actualización de versión
  5. 05pg_dump/restore o pg_upgrade: cómo decidir
  6. 06El verdadero control es la restauración

Una versión mayor al año, cinco años de parches

PostgreSQL publica una versión mayor aproximadamente una vez al año y la mantiene cinco años. Pasado ese plazo, aparece una última versión menor y la rama entra en fin de vida, siempre con la entrega de noviembre: PostgreSQL 13 se detuvo el 13 de noviembre de 2025 y PostgreSQL 14 se detendrá el 12 de noviembre de 2026. Las ramas todavía mantenidas van de la 14 a la 18; la 18 está disponible desde el 25 de septiembre de 2025, y la 19 está anunciada para septiembre de 2026.

Lo que el fin del soporte cambia realmente

  • Ningún parche más — una vulnerabilidad publicada después del fin de vida no se corregirá en su rama: el código se queda tal cual, indefinidamente.
  • Las extensiones se descuelganPostGIS, pgvector o TimescaleDB dejan de publicar paquetes para una rama muerta, y la siguiente necesidad se vuelve bloqueante.
  • Los paquetes de la distribución desaparecen — se acaban las actualizaciones por apt, y una reinstalación del VPS no recupera necesariamente la misma versión.
  • El cumplimiento normativo lo detecta — una auditoría, un cuestionario de cliente o un contrato de seguro señalan un componente sin mantenimiento mucho antes de que ocurra un incidente.
  • Los clientes y los controladores avanzan — las herramientas recientes (psql, pg_dump, drivers de aplicación) dan por supuestas versiones de servidor mantenidas; la brecha acaba produciendo errores difíciles de leer.

Saber en qué versión está funcionando

El servidor es la autoridad, no su archivo de despliegue. Conéctese y ejecute SELECT version();, o SHOW server_version; para obtener el valor desnudo. En Debian y Ubuntu, pg_lsclusters enumera cada clúster con su versión, su puerto y su estado, incluidos los olvidados en una actualización anterior. En contenedor, la etiqueta de imagen induce a error: sustituir postgres:16 por una etiqueta más reciente no convierte los archivos ya escritos en el volumen.

Planificar la actualización de versión

  1. Hacer la copia de seguridad y luego verificarla

    Exporte los roles y los parámetros globales con pg_dumpall --globals-only, y después cada base de datos con pg_dump -Fc. Una copia de seguridad solo cuenta si se ha restaurado: vuelva a aplicarla en un clúster desechable y compare los recuentos de filas de sus tablas principales.

  2. Elegir entre exportación lógica y conversión in situ

    pg_dump seguido de pg_restore reconstruye todo en un clúster nuevo: sencillo, reversible, pero el tiempo de parada sigue al volumen. pg_upgrade convierte el catálogo del clúster existente en unos minutos, siempre que instale los binarios de ambas versiones uno junto al otro.

  3. Ensayar la migración sobre una copia

    No pruebe en la máquina que sirve el tráfico. Levante un segundo VPS, restaure allí la copia de seguridad y ejecute pg_upgrade --check: valida la compatibilidad sin escribir nada y enumera los ajustes manuales previstos. Cronometre la operación: esa medida fija su ventana.

  4. Conmutar cortando las escrituras

    Detenga la aplicación y luego el servidor de forma limpia. Lance la conversión o la restauración, arranque sobre el clúster nuevo y devuelva el tráfico tras un primer control. Elija el modo con conocimiento de causa: --link y --swap aceleran la conmutación, pero dejan el clúster anterior inutilizable.

  5. Controlar después de la conmutación

    Confirme la versión con SELECT version();, actualice sus extensiones con ALTER EXTENSION ... UPDATE y regenere las estadísticas del optimizador con vacuumdb --all --analyze-in-stages. No elimine el directorio de datos anterior hasta después de varios días de explotación real, y hágalo con el script que indica pg_upgrade.

  6. Reanudar un ciclo de copias de seguridad completo

    Sus archivos anteriores a la conmutación describen un clúster que ya no existe. Vuelva a hacer una copia de seguridad completa sobre la nueva versión y pruebe su restauración: nuestra guía sobre copias de seguridad cifradas con restic cubre la rotación y el control de integridad. En un VPS Cloud, ese calendario sigue siendo suyo.

pg_dump/restore o pg_upgrade: cómo decidir

Desplace la tabla

Criteriopg_dump / pg_restorepg_upgrade
PrincipioExportación lógica y después reimportación en un clúster nuevoConversión del catálogo del clúster existente
Tiempo de paradaProporcional al volumen de datosUnos minutos, poco sensible al volumen en modo `--link` o `--swap`
Espacio en discoSitio para el archivo y después para los dos clústeres`--link` no vuelve a copiar los archivos, pero impone el mismo sistema de archivos
Vuelta atrásEl clúster anterior queda intacto y el archivo sigue siendo restaurableTras `--link` o `--swap`, el clúster anterior ya no puede arrancarse
Control previoEl fallo se descubre tarde, durante la importación`pg_upgrade --check` valida antes de cualquier escritura
Estadísticas del optimizadorHay que reconstruirlas por completo tras la importaciónTransferidas en gran parte desde PostgreSQL 18; antes, hay que reconstruirlas
Paralelismo`pg_dump -j` y `pg_restore -j``--jobs` para tratar varias bases de datos en paralelo
Terreno predilectoVolúmenes modestos, cambio de máquina, reorganizaciónGrandes volúmenes, actualización in situ, ventana corta

El verdadero control es la restauración

Una rama en fin de vida no emite ninguna alerta, y una copia de seguridad nunca restaurada tampoco. Antes de la conmutación, liste el archivo con pg_restore --list, restáurelo por completo en una máquina aparte y compare los recuentos de filas de sus tablas sensibles. Anote después la fecha de fin de vida de su rama en la agenda que lleva sus renovaciones: un vencimiento silencioso se convierte en una tarea planificada.

Una base de datos al día en un VPS que usted controla

En un VPS Cloud de ServOrbit, usted elige la versión mayor de PostgreSQL, actualiza cuando su ventana lo permite y conserva el clúster anterior el tiempo necesario para validar. Acceso root completo, ninguna versión impuesta.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva