Dieses Webinar finden Sie auf unserem Youtube Webinar Channel.
In diesem Webinar zeigen wir, wie von einer Oracle Datenbank mittels Heterogeneous Services und ODBC auf eine PostgreSQL Datenbank zugegriffen werden kann.
Architektur
Installieren von unixODBC (als root)
yum install unixODBC.x86_64 unixODBC-devel.x86_64
PostgreSQL ODBC (als postgres)
wget https://ftp.postgresql.org/pub/odbc/versions/src/psqlodbc-13.00.0000.tar.gz
tar xvfz psqlodbc*
cd psqlodbc*
./configure
make
und als root installieren
su # ohne "-" !!
make install
exit
ODBC Einstellungen in /etc/odbcinst.ini als root anpassen
cat /etc/odbcinst.ini
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver64 = /usr/local/lib/psqlodbcw.so
Setup64 = /usr/lib64/libodbcpsqlS.so
FileUsage = 1
ODBC Datenquelle /etc/odbc.ini oder im ~oracle/.odbc.ini konfigurieren
[PG13] <-- Name der Datenquelle (DNS)
Description = Postgres13 Database
Driver = PostgreSQL <-- aus /etc/odbcinst.ini
Trace = No
TraceFile =
Database = mydb <-- PostgreSQL Database Name
Servername = localhost <-- PostgreSQL Server
UserName = chris <-- PostgreSQL User (temp für isql-Test)
Password = chrispassword <-- PostgreSQL Password (temp für isql-Test)
Port = 5432
Protocol = 13
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ShowOidColumn = No
FakeOidIndex = No
ConnSettings =
ODBC Connect zu PostgresSQL mittels isql testen
$ isql PG13
+---------------------------------------+
| Connected! |
...
Oracle HS als oracle Benutzer einrichten
init<odbcsid>.ora anlegen und konfigurieren
cd $ORACLE_HOME/hs/admin
cp initdg4odbc.ora initpg13.ora
cat initpg13.ora
HS_FDS_CONNECT_INFO = PG13
HS_LANGUAGE=AMERICAN_AMERICA.WE8ISO8859P15
HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so
set ODBCINI=/etc/odbc.ini
listener.ora Eintrag für Oracle HS erzeugen
cat $ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=pg13)
(ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE)
(PROGRAM=dg4odbc)
(ENV="LD_LIBRARY_PATH=/usr/lib64:/usr/local/lib:/opt/oracle/product/18c/dbhomeXE/lib")
)
)
lsnrctl stop
lsnrctl start
tnsnames.ora Eintrag erstellen
cat $ORACLE_HOME/network/admin/tnsnames.ora
PG13_connect =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = postgres.shared)(PORT = 1521))
(CONNECT_DATA = (SID = pg13))
(HS=OK)
)
Datenbank Link anlegen und auf PostgreSQL Tabellen zugreifen
CREATE [PUBLIC] DATABASE LINK PG13link CONNECT TO "chris" identified by "Chris" using 'pg13_connect';
select count(*) from "foo"@PG13link;
COUNT(*)
----------
1
Weitere behandelte Themen
- Probleme mit Datentyp-konvertierung
- Boolean Datentyp
- Case Sensitivität bei Objektnamen
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 - Oracle Connect to PostgreSQL