Skip to Main Content

Breadcrumb

Connect 2 Worlds: PostgreSQL connect zu Oracle

Dieses Webinar finden Sie auf unserem Youtube Webinar Channel.

In diesem Webinar behandeln wir das Einbinden von Oracle Tabellen und Views in eine PostgreSQL Datenbank.

Architektur


Oracle Foreign Data Wrapper

Der Oracle FDW wird benutzt um Oracle Tabellen und Views in PostgreSQL Datenbanken zu integrieren. Um diesen zu nutzen, gibt es folgende Voraussetzungen:

  • PostgreSQL Datenbank
  • LLVM
  • Oracle Client oder Datenbank Installation

Installation von LLVM

Das Beispiel geht von PostgreSQL 13 aus, es funktioniert aber auch mit anderen Versionen. Zuerst die benötigten Yum-Repositories konfigurieren: 

yum-config-manager --enable ol7_developer_EPEL
yum-config-manager --enable ol7_developer
yum-config-manager --enable ol7_software_collections
yum-config-manager --enable ol7_optional_latest
yum-config-manager --disable pgdg14*
yum-config-manager --disable pgdg12*
yum-config-manager --disable pgdg11*
yum-config-manager --disable pgdg10*
yum-config-manager --disable pgdg9*

Danach die benötigten RPMs installieren:

yum -y install gcc.x86_64 gcc-c++.x86_64
yum –y install postgresql13-devel.x86_64 postgresql13-llvmjit.x86_64 llvm-toolset-7.x86_64

Oracle FWD Installation 

Download und Linken als postgres Benutzer

Für das Linken ist ein es notwendig, dass ein Oracle Client oder Datenbank Environment im Sessionenvironment konfiguriert ist.

wget https://github.com/laurenz/oracle_fdw/archive/master.zip
unzip master.zip
cd *master

make

dann als root Benutzer installieren

make install

Shared Libraries für Oracle FDW im Postgres.conf eintragen

vi postgresql.conf
shared_preload_libraries = 'pg_stat_statements, oracle_fdw'

systemd-postgres startup script als root anpassen

 su -
cd /usr/lib/systemd/system
# die folgenden Zeilen in der Sektion [Service] hinzugefügt werden (unter den anderen Environment Einträgen)
vi postgresql*

Environment=ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE
Environment=LD_LIBRARY_PATH=/opt/oracle/product/18c/dbhomeXE/lib

systemd-postgres neu laden und neu starten

systemctl daemon-reload
systemctl stop postgresql-13
systemctl start postgresql-13
systemctl status postgresql-13

Oracle FDW Extension in der PostgreSQL Datenbank konfigurieren

CREATE EXTENSION oracle_fdw;
CREATE SERVER oracle_db FOREIGN DATA WRAPPER oracle_fdw OPTIONS (dbserver 'localhost:1521/xepdb1');
CREATE USER MAPPING FOR public SERVER oracle_db OPTIONS (user 'system', password 'oracle');
CREATE FOREIGN TABLE foo (x numeric) SERVER oracle_db OPTIONS (table 'FOO');
SELECT * FROM foo;
UPDATE foo SET x = x +1 WHERE x = 41;
COMMIT;

PostgreSQL für Oracle DBAs Workshop

Mehr Informationen zu PostgreSQL für Oracle DBAs bieten wir in unserem Workshop.

Interesse an diesem Webinar geweckt?

Dann schauen Sie es sich doch direkt auf unserem Youtube Channel an: Connect 2 Worlds - PostgreSQL Connect zur Oracle Datenbank