web-dev-qa-db-fra.com

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

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 a des 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.

9
Prabhat

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.

1
Lohit Gupta