Récupérer des données d’une base Oracle dans une base PostgreSQL

Après les données de fichiers plats, les données d’une base MsSql, on va voir comment récupérer des données de notre base Oracle favorite dans une base de données PostgreSQL.
 
Pour ce faire, on va une fois de plus passer par un Foreign Data Wrapper.
 
Ce dernier va nous permettre d’ouvrir une sorte de Db Link vers cette base Oracle à partir de notre base PostgreSQL.

L’installation se fera sur un serveur Linux.
 
 
 

  • Pré-requis

Pour permettre l’installation du FDW pour Oracle, il faut disposer de librairies particulières que l’on retrouve dans l’installation de l’InstantClient Oracle. Dans notre cas, on installera la version 12.1.0.2 du produit.

Récupérez les packages Basic et SDK de l’instantCLient voulue chez Oracle, déposez-les sur le serveur puis lancez l’installation.

Pour cela, sous root, lancez la commande suivante :

Positionnez l’environnement PostgreSQL voulu, dans notre cas la version 9.6.

Assurez-vous que le fichier pg_congig est bien dans le path.

 

Positionnez les variables ORACLE_HOME et LD_LIBRARY_PATH.

Positionnez l’ORACLE_HOME dans le path :

On contrôle :

Assurez-vous que le package postgresqlXX-devel, correspondant à votre version de postgreSQL, soit bien installé.

Dans le cas contraire, procédez à l’installation du package.

 

  • Installation du fdw Oracle

Positionnez-vous dans le répertoire où le fichier oracle_fdw-1.5.0.zip a été déposé.

Décompressez le fichier et positionnez-vous dans le répertoire ainsi créé.

On peut maintenant lancer la mise en place du fdw.

Puis

L’installation est terminée, on peut passer maintenant à la configuration du Foreign Data Wrapper dans notre base PostgreSQL.

  • Mise en place du FWD dans le cluster postgreSQL

 

Sous le user postgres

Positionnez les variables ORACLE_HOME et LD_LIBRARY_PATH avec les destinations correspondant à l’instantClient précédemment insrallé.

 

Dans l’idéal, insérez-les dans le fichier .bash_profile.

Arrêtez puis redémarrez votre cluster postgreSQL pour prendre en compte les nouvelles librairies.

On peut maintenant créer l’extension dans la base.

 

On passe maintenant à la création du serveur de données. Dans notre exemple, on cherche à se connecter au référentiel RMAN.

 

Dans le cas où le port d’écoute du listener n’est pas le 1521, la chaîne de connexion est la suivante :

 

On crée un mapping entre le user postgreSQL monpguser et le user Oracle rman et son mot de passe.

 

On peut maintenant créer une table externe sous notre user monpguser pour accéder aux données de notre table sous Oracle .

Voilà, on accède maintenat à notre référentiel RMAN à partir de notre base PostgreSQL.

A vous de jouer !

Jean-François Famechon

About Jean-François Famechon

Jean-François Famechon has written 29 post in this blog.

Consultant senior DBA Oracle

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

%d blogueurs aiment cette page :