IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration PostgreSQL Discussion :

Faire un upgrade vers la version 12


Sujet :

Administration PostgreSQL

  1. #1
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 382
    Points : 9 742
    Points
    9 742
    Par défaut Faire un upgrade vers la version 12
    Et bientôt la version 13 ?

    Bonjour à toutes et tous,

    tout est dans le titre.

    J'aimerais upgrader mon serveur Postgres de la version 11 vers la version 12 sans que ça perturbe les accès aux bases de données.

    Comment est-ce que l'on fait ça ?

    Merci d'avance

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  2. #2
    Membre chevronné Avatar de gabriel21
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2007
    Messages : 507
    Points : 1 832
    Points
    1 832
    Par défaut
    Voila la méthode que j'utilise depuis un certains nombre d'années et sans problème.
    Elle demande l'arrêt des bases pendant la mise à jour. La durée de l'arrêt dépend de la taille des bases.
    Bien entendu, je fais toujours une sauvegarde avant. Cela ne couvre pas l'installation. La variable nv_nb_version correspond à la version de la nouvelle installation.
    Lister les bases en cours de fonctionnement
    pg_lsclusters
    Arrêt de la base de la nouvelle version de postgresql
    pg_dropcluster nv_nb_version main --stop
    Arrêt de postgresql
    systemctl stop postgresql
    Mise à jour
    pg_upgradecluster -m upgrade an_nb_version main
    Relancer postgresql
    systemctl start postgresql
    Lister les bases en cours de fonctionnement
    pg_lsclusters
    "Les cons, ça ose tout. C'est même à ça qu'on les reconnaît." Michel Audiard - Les tontons flingueurs
    Site Web : https://www.admin-libre.fr

  3. #3
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 382
    Points : 9 742
    Points
    9 742
    Par défaut
    Merci de ta réponse,

    Je suppose que "an_nb_version" représente l'ancienne version ...

    Une question subsidiaire, lors de l'installation de la nouvelle version, quel port indiquer ? Le même que pour la version précédente ? Et l'ancienne version doit être désinstallée une fois l'upgrade effectué ?

    Encore merci

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  4. #4
    Membre chevronné Avatar de gabriel21
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2007
    Messages : 507
    Points : 1 832
    Points
    1 832
    Par défaut
    Citation Envoyé par Jon Shannow Voir le message
    Je suppose que "an_nb_version" représente l'ancienne version ...
    en effet
    Citation Envoyé par Jon Shannow Voir le message
    Une question subsidiaire, lors de l'installation de la nouvelle version, quel port indiquer ? Le même que pour la version précédente ? Et l'ancienne version doit être désinstallée une fois l'upgrade effectué ?
    Personnellement, je ne personnalise pas le port, toute mes bases sont dans la base main. Par défaut, quand apt (mes serveurs sont sous Debian ou Ubuntu) installe la nouvelle version, il cré une nouvelle base et lui attribut un nouveau port. D'où sa suppression en début. pg_dropcluster supprime la base. L'option stop lui ordonne de l'arrêter avant. Du coup quand tu migres la base, elle garde sa configuration au niveau des ports. La désinstallation n'est pas en soit obligatoire. Tu peux avoir plusieurs versions de PostgreSQL en fonctionnement. Seul la base doit être de l'un ou l'autre.
    "Les cons, ça ose tout. C'est même à ça qu'on les reconnaît." Michel Audiard - Les tontons flingueurs
    Site Web : https://www.admin-libre.fr

  5. #5
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 382
    Points : 9 742
    Points
    9 742
    Par défaut
    OK,
    Merci pour ces explications,
    Je m'y colle demain.
    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  6. #6
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Citation Envoyé par Jon Shannow Voir le message
    J'aimerais upgrader mon serveur Postgres de la version 11 vers la version 12 sans que ça perturbe les accès aux bases de données.
    La solution qui vous a été proposée est basée sur pg_upgrade, qui diminue le temps d'indisponibilité par rapport à la méthode classique s'appuyant sur une sauvegarde de l'ancienne version et restauration sur la nouvelle version.
    Mais le temps d'indisponibilité n'est pas nul et dépend pour beaucoup de la volumétrie de l'instance que vous migrez. En effet, les deux versions doivent être coupées pendant la migration des fichiers de données.

    Si vous voulez diminuer drastiquement le temps d'indisponibilité, comme vous voulez passer de la v11 à la v12, vous pouvez utiliser le mécanisme de réplication logique apparu avec la v10.
    Pour ça, vous installez la v12, vous répliquez les bases de la v11 vers la v12 (pendant ce temps, vous pouvez continuer de travailler normalement sur la v11, à la fois en lecture et en écriture), et vous coupez les accès juste le temps de faire la bascule entre v11 et v12.

    Ça nécessite quelques opérations supplémentaires d'administration, mais ça fonctionne très bien.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  7. #7
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 382
    Points : 9 742
    Points
    9 742
    Par défaut
    Merci de cette seconde solution.

    Pour le moment, je dirais que couper le service ne me gène pas. Mais à l'avenir, cela pourrait être très intéressant.

    Comment fait-on une réplication logique ?

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  8. #8
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Il faut au préalable prendre quelques précautions. Par exemple, toutes les tables doivent avoir une clé primaire (mais c'est, bien sûr, toujours le cas ).
    Ensuite, il faut modifier le paramètre WAL_LEVEL du serveur à répliquer, pour le passer à la valeur logical, si ce n'est pas déjà le cas (et redémarrer l'instance pour prendre en compte le changement).

    Ensuite, on recopie la structure de la (ou des) base(s) à répliquer (avec l'option -s de pg_dump pour ne sauvegarder que la structure, sauvegarde qu'on restaure sur le serveur secondaire).
    Après, la réplication logique fonctionne sur un système de publication côté serveur principale et abonnement sur le serveur secondaire. Tout est bien décrit dans la documentation de PostgreSQL et c'est un mécanisme simple à mettre en œuvre.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  9. #9
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 382
    Points : 9 742
    Points
    9 742
    Par défaut
    Merci de toutes ces explications.

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  10. #10
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 382
    Points : 9 742
    Points
    9 742
    Par défaut
    Citation Envoyé par gabriel21 Voir le message
    Voila la méthode que j'utilise depuis un certains nombre d'années et sans problème...
    Heu, j'ai un souci.

    Je ne trouve pas les commandes pg_lsclusters, pg_dropcluster, systemctl et pg_upgradecluster.

    J'aurais peut-être du préciser que le serveur est sous Windows.

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  11. #11
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Effectivement...
    Ces commandes ne sont disponibles que sous Linux, et encore pour les distributions basées sur Debian.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  12. #12
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 382
    Points : 9 742
    Points
    9 742
    Par défaut
    Merci à vous deux.

    Je vais regarder la réplication logique pour voir.

    Sinon, sous Windows il y a pg_upgrade. Je vais regarder tout ça.

    Encore merci

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  13. #13
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Il y a une procédure pour pg_upgrade sous Windows décrite dans ce billet blog : https://www.arencambre.com/2014/12/2...-misses-a-lot/
    Pas testé (Postgres, c'est mieux sous Linux ), mais la commande ressemble à celle lancée sous Linux (il manque peut-être les options -p et -P pour indiquer les ports de l'ancienne et de la nouvelle instance).

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  14. #14
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 382
    Points : 9 742
    Points
    9 742
    Par défaut
    Merci pour ce lien
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/12/2009, 01h12
  2. [Continuum] Upgrade de la version beta3 vers beta4
    Par hel22 dans le forum Intégration Continue
    Réponses: 8
    Dernier message: 31/10/2007, 11h55
  3. Faire Response.redirect vers un signet d'une page
    Par requiemforadream dans le forum ASP
    Réponses: 3
    Dernier message: 22/04/2005, 14h59
  4. Faire un raccoucis vers une application sous wine
    Par zamanika dans le forum Applications et environnements graphiques
    Réponses: 7
    Dernier message: 01/10/2004, 14h10
  5. [Tomcat] migration vers une version plus récente
    Par butcher dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 31/10/2003, 21h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo