Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cloner une base de données

Oracle - MySql

    4 octobre 2010 à 21:00:01

    Bonjour,

    Existe-t-il une commande SQL qui lors de son exécution effectue un clonage, ou du moins une mise à jour d'une autre base de données? J'ai une base de données sous Oracle à laquelle je n'ai accès qu'en lecture, et une autre sous MySql de Wamp où j'ai tous les droits. La base de données principale est celle d'Oracle, la secondaire est une copie de la 1ère mais avec des champs supplémentaires, des tables supplémentaires, ... Ce que j'aurais besoin, c'est que lorsque je clique sur un bouton par exemple (je développe en C# sous Visual Studio 2010), ce serait de faire un SELECT dans la base de donnée sous Oracle, et de vérifier les champs à mettre à jour dans la base de donnée sous MySql, et bien sur d'effectuer ces mises à jour.

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      4 octobre 2010 à 22:04:52

      ça s'appelle de la réplication. Donc voir de ce côté-là.
      Je connais la réplication Oracle-Oracle, MySQL-MySQL, Oracle-Sybase. Mais Oracle-MySQL ou MySQL-Oracle je n'ai jamais pratiqué. Mais c'est sûr c'est possible.

      cf aussi http://forums.mysql.com/read.php?61,71588,77924#msg-77924
      • Partager sur Facebook
      • Partager sur Twitter
        5 octobre 2010 à 20:02:51

        Merci!

        J'ai cherché sur la réplication, et je trouve beaucoup de renseignements pour MySql-MySql, mais rien sur Oracle-MySql... Personne ne pourrait me fournir un tuto?
        • Partager sur Facebook
        • Partager sur Twitter
          8 octobre 2010 à 23:19:26

          La solution dans le lien me parait correcte mais ne me convient pas vraiment car je peux pas accéder au serveur physiquement, et je n'ai accès qu'en lecture et export à la BD Oracle.

          Je pensais donc à une autre solution : exporter la BD Oracle complètement, l'importer en MySql dans une nouvelle table, pour ensuite réaliser la réplication MySql-MySql de cette nouvelle base de données avec la base déjà existante en MySql (vu qu'il y aura d'autre tables en plus que sur celle en Oracle).

          Il me faudrait donc une commande qui ressemble à ça pour exporter ma base de données Oracle :

          exp userid=Damien/Damien file=c:\backup\export.dump full=n rows=y

          Le problème de cette commande est qu'elle me crée un fichier .dump et que la base de donnée MySql n'accepte que des .sql pour l'import...

          Quelqu'un aurait une solution pour exporter une base de données Oracle en .sql?
          • Partager sur Facebook
          • Partager sur Twitter
            10 octobre 2010 à 11:50:03

            bonjour,
            regarde les différentes options de la commande exp.
            Il y en a une qui permet de ne récupérer que les données d'une table.
            Regarde la structure des résultats.
            Ensuite un script pour injecter dans la BD MySQL.

            Autrement tu écris ta "moulinette" qui va créer un fichier CSV à ta mesure par table Oracle et une autre qui va injecter dans une bd MySQL. Si tu connais la POO, une petite classe est bienvenue, autrement une bibliothèque avec quelques fonctions.
            • Partager sur Facebook
            • Partager sur Twitter
              10 octobre 2010 à 17:46:09

              Depuis ce matin je cherche, par la ligne de commande on ne sait avoir que des fichiers .dump ou binaire d'après ce que j'ai vu.

              Dans Oracle même, lorsque je vais dans l'option Data Unload, j'obtiens un fichier texte, qui lui dans le pire des cas (si je parvenais à récupérer ce fichier txt par commande) pourrait être injecté dans MySql avec l'option LOAD DATA INFILE vu qu'il conteitn juste les données d'une table.

              Je suis assez étonné du manque de compatibilité de l'un vers l'autre vu que MySql appartient à Oracle...

              La méthode est peut-être un peu barbare vu que ma base de données contient plus de 150 tables, mais je me demande si réaliser un SELECT pour chaque table pour ensuite les réinjecter dans MySql ne serait pas le plus simple?


              • Partager sur Facebook
              • Partager sur Twitter
                11 octobre 2010 à 9:38:03

                bonjour,
                1-Oracle a racheté MySQL. Oui mais les passerelles il faut les écrire :)
                2-150 tables oui. Mais une boucle sur la metabase, c'est possible.
                • Partager sur Facebook
                • Partager sur Twitter

                Cloner une base de données

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown