Le 1 avril 2012 21:54, <f.dos.san...@free.fr> a écrit : > Aucune prise de pouvoir : c'est son *role* de gerer l'infrastructure et je ne > vois pas ce que l'on sacrifie en faisant un pgdump + pgrestore !
Un administrateur qui fait son travail son communiquer sur ce qu'il veut faire, ou a fait, n'est pas un bon administrateur. > "Toute bonne migration se fait par petites étapes qui passent > presque inaperçues" > Migration sur nouveau serveur et adaptation API qui vont surement passé > inaperçu > quand la base sera de nouveau en ligne. C'est un apriori. Non décrit dans le plan de migration en court. > "la base sera beaucoup plus « nettoyée » que ce qui a été annoncé" > Pas de soucis à se faire vu qu'il n'y a aucun nettoyage. Etant donné le plan d'urgence des 4 jours donnés pour faire le travail, ils n'auront guère d'autre choix que de sacrifier une partie des données en cas de problèmes, sinon ils ne redémarrent pas ! > "car justement ces administrateurs n'ont pas le temps de communiquer" > Un admin ça administre c'est pas fait pour faire de la comm. Un administrateur qui fait son travail son communiquer sur ce qu'il veut faire, ou a fait, n'est pas un bon administrateur, en tout cas pas pour ce type de projet collaboratif. D'une façon ou d'une autre, s'il n'a pas le temps de le faire, il lui faut quelqu'un à côté de lui pour surveiller tout ce qu'il fait, ou des outils (journaux, etc.) permettant de tracer toutes ses actions. > "On ne sait pas si les décisions prises sur une partie seront > réversibles et si on aura même la possibilité de repérer ce qui > manque" > Tu radotes Non. Le rique est réel. > "Car le processus de migration n'a de serveur pas été documenté" > Si là : > http://lists.openstreetmap.org/pipermail/announce/2012-March/000061.html > Technical: pg_dump (smaug) to pg_restore -j x (ramoth). Upgrading from > PostgreSQL 8.4 to PostgreSQL 9.1 On croise les doigts pour qu'il n'y ait que ça. Ayant déjà fait des migrtions de bases de données dans le passé, on a toujours rencontré des problèmes de compatibilité sur des bases de données très volumineuses. Pour passer le problème, on sacrifie une partie des données non convertibles (ou mal converties et rejetées dans le nouveaux schéma). Après reste à résoudre le problème de ces données manquantes (à condition de les avoir identifiées, conservées à part, afin de trouver une solution ultérieure pour elles, et analyser proprement pourquoi elles n'ont pas été acceptées et ce qu'on peut faire pour les corriger. Sur des données aussi volumineuses, ces données en conflit peuvent elles aussi être très volumineuses et demander plus que 4 jours pour les convertir proprement, au moins en partie, tout en sachant précisément ce qu'on ne pourra pas préserver et pourquoi, afin de pouvoir vérifier aussi l'intégrité des données qui sont passées. > "Alors je croise les doigts pour que les historiques complets (au moins > la dernière modification par un utilisateur avant celle d'un > utilisateur qui ne l'a pas acceptée ou qui l'a refusé) restent > accessibles même sur la nouvelle base." > Oui l'historique est préservé. > > Pour l'histoire de la réplication, on migre sur un PostgreSQL 9.1 justement > pour > ça. Et il n'est pas inintéressant de lire les notes de compatibilité entre PosrtgreSQL 9.1 et les anciennes versions. La page suivante en donne seulement une idée sommaire (le détail est plus compliqué si on tient compte de la plateforme matérielle ou OS) : http://www.postgresql.org/docs/9.1/static/release-9-1-3.html Ainsi que les notes de bogues existants pour ces migrations. Car il y en a ! http://www.postgresql.org/docs/9.1/static/release-9-1.html Certains outils ont des bogues jugés « non critiques » comme des fuites mémoire, qui pourtant commenceront à tout planter au milieu passé un certain volume de données traitées. D'autres choses concerne la stabilité des tris et index. La compatibilité des critères d'unicité pour les collations (changement de version des bases CLDR ou Unicode par exemple). Aussi, la compatibilité des systèmes I/O (en cas de changement de version de l'OS hôte ou de son architecture matérielle). Des contraintes liées aux processeurs pour la synchronisation multithread (certaines procédures SQL qui n'avaient à priori pas besoin de synchronisation vont en avoir besoin, ou bien il y a de nouveaux deadlocks entre sections critiques, générant des erreurs SQL et des rollbacks implicites de transactions qui passaient sans problèmes avant). Des différences aussi dans la syntaxe SQL ou le support des plugins GIS, ou dans la version du noyau de VM si le moteur supporte les traitements dans une VM intégrée au moteur, tel que Java, ou des différences de comportement et de compatibilité avec d'autres plugins en code natif (certains intégrant des mots-clés, fonctions, types SQL supplémentaires, ou de nouvelles méthodes d'indexation et de recherche et jointure), ou de nouvelles restrictions de sécurité. Espérons que le logiciel a déjà été testé sur le nouveau serveur, avec un jeu de données de test significatif qui sera effacé, avant de commencer la migration des données réelles elles-mêmes. Et que les interfaces disque/réseau n'ont pas de soucis matériel en cas de montée en charge (les tests sur un jeu de données réduit ne suffisant pas, il faut aussi normalement les compléter en important massivement des données quasi-aléatoires générées par un petit script répliquant tous les cas, y compris avec des index déséquilibrés). Mais il est notoirement très difficile de simuler l'activité réelle des requêtes venant du réseau, ainsi que celles générées par les diverses API développées (y compris celle des dumps destinés à être redistribués publiquement, qui doivent pouvoir tourner aussi sans planter ou bloquer tout le reste). Encore plus difficile à prévoir : des différences notables de performance (pas toujours meilleure dans tous les cas !) dont l'effet peut être inattendu voire même s'avérer très bloquant pour certaines requêtes (les index sont sensibles aux changements d'algorithmes internes, qui souvent ne sont faits et optimisés que pour répondre à certaines heuristiques "classiques"), à cause de nouvelles vérifications de contraintes référentielles (l'algo optimisé passe alors dans un mode de compatibilité bien plus lent que l'ancien algo seul). On note aussi des différences de volumétrie notables de certains index paginés (liés parfois à des contraintes matérielles d'alignement de données, soit pour le processeur lui-même soit pour les systèmes d'I/O). Plus jamais je ne recommanderai une migration de type Big Bang qu'on ne sait pas mener en quelques minutes d'installation. plusieurs jours c'est beaucoup trop, surtout s'il y a de nombreux utilisateurs qui en dépendent (que ces utilisateurs payent ou soient payés ou non pour les utiliser, et surtout si ces utilisateurs sont externes et hors de contrôle direct de celui qui commande la migration de l'application). Car je sais que de telles migration peuvent prendre jusqueà 10 fois plus de temps que prévu.: une migration prévue de quelques minutes qui prendrait la nuit, ça passe encore, après ça, on y risque sa santé ou son job à la roulette russe, et la survie de l'organisation qui l'a demandée, même si elle a pris certaines assurances ! Et même quand on commence une telle migration Big Bang (supposée durer quelques minutes), il doit toujours être possible de l'annuler en cours et continuer en s'en passant (pour la reprendre plus tard quand on pourra si jamais on la recommence après avoir identifié la source des problèmes et les moyens de le contourner), car on a toujours des surprises inattendues (pas toujours positives) sur les performances réelles du processus. Ce qui veut dire que d'autres prejets ne devraient pas en dépendre directement ou devraient prévoir une alternative possible en cas de défaut. De tels plans de repli immédiat doivent être prêts avant même de commencer la migration. 4 jours de travail prévus (même seulement pour surveiller comment ça se passe) c'est beaucoup, et les administrateurs rentrent aussi chez eux et ont besoin de dormir s'il veulent éviter des erreurs de manipulation (ils ne seront pas toujours là dans les 4 jours, ils peuvent se relayer mais oublier de se transmettre des infos sur ce qui a déjà été fait ou reste à faire, même avec le meilleur plan préparé, d'une façon ou d'une autre ils faut qu'ils se débrouillent avec leurs propres moyens et prennent seuls des décisions immédiates et pas toujours notées). _______________________________________________ Talk-fr mailing list Talk-fr@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-fr