Mise à niveau de PostgreSQL 9.2 - 9.6 avec aucun temps d'arrêt


9

Je dois passer de PostgreSQL 9.2 à 9.6. Voici les défis auxquels je suis confronté:

  1. Étant donné que nous avons la configuration de la réplication en streaming, et PostgreSQL ne prend pas en charge la mise à niveau de la version inférieure à la version supérieure en mode de réplication en streaming, lorsque je mets à niveau le maître, je dois reconstruire les esclaves et cela prend 3 heures. Je n'ai pas ce temps à perdre. À tout moment, nous avons besoin d'un esclave et d'un maître disponibles. Existe-t-il un autre moyen de mettre à niveau sans avoir à reconstruire les esclaves, en utilisant la réplication en streaming?

  2. Pour créer une réplication logique, nous avons pensé à utiliser slony, mais slony a certaines limites en ce qu'il ne se réplique pas automatiquement:

    • Modifications apportées aux gros objets (BLOBS)
    • Modifications apportées par les commandes DDL
    • Modifications des utilisateurs et des rôles
      ... et notre application dispose de commandes de création continues. Nous ne pouvons donc pas utiliser slony.

Veuillez suggérer quelque chose pour éviter la reconstruction de l'esclave et effectuer la mise à niveau avec un temps d'arrêt minimal et un maître et un esclave prêts.


3
Les mêmes problèmes qui vous empêchent d'utiliser Slony vous empêcheront d'utiliser d'autres outils tels que Bucardo, Londiste, pglogical, etc. Vous devrez adapter l'application, afin qu'elle ne fasse pas les créations continues. Et oui, les LOB seront un problème.
Craig Ringer

Réponses:


1

La mise à niveau d'une base de données nécessitera des temps d'arrêt sur vos serveurs. Pour minimiser les temps d'arrêt, je vous suggère d'installer la nouvelle version sur un nouveau serveur, de créer une configuration de réplication sur celui-ci et de vider toutes les données de l'ancienne instance ici, et de changer le pointage du serveur afin que l'application pointe vers un nouveau serveur pour se connecter à la base de données.


2
Eh bien, nous avons récemment mis à niveau une base de données 9 To de 9.3 à 9.6, en utilisant pg_upgrade. Cela a pris quelques minutes (sur le maître et l'esclave combinés), tandis que prendre un vidage seul nécessite plus de 3 heures.
dezso

Mais le vidage n'a pas besoin de temps d'arrêt.
Lohit Gupta

Absolument, ce que je voulais dire (et j'ai oublié d'ajouter) était que la restauration de la sauvegarde prend plus ou moins le même temps que la prise, ce qui signifie quelques temps d'arrêt dans notre cas.
dezso

Merci pour la suggestion, donc ce que je faisais est de mettre à niveau le maître et de reconstruire l'esclave, est-ce la bonne procédure
Prabhat

1
L'étape 2 ne fonctionnera pas. Le format WAL n'est pas compatible entre les principales versions, d'où la nécessité pg_upgrade.
dezso
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.