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

PostgreSQL Discussion :

Migration Oracle 9.i vers Postgresql


Sujet :

PostgreSQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Points : 5
    Points
    5
    Par défaut Migration Oracle 9.i vers Postgresql
    Bonjour,

    Je débute en migration de BD et je dois faire une migration d'une BD qui est sur Oracle 9.i vers postgresql. Mon problème de definir le moteur à utilisé? , la version stable de postgre (et robuste)?

    Quel type de réplication dois-je faire? du master master ac cybercluster ou du maitre escalave ac slony (drdb est ecarter et on ne dispose que de 2 serveurs)

    Cyberdluster est il stable et presente t-il des bug?


    Merci pour vos réponses

  2. #2
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Citation Envoyé par NouveauMigrateur Voir le message
    Quel type de réplication dois-je faire? du master master ac cybercluster ou du maitre escalave ac slony
    Bonjour,

    C'est à vous de savoir votre besoin en réplication. Avez-vous besoin d'une réplication maître-maître ou d'une réplication maître-esclave ?

    Lorsque vous allez voir un vendeur de voitures, vous ne lui demandez pas s'il vaut mieux que vous achetiez une 2CV ou une F40, si ? Cela dépend de votre besoin.

    Cordialement,

    Arkhena

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    Tu as bien raison ma question concernant l'architecture de réplication n'a pas de sens donc je reformule mes questions

    Sauriez-vous qu'elle est la version stable de postgre (et robuste)?

    Cybercluster est il stable et présente t-il des bug ou est-il en version finale?
    Sachant que je ne dispose que de deux serveurs et que je souhaite faire une réplication master-master, est-il possible d'utiliser cybercluster ou faut-il obligatoirement un troisième serveur qui sera le manager.



    Merci pour vos réponses

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Sauriez-vous qu'elle est la version stable de postgre (et robuste)?
    La 8.4 vient de sortir et a des bugs de jeunesse. La 8.3 est supposée stable mais des bugs sont toujours trouvés de temps à autre comme dans tous les programmes complexes.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    Merci estofilo donc a ton avis l'utilisation de la version du 8.3 en production (domaine avionique) n'est pas envisagebale????

    Cybercluster est il stable et présente t-il des bug ou est-il en version finale?
    Sachant que je ne dispose que de deux serveurs et que je souhaite faire une réplication master-master, est-il possible d'utiliser cybercluster ou faut-il obligatoirement un troisième serveur qui sera le manager.

    Merci pour vos réponses

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Citation Envoyé par NouveauMigrateur Voir le message
    Merci estofilo donc a ton avis l'utilisation de la version du 8.3 en production (domaine avionique) n'est pas envisagebale????
    Loin de moi cette idée, d'ailleurs de nombreuses personnes utilisent PG8.3 en production et j'en fais partie.

    Cybercluster est il stable et présente t-il des bug ou est-il en version finale?
    Le problème est qu'il ne semble ni utilisé ni maintenu. Sur la mailing list principale de postgresql, plusieurs fois la question de savoir qui l'utilisait a été posée, et personne n'a répondu. Les packages précompilés pour debian présents sur leur site datent de mai 2008, donc ils n'incorporent pas les patches de postgresql au fur et à mesure. Par ailleurs personnellement la doc m'inspire assez peu confiance, mais c'est subjectif.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    Merci pour toutes ces précisions

    J'oublie alors Cybercluster, d'ailleurs même sur le site officiel de cybercluster , il souligne bien que cybercluster est en version beta et que son utilisation en production n'est pas conseillée.
    Que me conseille-tu pour de la réplication master-master synchrone , qu'elle est l'outil le plus utilisé ?
    Les différents outil pour la réplication master master synchrone sont:

    PGcluster, Postgre-R, Bucardo, (rubyrep par contre asynchrone)


    Qu'elle est l'outil le plus utilisé et le plus performant stable.....

    Merci d'avance

  8. #8
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Sur la doc de postgreR, ils disent que la version actuelle est une bêta et ils la déconseille pour une appli en production...

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    Merci pour cette précision et pour les autres outils tu n'as pas une petite idée?

  10. #10
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Pour l'instant, on en m'a demandé de faire que de la Hot standby (maître-esclave).

    J'ai entendu dire que pgpool qui permet du maître-maître était pas mal mais il pose un problème si ton appli accède aux bases avec un pool de connexion.

    Bucardo a bonne réputation.. Je ne peux pas en dire plus...

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    Merci merci donc j'ai d'autre question à vous demander



    Donc je suis dans le même cas que certains d'entre vous, à savoir migrer d'oracle 9.I vers Postgresql 8.3.
    Première question quel est l'outil de migration qui vous paraît le plus approprier, j'ai appris que ora2PG est pas mal mais je voudrais savoir si c'est le cas ou y a il d'autre plus performant.

    2ème question (la plus importante) connaissez vous tuto sinon pourriez vous me diriger vers des bonnes adresse qui traitent ce sujet

    Enfin, quelles sont les étapes à suivre

    Merci infiniment de vos réponses

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Il y a orafce qui est une bibliothèque de fonctions postgresql destinées à faciliter du portage d'oracle. Ca peut faire gagner du temps.

    A moins que ta base de données Oracle ne soit triviale, il ne faut pas espérer qu'un outil comme ora2pg va tout faire: ça tient plutôt lieu de première passe.

    Le niveau de difficulté du portage découle de la base elle-même, et des spécificités d'Oracle qu'elle utilise. Chaque SGDB a des spécificités qui peuvent être difficiles à porter, mais pour savoir si une appli/base particulière les utilise, il faut la connaitre dans le détail.

  13. #13
    Futur Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Dans mon entreprise, nous avons également effectué une migration de oracle 9i vers Postgres 8.3 (sous redhat).

    Et comme dit dans le post precedent, les quelques difficultés rencontrées etaient généralement causées aux specificités d'oracle (ne rentrant pas dans la norme SQL) comme le "Connect by prior".

    Sinon le portage s'effectue trés bien, en se créant ses propres fonctions ou en utilisant des contributions.

    Pour la réplication utilsant que du Maitre /Esclaves, j'utilise Slony.

    Cela va faire presque un an que nous tournons sous postgres, dans notre cas que du positif.
    Malgré les crises de nerfs des developpeurs au début, du à la rigueur qu'impose postgres par rapport à Oracle (finit les mauvaises habitudes).

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    Merci pour ces information, mais j'aimerais bien un peu plus de précision si possible c a d:

    - L'outil que vous avez utilisé pour le portage
    - Les étapes de cette migration ( si vous avez un rapport qui reprend les étapes de votre migration il me serais d'une grande utilité)

    Merci infiniment

  15. #15
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 738
    Points
    1 738
    Par défaut
    Personnellement j'ai déjà fait beaucoup de migration Oracle vers Postgresql
    Je n'utilise pas ora2pg mais j'ai préféré développer mes propres scripts

    Les étapes principales sont :

    - génération du DDL du schéma de données d'Oracle (tables, indexes, contraintes, séquences, ...) : soit à la main (générer les DDL depuis les vues dba_tables, dba_constraints, dba_tab_privs, dba_indexes, ... ou le package oracle DBMS_DDL), soit avec des outils de reverse engineering
    Les ordres DDL doivent être adaptés en enlevant les mot-clés spécifiques à Oracle (clauses de storage MINEXTENTS, INITIAL, ... notamment).
    - recréation sur Postgresql des rôles de connexion, des tables à vide et des grants
    - migration des données (via un outil ETL ou par export CSV depuis Oracle et COPY pour charger dans Postgresql)
    - recréation sur Postgresql des indexes, contraintes et autres objets

    Tous les objets PL/SQL (triggers, packages, procédures, fonctions) sont à réécrire en PL/PgSQL

    Ca c'est juste pour la migration technique
    Après il faut faire une passe dans toutes les requêtes SQL de ton application pour détecter les différences de comportement des 2 SGBD. Les principales sont :
    - le mot AS obligatoire sur Postgresql pour renommer un champ ou une sous-requête
    - NULL = chaîne vide sur Oracle, pas sur Postgresql
    - le (+) de la jointure ouverte qui est spécifique à Oracle
    - ordre de tri entre les 2 SGBDs différent selon la casse
    - Postgresql est beaucoup plus strict sur les conversions de type implicites et peut générer des erreurs de syntaxe sur des requêtes qui fonctionnaient avec Oracle
    - fonctions et types de données spécifiques à Oracle (ex : DATE de Oracle = TIMESTAMP de Postgresql, LOBs de Oracle = BYTEA de Postgresql), à adapter sur Postgresql
    - Postgresql pouvant être sensible à la case sur les noms d'objets (contrairement à Oracle), choisir une convention dès le départ : tout en majuscules ou tout en minuscules

    Bref, la migration technique des données n'est que la première étape, la plus importante étant de bien recetter !

    As-tu suffisamment d'infos ?

    PS : je rejoins Wilka sur la rigueur qu'impose Postgresql, mais elle ne peut être que bénéfique pour la pérénnité des applications ...
    PS2 : j'ai fait un tutoriel pour la mise en place d'une Hot Standby 8.2 (mais qui doit aussi marcher en 8.3) de manière très simple à administrer, si tu ne veux pas te compliquer la vie avec des outils tels que Slony ou autre ... Après à chacun ses goûts, je ne critique en rien cet outil ...

  16. #16
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Citation Envoyé par scheu Voir le message
    PS2 : j'ai fait un tutoriel pour la mise en place d'une Hot Standby 8.2 (mais qui doit aussi marcher en 8.3) de manière très simple à administrer, si tu ne veux pas te compliquer la vie avec des outils tels que Slony ou autre ... Après à chacun ses goûts, je ne critique en rien cet outil ...
    Attention, il s'agit d'une Warm Standby sur ce tutoriel et non d'une Hot Standby : les données du serveur de secours ne sont pas accessibles en lecture seule, puisque le serveur secondaire est en mode recovery.

    Slony permet de réaliser réellement un Host Standby. Cette fonctionnalité est annoncée pour la version 8.5 de postgreSQL.

    Enfin, si j'ai bien compris, NouveauMigrateur a besoin d'une réplication maître-maître, ce qui n'est ni de la Hot ni de la Warm standby.

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup scheu je vais déjà commencer par suivre les étapes que tu m'a énumérer. Des collègues m'ont aussi dit que vaut mieux passer par des scripts.

    Donc je vais me lancer et je vous tiens au courant par contre je pense bien que je vais te poser pleins pleins d'autre questions )))

    En effet Arkhena j'ai bien besoin d'une rep maste-master par contre c'est pas vraiment obligatoir parce qu'actuellement il y a une architecture qui convient bien au client de ma boite que je vais essayer de reproduire ac postgresql , je m'explique

    L'architecture actuelle est du master slave, on a deux serveurs configurer ainsi

    1er serveur Master 2eme serveur Slave
    1er serveur Slave 2eme serveur Master
    En français ça donne : chaque serveur est master et esclave de l'autre et réciproquement.

    Je pense que je vais opter pour cette configuration q'en pensez-vous?

    Merci de vos remarques

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    Bonjour ,
    Donc encore une autre petite question, voila donc je vais commencer par tester ma réplication avec DRDB. Le soucis et que j'aimerais faire des tests donc j'aimerais savoir s'il est possible de récupérer un base de données d'1 Giga environ que je met sous postgresql 8.3.
    Pourriez-vous m'indiquez comment dois-je procéder sans perdre de temps, genre un script ou je ne sais trop quoi que je pourrais trouver sur le net.


    Merci

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 15
    Points : 5
    Points
    5
    Par défaut
    Bonjour;

    Je voudrais charger des données dans les tables de sorte à avoir une base volumineuse (afin de faire des tests).

    Je sais qu'il faut écrire un script pour cela, mais je n'ai sais pas s'il doit être script shell ou script sql.


    Connaissez vous un tuto qqchose du genre ou qu'elle sont les étape à faire
    (sous linux)


    Merci pour votre aide!

  20. #20
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CREATE TABLE big(i integer);
    INSERT INTO big SELECT generate_series(1, 1e9/32);
    et ça doit faire une table d'1Go à peu près, vérifiable avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT pg_relation_size('big');

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/08/2011, 10h19
  2. Pb migration Oracle 10g Standard vers 10g Enterprise
    Par toniogab dans le forum Installation
    Réponses: 1
    Dernier message: 22/07/2011, 09h36
  3. Migration automatique Oracle vers postgreSQL
    Par tchasp dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 28/09/2010, 17h41
  4. [DTS] Migration MS SQL 2000 vers PostgreSQL 8.3
    Par MinsK dans le forum Outils
    Réponses: 5
    Dernier message: 03/02/2009, 11h47
  5. migration de bases access vers postgresql
    Par passie dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 04/07/2005, 11h12

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