PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Mise à jour de Slony-I 2.0.x vers la dernière version 2.1.x

Slony-1 2.1 a de très bons correctifs et de nouvelles fonctionnalités comme l'ajout de tables en vrac, l'amélioration de WAIT FOR avec Merge Set/Move Set, la prise en charge de TRUNCATE sur les tables répliquées et bien d'autres. J'utilise Slony-I 2.0.7, alors j'ai pensé à le mettre à niveau vers la dernière version. La mise à niveau de Slony-I est très simple et peut être réalisée en quelques étapes. Ma procédure de mise à jour suppose qu'il y a déjà une configuration Maître/Esclave avec Slony 2.0.7.

Plan de sauvegarde :
1. Sauvegardez le schéma slony existant (_slonyschema) du maître/esclave
2. Sauvegardez les anciens binaires Slony
3. Tout sauvegarder crée initialement des fichiers de configuration slony.

Procédure de mise à niveau :
1. Arrêtez tous les processus slon en cours d'exécution sur tous les nœuds.
2. Installez la nouvelle version des binaires Slony 2.1.x.
3. Exécutez le script de mise à niveau SLONIK
4. Démarrez slony avec de nouveaux binaires sur tous les nœuds.

Lien :http://slony.info/documentation/2.1/slonyupgrade.html

Version actuelle de PostgreSQL &Slony :

repdb=# select substr(version(),1,26) as "PostgreSQL-Version",_myrep.slonyversion();
PostgreSQL- version | slonyversion
----------------------------+----------------------
PostgreSQL 9.1.3 sur x86_64 | 2.0.7
(1 ligne)

Installer/Configurer la dernière version de la source Slony-I 2.1.x

 wget http://main.slony.info/downloads/2.0/source/slony1-2.1.0.tar.bz2
./configure --prefix=/opt/PostgreSQL/9.1/bin -- with-pgconfigdir=/opt/PostgreSQL/9.1/bin
make
make install

Après l'installation, vous pouvez trouver trois exécutables slon, slonik &slon_logshipper sous "/opt/PostgreSQL /9.1/bin/bin".

-bash-4.1$ ./slon -v
slon version 2.1.0

Script de mise à niveau :

## Script de mise à niveau

cluster name =myrep ;
node 1 admin conninfo='host=localhost dbname=postgres user=postgres port=5432' ;
node 2 admin conninfo='host=localhost dbname=repdb user=postgres port=5433';
FONCTIONS DE MISE À JOUR ( ID =1 );
FONCTIONS DE MISE À JOUR ( ID =2 );

Remarque :Mettez à jour tous les nœuds avec UPDATE FUNCTIONS. J'ai deux nœuds maître (5432) et esclave (5433).

Exécuter le script :

-bash-4.1$ slonik upgrade_207_201.slonik

Démarrez le processus slony avec de nouveaux fichiers binaires et vérifiez les modifications.

postgres=# select substr(version(),1,26) as "PostgreSQL-Version",_myrep.slonyversion();
PostgreSQL-Version | slonyversion
----------------------------+----------------------
PostgreSQL 9.1.3 sur x86_64 | 2.1.0
(1 ligne)

Vous pouvez voir que ma version slony a été mise à jour vers la dernière version. Vous pouvez également effectuer un bilan de santé sur le schéma avec une fonction fournie par Slony-I dans leur documentation. La fonction Health Check doit renvoyer TRUE, sinon vos catalogues PG et Slony sont endommagés.
Lien de la fonction :http://slony.info/documentation/2.1/function.slon-node-health-check.html

postgres=# select node_health_check();
node_health_check
-------------------
t
(1 rangée)