web-dev-qa-db-fra.com

Comment migrer la base de données Oracle vers le serveur MySQL?

Actuellement, notre application fonctionne avec la base de données Oracle 11g. Nous développons une nouvelle version de l'application qui fonctionne sur le cluster MySQL. Nous devons migrer les données de la base de données Oracle vers la base de données MySQL. Ce n'est pas une copie directe des objets de base de données. Dans une version plus récente du schéma d'application (structure de table et relations) est modifiée. Et les tables d'audit doivent également être copiées. Existe-t-il un moyen de mapper des tables, des colonnes de l'ancien schéma Oracle et du nouveau schéma MySQL et d'appliquer une copie pour que les données soient copiées?

Nous pensons faire cette activité en deux étapes. 1. Convertissez la base de données Oracle en base de données MySQL. 2. Écriture d'une procédure stockée pour copier table par table.

Existe-t-il des meilleures pratiques lors de l'exécution de ce type de migration de base de données d'un fournisseur de SGBDR à un autre? Existe-t-il des outils open source ou commerciaux pour cela?

8
Suren Raju

Je recommande de faire cette migration en deux étapes.

  1. Utilisez MySQL Workbench pour migrer la plupart des objets et des données db vers MySQL (les données de table seront également copiées par ce processus). Voir tilisation de l'assistant de migration MySQL Workbench pour plus de détails. Cela vous laissera un travail manuel pour des objets spécifiques comme les procédures stockées. Aucun outil ne peut effectuer une migration automatique car les routines stockées diffèrent considérablement entre Oracle et MySQL.
  2. Utilisez MySQL Workbench pour effectuer une rétro-ingénierie de la base de données migrée dans un modèle.
  3. Utilisez ce modèle pour ajuster les objets à votre nouvelle structure de schéma.
  4. Synchronisez le modèle avec votre serveur pour appliquer les modifications. Selon les modifications que vous avez apportées, cela peut être non destructif, mais bien sûr, avoir une sauvegarde est toujours une bonne idée.

Vous pouvez répéter les étapes 3 et 4 autant de fois que vous le souhaitez pour ajuster progressivement votre schéma. La synchronisation prendra également en charge toutes les modifications apportées au schéma par d'autres (synchronisation bidirectionnelle).

La migration d'Oracle vers MySQL n'est pas prise en charge par MySQL Workbench. Toutes mes suggestions ci-dessus ne sont que des idées que l'on peut essayer de faire fonctionner au moins partiellement. Rien de tout cela n'est cependant testé, car, comme je l'ai dit, la migration d'Oracle vers MySQL n'est pas prise en charge.

5
Mike Lischke

J'ai récemment converti une base de données Oracle en MySQL en utilisant un programme appelé DBConvert Il existe une version gratuite qui insère des filigranes dans de grandes tables, mais qui peut être corrigée. ;) Ce n'est pas parfait et pourrait prendre un peu de bricolage à corriger après la conversion.

0
Hatandboots