IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Décisions SGBD Discussion :

Export quotidien de données de MariaDB vers Oracle


Sujet :

Décisions SGBD

  1. #1
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut Export quotidien de données de MariaDB vers Oracle
    Bonjour,

    Soit une BDD MariaDB (donc compatible MySQL) avec une vue, sur un premier serveur.
    Soit une BDD Oracle sur un autre serveur.
    Je dois mettre en oeuvre un système automatique d'export des données résultant de la vue MariaDB vers la BDD Oracle ou bien un import depuis Oracle interrogeant la vue de MariaDB.
    J'envisage que les données issues de la vue soient enregistrées dans une table d'import et qu'une procédure contenant un MERGE fasse le boulot d'import des données dans la vraie table Oracle. Ensuite, la table d'import serait vidée.
    Un système automatisant tout ça quotidiennement doit être aussi mis en oeuvre.

    Quelles seraient les meilleurs solutions ?
    1) DB_LINK Oracle et procédure qui se connecte directement à MariaDB pour récupérer les données ?
    2) Peut-on programmer une tâche dans Oracle pour automatiser l'import ?
    3) Script bash mis en cron qui lance l'import quotidiennement depuis le serveur Oracle ?
    4) Script sur le serveur MariaDB qui se connecte à Oracle et exporte les données de la vue + tâche Oracle pour faire le MERGE ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Il faudrait avoir quelques infos techniques sur la volumétrie et le réseau entre les deux, et aussi qu'est-ce qu'il faut suivre en terme de log et d'audit.
    Passer par une table d'import c'est toujours une bonne idée !

    Le plus simple c'est en effet le DBLink, mais il faut pas trop de volume OU un bon réseau, puis en terme de log / audit ce sera minimaliste.
    Le plus tracé serait un export CSV de MariaDB + dépôt sur un lecteur mappé par Oracle + table externe.

    Oracle possède un package, DBMS_SCHEDULER, qui permet de créer des jobs et donc de lancer par exemple une procédure stockée.
    Ce n'est pas très différent d'une crontab sauf que c'est Oracle qui gère. Si vous avez un planificateur d'entreprise (dollarU, control-M, ou un ETL), il vaut mieux utiliser ces outils pour des questions de suivi, car on a vite fait d'oublier un job Oracle.

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Il faudrait avoir quelques infos techniques sur la volumétrie et le réseau entre les deux
    Volume de données faible. La vue ne devrait donner guère plus de 100 lignes.
    La table de prod actuelle dans Oracle fait 555 lignes et il n'y aura que quelques lignes nouvelles par jour.

    Côté réseau, les deux serveurs ne sont pas tout à fait sur le même réseau mais une passerelle sera créée pour que la communication puisse se faire.
    Quels seraient les restrictions techniques ?

    Le plus simple c'est en effet le DBLink, mais il faut pas trop de volume OU un bon réseau, puis en terme de log / audit ce sera minimaliste.
    Pas grave si log/audit minimaliste. Une info éventuelle sur la réussite ou l'échec du transfert suffirait.

    Oracle possède un package, DBMS_SCHEDULER, qui permet de créer des jobs et donc de lancer par exemple une procédure stockée.
    J'ai vu dans Sql Developer qu'il y a une rubrique "Planificateur". Va falloir que j'étudie ça. C'est inclus dans la licence ou pas ?


    Donc, concrètement, je définis un DB_LINK qui pointe sur le serveur MariaDB ?
    Et ensuite ? Une procédure qui interroge la vue MariaDB via le DB_LIINK et insère les données dans la table d'import puis qui merge dans la table de prod ?
    Et enfin un job Oracle qui lance ça tous les jours ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Oui c'est exactement ce que j'aurai fait.

  5. #5
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    salut Cinephil une réponse vite fait bien fait même si c'est pas la bonne, avec un trigger sous Maria DB ne fait pas l'affaire ?

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Non, un trigger est fait pour agir sur la table qui fait l'objet d'une opération d'insertion, de modification ou de suppression.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Migration d'une base de données access 97 vers oracle
    Par amandev dans le forum Débuter
    Réponses: 3
    Dernier message: 29/02/2012, 10h13
  2. Migration des données de EXCEl vers Oracle
    Par shark84 dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 25/04/2008, 15h03
  3. Migration de données de SQLSERVER vers ORACLE 10g
    Par malik1982 dans le forum Oracle
    Réponses: 1
    Dernier message: 04/07/2006, 13h09
  4. Importation d'une base de donnée sql server vers oracle
    Par delphy456 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 17/01/2006, 14h44
  5. exportation de données de mysql vers Oracle
    Par illegalsene dans le forum Oracle
    Réponses: 5
    Dernier message: 26/10/2005, 12h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo