Table des matières

,

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 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

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 à 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 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 installer le paquet ora2pg.

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 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


Contributeur principal : kwakosaure.