Stretch
Nous allons voir comment mettre à jour votre base de données postgresql après l’update de Jessie à Stretch.
La version de jessie était 9.4. La version pour Stretch est 9.6.
Les commandes suivantes sont exécutées en root. Vous pouvez bien sûr utiliser sudo.
Lister les clusters postgresql installés sur votre machine:
# pg_lsclusters
Si votre installation de postgresql date de Jessie vous aurez un truc comme cela.
Ver Cluster Port Status Owner Data directory Log file
9.4 main 5432 online postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log
9.6 main 5433 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
Si vous n’avez pas fait la mise à jour de votre cluster après la mise à jour de wheezy vers jessie. Vous devriez voir un truc dans ce style la.
Ver Cluster Port Status Owner Data directory Log file
9.1 main 5432 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
9.4 main 5433 online postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log
9.6 main 5434 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
Le port par défaut de postgresql est le 5432. Le cluster ayant 5432 comme port est votre cluster courant.
Normalement Debian installe la nouvelle version de postgresql à la mise à jour de version et il crée un nouveau cluster dans la foulée.
Si ce n’est pas le cas, vous pouvez l’installer par cette ligne:
# apt-get install postgresql-9.6
Supprimer le cluster postgresql 9.6 créé
Installer une nouvelle version de postgresql sur debian crée un cluster principal (main) qui empêche la commande pg_upgradecluster de fonctionner.
Il faut donc supprimer cette instance dans le but d’obtenir une base de données propre.
Faite très attention, ne vous tromper pas dans la commande.
Ne supprimer surtout pas votre vieille base de données. C’est elle qui contient toutes vos données. 🙂
Nous détruisons la nouvelle; la vide.
# pg_dropcluster --stop 9.6 main
Mettre à jour la vieille base vers le nouveau format
La syntaxe est la suivante:
# pg_upgradecluster -v NouvelleVersion AncienneVersion main
La fonction va créer un nouvelle base main dans le format NouvelleVersion.
Pour ensuite, copier les données de AncienneVersion vers NouvelleVersion.
Cela prendra un peu de temps.
# pg_upgradecluster -v 9.6 9.4 main
Stopping old cluster...
Notice: extra pg_ctl/postgres options given, bypassing systemctl for stop operation
Disabling connections to the old cluster during upgrade...
Restarting old cluster with restricted connections...
Redirecting start request to systemctl
Creating new cluster 9.6/main ...
config /etc/postgresql/9.6/main
data /var/lib/postgresql/9.6/main
locale en_US.UTF-8
socket /var/run/postgresql
port 5434
Disabling connections to the new cluster during upgrade...
Redirecting start request to systemctl
Roles, databases, schemas, ACLs...
Fixing hardcoded library paths for stored procedures...
Upgrading database pbf...
Analyzing database pbf...
Fixing hardcoded library paths for stored procedures...
Upgrading database template1...
Analyzing database template1...
Fixing hardcoded library paths for stored procedures...
Upgrading database livres...
Analyzing database livres...
Fixing hardcoded library paths for stored procedures...
Upgrading database cmdline...
Analyzing database cmdline...
Fixing hardcoded library paths for stored procedures...
Upgrading database systemtest...
Analyzing database systemtest...
Fixing hardcoded library paths for stored procedures...
Upgrading database creatures...
Analyzing database creatures...
Fixing hardcoded library paths for stored procedures...
Upgrading database articles...
Analyzing database articles...
Fixing hardcoded library paths for stored procedures...
Upgrading database postgres...
Analyzing database postgres...
Fixing hardcoded library paths for stored procedures...
Upgrading database campagnes...
Analyzing database campagnes...
Fixing hardcoded library paths for stored procedures...
Upgrading database animations...
Analyzing database animations...
Fixing hardcoded library paths for stored procedures...
Upgrading database asso_member...
Analyzing database asso_member...
Re-enabling connections to the old cluster...
Re-enabling connections to the new cluster...
Copying old configuration files...
Copying old start.conf...
Copying old pg_ctl.conf...
Copying old server.crt...
Copying old server.key...
Stopping target cluster...
Redirecting stop request to systemctl
Stopping old cluster...
Redirecting stop request to systemctl
Disabling automatic startup of old cluster...
Configuring old cluster to use a different port (5434)...
Starting target cluster on the original port...
Redirecting start request to systemctl
Success. Please check that the upgraded cluster works. If it does,
you can remove the old cluster with
pg_dropcluster 9.4 main
Supprimer l’ancienne version
Si la copie s’est bien passée. Vous pouvez supprimer l’ancienne version. Elle est maintenant entièrement copié dans le cluster main 9.6.
# pg_dropcluster 9.4 main
Related