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