Apportez votre aide…
Ceci est une ancienne révision du document !
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 Gilles Darold, et on peut noter qu'une des références ayant fait un usage d'ora2pg est 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 rapport de bug sur launchpad. En effet, il dépend du module perl libdbd-oracle-perl dépendant du package 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 packages sans avoir à passer par une étape de compilation.
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
- Avoir activé l'accès aux dépôts Universe et Multiverse.
- Avoir installé le paquet alien.
Installation
Tout d'abord, il nous faut récupérer le package rpm oracle-instantclient-basic-10.2.0.3-1.i386.rpm sur le site d'oracle à cette adresse
Ensuite, transformer à l'aide de l'utilitaire alien ce package .rpm en .deb :
sudo alien oracle-instantclient-basic-10.2.0.3-1.i386.rpm
Puis installer le .deb :
sudo dpkg -i oracle-instantclient-basic_10.2.0.3-2_i386.deb
On peut maintenant installer le package 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/
Ensuite l'installer :
sudo dpkg -i libdbd-oracle-perl_1.21-2_i386.deb
Et enfin, on peut installer installer le paquet ora2pg
NB : la version de ora2pg disponible dans les dépôts est 4.9-1. Vous trouverez une version plus récente sur le site officiel du logiciel.
Utilisation
Il suffit d'éditer un fichier de conf sur le modèle fourni par le logiciel (ora2pg.conf) et lancer ora2pg avec ce fichier de conf 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
Bientôt …
Contributeurs principaux : kwakosaure.