Infinite loop during postgres upgrade

J’ai rencontré ce problème lors de la dernière mise à niveau de PostgreSQL 13 vers 15.

Dans notre déploiement, notre répertoire /shared/postgres_data est monté sur un périphérique de stockage NVMe plus rapide, le déplacement a donc échoué avec un message d’erreur Device or resource busy.

Nous avons résolu ce problème en corrigeant le modèle postgres comme suit :

diff --git a/templates/postgres.template.yml b/templates/postgres.template.yml
index c24bfe6..03813c4 100644
--- a/templates/postgres.template.yml
+++ b/templates/postgres.template.yml
@@ -139,8 +139,10 @@ run:
           fi

-         mv /shared/postgres_data /shared/postgres_data_old
-         mv /shared/postgres_data_new /shared/postgres_data
+         mkdir /shared/postgres_data_old
+         mv /shared/postgres_data/* /shared/postgres_data_old
+         mv /shared/postgres_data_new/* /shared/postgres_data
+         rmdir /shared/postgres_data_new

Au lieu de tenter de manipuler le répertoire lui-même, déplacez simplement le contenu.

Veuillez envisager d’intégrer cette modification pour améliorer la fiabilité des mises à niveau de la base de données.

1 « J'aime »