{{tag>sgbd BROUILLON}} ---- ====== ORA2PG ====== **ORA2PG** est un outil facilitant la migration des bases de données Oracle vers PostgreSQL. L'outil permet de migrer l'ensemble des éléments d'une base Oracle, et les dernières versions peuvent même transformer une partie du code PL/SQL en PLPGSQL. Le contributeur principal est [[https://www.darold.net/|Gilles Darold]] et on peut noter qu'une des références ayant fait un usage d'ora2pg est [[http://www.bull.com/bulldirect/N9/expert.html|le groupe Bull]]. Bien que présent dans les dépôts Multiverse d'ubuntu, il n'est pas installable. Ceci fait d'ailleurs l'objet d'un [[https://bugs.launchpad.net/ubuntu/+source/ora2pg/+bug/316437|rapport de bug]] sur Launchpad. En effet, il dépend du module Perl **libdbd-oracle-perl** dépendant du paquet **oracle-instantclient-basic** (la couche de connexion propriétaire) qui n'est pas disponible dans les dépôts car délivré exclusivement par Oracle. On peut cependant assez simplement installer ces paquets sans avoir à passer par une étape de compilation. ===== Pré-requis ===== * Disposer des [[:sudo|droits d'administration]]. * Disposer d'une connexion à Internet configurée et activée. * Avoir activé l'accès aux [[:depots#universe_et_multiverse|dépôts Universe et Multiverse]]. * Avoir [[:tutoriel:comment_installer_un_paquet|installé le paquet]] **[[apt://alien|alien]]**. ===== Installation ===== Tout d'abord, il nous faut récupérer le paquet RPM **oracle-instantclient-basic-10.2.0.3-1.i386.rpm** sur le site d'Oracle à [[http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html|cette adresse]]. Ensuite, transformer, à l'aide de l'utilitaire [[Alien]], ce paquet RPM en paquet Debian et l'installer directement : sudo alien -i oracle-instantclient-basic-10.2.0.3-1.i386.rpm On peut maintenant [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **libdbd-oracle-perl** qui n'est pas présent dans les dépôts Ubuntu. On le trouve chez Debian à l'adresse [[http://ftp.debian.org/debian/pool/contrib/libd/libdbd-oracle-perl/]]. Pour l'installer : sudo gdebi libdbd-oracle-perl_1.21-2_i386.deb Et enfin, on peut installer [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://ora2pg|ora2pg]]**. La version de ora2pg disponible dans les dépôts est 4.9-1. Vous trouverez une version plus récente sur le [[http://pgfoundry.org/projects/ora2pg/|site officiel]] du logiciel. ===== Utilisation ===== Il suffit de modifier un fichier de configuration sur le modèle fourni par le logiciel (''ora2pg.conf'') et lancer ora2pg avec ce fichier de configuration en paramètre : ora2pg ora2pg.conf On obtient en retour un fichier « output.sql » compatible avec PostgreSQL. Principales options du fichier : ORACLE_HOME /usr/local/oracle/10.2.0.3 #chemin d'installation d'oracle-instantclient-basic ORACLE_DSN dbi:Oracle:host=localhost;sid=xe # chaine de connexion Oracle ORACLE_USER system ORACLE_PWD manager SCHEMA SCOTT # schéma Oracle cible, en majuscules TYPE TABLE SEQUENCE DATA PACKAGE FUNCTION PROCEDURE TRIGGER # types d'objets à extraire séparés par des espaces OUTPUT SCOTT_all.sql # fichier sql de sortie, mettre SCOTT_all.sql.bz2 pour l'obtenir compressé FKEY_DEFERRABLE 1 # permet de créer les enregistrements sans que les Foreign Key bloquent le chargement DEFER_FKEY 1 # permet de créer les enregistrements sans que les Foreign Key bloquent le chargement PLSQL_PGSQL 1 # Pour transformer le code PL/SQL en PLPGSQL ===== Limitations ===== FIXME ===== Voir aussi / Liens ===== * [[http://pgfoundry.org/projects/ora2pg/|Site officiel]] * FIXME ---- //Contributeur principal : [[utilisateurs:kwakosaure|kwakosaure]].//