Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Migration SGBD Discussion :

Migration Sybase vers SGBD Open Source


Sujet :

Migration SGBD

  1. #1
    Membre à l'essai
    Migration Sybase vers SGBD Open Source
    Bonjour tout le monde,

    Je suis actuellement en stage en entreprise et mon sujet est la migration d'une base de données Sybase vers un SGBD Open Source. Donc j'ai épluché les principaux SGBD Open Source à savoir MySQL, PostgreSQL, Ingres et Firebird. Le SGBD d'origine dispose de plus de 300 procédures stockées, des index, des triggers et j'en passe. Une procédure peut avoir jusqu'à 300 paramètres. DOnc je vous rassure ce n'est pas moi qui est fait ca mdr mais le problème et que maintenant je dois migrer cette base de donnée, vous comprenez donc mon désarroi. Il semblerait qu'aucun SGBD soit susceptible de supporter cette migration pour ces raisons la :

    PostgreSQL 8.3.7 :

    - Les fonctions stockées prennent au maximum 100 paramètres en entrée.
    - Pas d'instruction GOTO.
    - Pas de synonymes.
    - On ne peut pas assigner de valeur par défaut aux paramètres d'une fonction.

    MySQL 5.1 :

    - Pas de gestion des rôles.
    - Ne gère pas les curseurs dynamiques dans les procédures stockées.
    - Pas d'instruction GOTO.
    - Pas de synonymes.

    Ingres 9.2 :

    - Pas d'instruction GOTO et IF EXISTS.
    - Il n'est pas possible de déclarer des curseurs dans les procédures stockées.
    - Pas de TRUNCATE.
    - Pas de SQL dynamique possible dans les procédures stockées.

    Firebird 2.1 :

    - Création des utilisateurs non disponible en SQL seulement en ligne de commande.
    - Pas d'instruction GOTO et IF EXISTS.
    - Pas de synonymes.
    - Pas de type booléen.
    - Pas de FOR EACH ROW dans les triggers.
    - Pas de TRUNCATE.
    - Pas de curseur dynamique possible dans les procédures stockées.

    Comme vous pouvez le voir certaines fonctionnalités peuvent être esquiver facilement en utilisant des astuces cependant pour remplacer l'instruction GOTO par exemple ou encore permettre les curseurs dynamiques, c'est à se tirer une balle. Je me suis donc dis, je vais externalisé mes procédures en utilisant les UDF (User Defined Function) pour pouvoir bénéficier du GOTO présent en langage C mais le hic c'est que elles sont limités en paramètres d'entrée :

    10 pour Firebird
    2 pour Ingres
    100 pour PostgreSQL

    Il faut savoir qu'actuellement dans l'entreprise ou je suis la base de donnée Sybase est reproduite sous Oracle, DB2 et SQL Server comme par hasard les 4 serveurs qui possèdent l'instruction GOTO.

    Me voila donc complètement déprimer en train de me demander comment je vais faire. Si quelqu'un a un début d'idée, Merci d'avance.

  2. #2
    Modérateur

    En tout cas vous avez déjà trouver de solides arguments pour ne pas migrer.
    Si une telle migration dure deux ans et coûte cinq années de licence, il peut être plus sage de ne pas la faire.
    Incluez donc Sybase dans vos bases cibles.

  3. #3
    Membre éclairé
    Firebird 2.1 :

    - Création des utilisateurs non disponible en SQL seulement en ligne de commande.

    tu peux aussi le faire par l'api mais en 2.5 ce sera disponible.
    De toute façon, le contournement de ce problème ne me parait pas insurmontable

    - Pas de type booléen.
    http://www.firebirdfaq.org/faq12/

    - Pas de FOR EACH ROW dans les triggers.
    c'est assez bizarre comme truc de modifier tous les enregistrements d'une table quand on en modifie un seul !
    Mais tu peux appeler une procédure que te fera le boulot.

    - Pas de TRUNCATE.
    - Pas de curseur dynamique possible dans les procédures stockées.
    un peu de lecture
    http://www.firebirdsql.org/manual/mi...ql-syntax.html

  4. #4
    Membre à l'essai
    Merci pour vos réponses,

    Cependant VLDG, j'avais bien préciser dans mon post que certains problèmes pouvait être résolu. J'avais donc déjà pris connaissance des alternatives que tu me propose et je te remercie de me les avoir proposé. Cependant le problème majeur qui est l'utilisation du GOTO est ma principale barrière car Firebird ne le possède pas non plus. Or pour contourner ce problème, je ne vois pas de solution. Donc si tu as une solution pour le GOTO aussi VLDG, ce serait sympa de me transmettre ta solution. Si tu peux j'aimerais aussi avoir ton avis sur la faisabilité de la migration sur les différents SGBD et si celle-ci est faisable le temps que cela prendrait. C'est ma première migration est je suis tous sauf un spécialiste des SGBD. J'essaye de faire mon possible avec les connaissances que j'ai acquise en licence. Merci à vous deux et bonne journée.

  5. #5
    Rédacteur

    Quel est le volume de votre base de données ? Peut elle est découpée en plusieurs ?? Si telle est le cas vous pouvez alors aussi y inclure MS SQL Server version Express (limitée à des bases de 4 Go, mais pas limité en nombre de bases, ce qui permet de les agréger...)

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

###raw>template_hook.ano_emploi###