PostgreSQL - Mise à jour

Mise à jour du PaaS PostgreSQL

Requête

La mise à jour d'un PaaS PostgreSQL est de la responsabilité de cegedim.cloud et peut être demandée via un ticket requête soumis depuis ITCare en précisant un créneau de disponibilité pour l'opération.

Merci de préciser si celle-ci doit être réalisée en heures non ouvrées pour planification d'une RFC.

Il est recommandé de procéder à la mise à jour de vos environnements de non production d'abord afin de pouvoir estimer le temps d'interruption généré par l'opération ainsi que de recetter vos applications dans la nouvelle version du moteur.

Déroulement

La mise à jour d'un déploiement PostgreSQL (mono-instance ou haute disponibilité) se déroule en deux étapes complètement automatisées :

  • Mise à jour du système d'exploitation préalable

    • Plusieurs mises à jour selon le scénario : Debian 9 → Debian 10 → Debian 11 -> Debian 12

  • Mise à jour du moteur PostgreSQL dans la version cible

Selon la version source et cible de PostgreSQL, il peut donc être nécessaire de migrer d'abord le système d'exploitation dans une version supportée par cegedim.cloud (voir #postgresqlupgradeinplace-os-postgresqlsupportmatrixmatrice).

Impacts

  • La durée d'une mise à jour est variable selon :

    • Les ressources cpu et ram configurées

    • La quantité de données dont les entêtes doivent être modifiés par le moteur PostgreSQL.

    • La quantité de données à réindexer suite au changement de librairie C, après une mise à jour de l'OS.

  • Le mode de sauvegarde :

    • Point-in-time Recovery (PITR) à partir de PostgreSQL 12 et supérieur.

      • Le mode de sauvegarde "dump" disparait donc au profit du "PITR" et ne reste utilisé que dans les versions de PostgreSQL inférieures à la version 12.

Temps de référence

A titre indicatif, voici les durées pour chaque étape d'une mise à jour d'une base de données pgbench de 100 Go :

  • Mise à jour de Debian : 10 minutes en moyenne

  • Réindexation PostgreSQL : 5 minutes en moyenne

  • Mise à jour de PostgreSQL : 1 minute en moyenne

  • Checksum PostgreSQL : 3 minutes en moyenne

  • Vacuuming de PostgreSQL : 1 minute en moyenne

  • Sauvegarde complète de PostgreSQL (mode PITR) : 16 minutes en moyenne

En mode PostgreSQL HA, nous devons également mettre à jour le réplica et le synchroniser avec le leader :

  • Synchronisation PostgreSQL : 4 minutes en moyenne

Durée moyenne totale pour une base de données de 100GB : 40 minutes

Matrice de support OS / PostgreSQL

Distribution Linux supportées par cegedim.cloud en fonction de la version de PostgreSQL :

Versions de PostgreSQLDistribution Linux supportée

PostgreSQL 10

Debian 9

PostgreSQL 11

Debian 10

PostgreSQL 12

Debian 10

PostgreSQL 13

Debian 11

PostgreSQL 14

Debian 11

PostgreSQL 15

Debian 11

PostgreSQL 16

Debian 12

Chemins de mises à jour PostgreSQL supportés

La mise à jour du système d'exploitation, si elle a lieu, peut nécessiter une réindexation complète (aussi prise en charge par cegedim.cloud) du fait des évolutions de la librairie C lors de la mise à jour du système d'exploitation.

Selon la quantité de données, cette opération peut prendre un certains temps.

Ci-dessous les chemins de mises à jour supportés par cegedim.cloud :

Version SourcePostgreSQL 11PostgreSQL 12PostgreSQL 13PostgreSQL 14PostgreSQL 15PostgreSQL 16

PostgreSQL 10

*

Debian 9 → Debian 10

*

Debian 9 → Debian 10

**

Debian 9 → Debian 11

**

Debian 9 → Debian 11

** Debian 9 → Debian 11

*** Debian 9 → Debian 12

PostgreSQL 11

*

Debian 9 → Debian 10

**

Debian 9 → Debian 11

**

Debian 9 → Debian 11

** Debian 9 → Debian 11

*** Debian 9 → Debian 12

PostgreSQL 12

*

Debian 10 → Debian 11

*

Debian 10 → Debian 11

* Debian 10 → Debian 11

** Debian 10 → Debian 12

PostgreSQL 13

* Debian 11 → Debian 12

PostgreSQL 14

* Debian 11 → Debian 12

PostgreSQL 15

* Debian 11 → Debian 12

* Une migration du système d'exploitation est requise.

** Une double migration du système d'exploitation est requise.

*** Une triple migration du système d'exploitation est requise.

Last updated