Linux, Base de données Postgresql, développement, Internet, emailing et déliverabilité.

Aller au contenu | Aller au menu | Aller à la recherche

Changement de version majeure de PostgreSQL sous Debian / Ubuntu

Chaque release majeure de PostgreSQL (passage de la version 9.6 à la 10 par exemple) nécessite d'effectuer un dump et un restore de la base de données. Le travail n'est pas si fastidieux, mais nécessite quelques manipulations. Debian propose une migration plus simplifiée, destinées, à mon avis, aux bases de données de petites tailles, pour une migration rapide. Si vous travaillez sur des bases de plusieurs Go, cela fonctionnera, bien sur, mais l'interruption de service pourra être longue. Il existe d'autres moyens pour faire ce genre de chose avec des serveurs de réplication par exemple. Je vais donc vous décrire le process simple à mettre en place.

Première étape installer la dernière release majeure de PostgreSQL qui ne sera pas forcément intégrée dans votre distribution. Pour cela suivez la procédure décrite sur le site de PostgreSQL.

Vous installez donc par exemple la dernière version de PostgreSQL actuelle. Nous admettrons que vous passez comme c'est le cas actuellement de la Jessie de la verison 9.0 à la version 10 de PostgreSQL. Vous aurez donc la version 9 et la version 10 d'instalées sur votre machine.

Attention, il est toujours préférable d'effectuer un pg_dumpall de votre base de données que vous conservez précieusement avant d'effectuer cette opération. Pensez également à couper les applications ou services qui accèdent à votre base de données avant de faire la migration.

On arrête PostgreSQL :

service postgresql stop

On nettoye la nouvelle version du cluster postgreSQL pour être certain qu'il n'y a rien dedans, elle est neuve, normalement c'est toujours le cas :

pg_dropcluster --stop 10 main

On effectue la migration des données de la versino 9.0 vers la version la plus élevée, la 10 dans notre exemple :

pg_upgradecluster -m upgrade 9.0 main

On arrête la version précédente de PostreSQL :

pg_dropcluster 9.0 main --stop

On efface complètement la version 9.0 et ses données, attention ici vous pouvez tout perdre, donc un pg_dumpall ne fera jamais de mal !

apt-get autoremove --purge postgresql-9.0

Puis on redémarre PostgreSQL, sur la nouvelle version avec les données migrées :

service postgresql start

Voilà, le tour est joué. Simple comme Debian. Naturellement si vous utilisez des versions différentes de celle présentées dans cet exemple, il suffit de remplacer 9.0 par votre version courante.

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : https://www.footcow.com/index.php/trackback/110

Fil des commentaires de ce billet