Durant mon stage, je dois étudier les possibilités de migration de bases sybase vers PostgreSQL.
Le but est de migrer tout vers un serveur de test, de voir si la migration s'est bien passée puis de benchmarker tout ça pour voir si ça tient la charge.
Jusque là ça parrait simple. Pour exporter les table, il n'y a pas beaucoup de modifs à faire, pour les données non plus (sauf peut être pour les binry). Mais le gros "problème" de ces bases c'est le très nombre de procédures (4359 pour être exacte). Même si elles ne font pas toute 50 lignes, je penses qu'une migration "à la main" est impensable.
J'aurais donc aimé savoir si quelqu'un connaissait une solution (par exemple un script) même si celle ci n'est pas complète, elle pourrait déjà constituer une base.
PS : si vous avec des conseils pour la migration, ils sont aussi les bienvenus.
# Re: Migration Sybase --> PostgreSQL
Posté par Sébastien Lardière (site web personnel) . Évalué à 1.
[^] # Re: Migration Sybase --> PostgreSQL
Posté par Virginie . Évalué à 1.
Donc l'expérience d'une migration à partir d'un MS SQL pourrait m'être utile (pour l'instant, j'ai trouvé des docs avec des conseils mais ça reste assez vague)
# Re: Migration Sybase --> PostgreSQL
Posté par philz . Évalué à 1.
Est ce que vous avez les sources ? La capacité à les recompiler ? Comment sont construitent les requêtes ?
Le "SQL standard" est un mythe : il faut lister l'ensemble des requêtes pour voir quelles sont celles qui font des trucs spécifiques Sybase (par exemple, tu parles de bases au pluriel. Si tu essayes de faire des jointures entre tables de plusieurs bases, tu es mal avec Postgres).
Ensuite, pour les procédures stockées, il faut regrouper celles qui font des trucs similaires, en réécrire quelques unes à la main et ensuite écrire une moulinette (en perl par exemple) pour construire les autres sur le même modèle.
A moins que la base soit hyper clean (mais avec 4359 procédures, ça me parait peu probable), c'est un travail énorme.
[^] # Re: Migration Sybase --> PostgreSQL
Posté par Virginie . Évalué à 1.
Pour l'instant, il faut déja savoir si cette migration est possible : parceque s'il faut plus 2 ans à temps plein pour réécrire les procédures, ça ne passera pas.
C'est justement l'interret que je sois là en tant que stagiaire (même si au final mon boulot permet de dire que ça n'est pas possible, ça n'aura pas empéché le service de tourner).
Beaucoup des applis utilisent des procédures stockées pour leur renvoyer le résultat de requètes (c'est d'ailleur pour ça qu'il y en a tant).
Par contre l'avantage c'est qu'il y a très peu de triggers (moins de 300), pas de contraintes sur les tables et pas de gestion poussée des droits.
Donc de toute manière, je vais essayer de faire un script de migration automatique de procédure (même s'il y en a qques une a faire migrer manuellement car elle sont trop complexes)... Mais c'est vrai qu'avec une base de départ, ça serait plus facile.
# Re: Migration Sybase --> PostgreSQL
Posté par kesako . Évalué à 1.
c'est monstrueux !
Ici on a des bases qui doivent gerer 5 Millions de comptes et on a au grand maxi 500 procedures pour une bonne trentaine de services divers (10 a 15 procs par service environ).
Je ne sais pas où tu es mais il me semble qu'avant tout changement, si vous voulez ce changement, il y a un travail de rationnalisation a faire , de netoyage des doublons , de suppression des procs qui ne sont plus utilisées.
Si vous envisagez de passer a postgres il faudrait definir un service typique a assurer avec une trentaine de procedures qui servirait de premier banc d'essai de portage.
[^] # Re: Migration Sybase --> PostgreSQL
Posté par Virginie . Évalué à 1.
Bien sûr, je vais commencer par convertir uniquement une partie des procédures. Mais le problème est que je doit faire une étude précise pour savoir si la migration totale est réalisable.
En plus, comme cette base est vraiment centrale pour le système d'information, il n'y aura pas de migration partielle (pour la prod) ce sera soit tout soit rien.
Enfin, même si certaines procédures ne sont plus utilisées et devraient être supprimée, je penses que mon chef ne voudra pas "dépenser" un grand nombre d'heure d'une personne qui conait la base à bosser sur ces suppressions avec moi avant d'être sur que la migration peut se faire.
# demande d'aide sur les migrations
Posté par LoKaneda . Évalué à 1.
[^] # Re: demande d'aide sur les migrations
Posté par Virginie . Évalué à 1.
Je suis donc en train de créer mon propre script Perl de manière empirique :
Pour les données, je n'ai pas eu trop de problème (enfin pour l'instant) :
lors de la réecriture du script SQL de création des tables, pour chaque table, je crée une commande bcp (logiciel d'extraction de données) puis je modifie un peu le fichier (les formats de date/heure ne sont pas compatibles) et je les importe directement dans postgreSQL.
Je suis en stage à la cci de haute-savoie jusqu'au 25 juin.
Je penses qu'on pourait se contacter par mail pour affiner un peu plus et éventuellement travailler en commun pour avancer plus rapidement.
[^] # Re: demande d'aide sur les migrations
Posté par Virginie . Évalué à 1.
virginie.quesnay(AT)free.fr
[^] # SQLserver -> postgresql
Posté par LoKaneda . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.