Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
ora2pg [Le 31/07/2009, 13:37] – bonne pratiques Ner0lphora2pg [Le 30/10/2012, 16:08] (Version actuelle) – [Installation] 171.18.2.101
Ligne 1: Ligne 1:
 +{{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 [[http://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]]**.
 +
 +<note>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.</note>
 +
 +===== 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 :
 +
 +<file>
 +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
 +</file>
 +
 +
 +===== Limitations =====
 +
 +FIXME
 +
 +===== Voir aussi / Liens =====
 +
 +  * [[http://pgfoundry.org/projects/ora2pg/|Site officiel]]
 +  * FIXME
 +
 +----
 +
 +//Contributeur principal : [[utilisateurs:kwakosaure|kwakosaure]].//