Seite 2 von 2

Re: Mit PG auf Oracle-View zugreifen

Verfasst: Do 20. Okt 2016, 13:51
von pgSteffen
Hallo,
nach gut einem Jahr habe ich es jetzt endlich geschafft die Verbindung zu Oracle herzustellen.
War gar nicht so kompliziert, man muss halt nur 32/64bit beachten.

Bliebe das bereits angedeutete Thema
Letztendlich ist die Frage ob ich mit der "Wrapper"-Lösung eine aktuelle Lösung hinbekomme. Eine "Livesicht" geht nicht, da die Daten zwingend in eine bestimmte pg-Tabelle geschrieben werden müssen. Ein Trigger wird nicht funktionieren, da dieser die Änderungen in der View wohl nicht mitbekommt. Bliebe noch ein fester Aktualisierungszyklus .....
Also ich muss also Daten aus der Oracle-VIEW in eine PG-Tabelle schaffen.
Dies muss mindestens einmal täglich bzw. optimaler Weise bei Änderungen in Oracle erfolgen.

Gibt es hierfür einen Ansatz?

Gruß Steffen :)

Re: Mit PG auf Oracle-View zugreifen

Verfasst: Do 20. Okt 2016, 14:03
von akretschmer
ein 'Ansatz' wäre logical replication. 2ndQuadrant hat dazu eine Entwicklung, pg_logical. IIRC wurde damit bei einem oder mehreren unserer Kunden damit schon sowas erfolgreich gemacht... bin da aber nicht involviert.

Falls Dein finanzieller Rahmen das zuläßt kannst ja mal bei uns anklopfen ;-)

Re: Mit PG auf Oracle-View zugreifen

Verfasst: Do 20. Okt 2016, 14:22
von pgSteffen
Hallo,
vielen Dank für die schnelle Antwort. Der finanzielle Rahmen ist leicht beschrieben Null :rolleyes: .

Aber irgendwas zeitgesteuertes (terminierter Trigger??) sollte doch möglich sein!? Würde dann halt z.B. aller paar Minuten schauen, ob Änderungen in Oracle gemacht wurden.

Muss ich wirklich ein externes Programm erstellen, um PostgreSQL zu einer Aktion zu veranlassen?

Gruß Steffen

Re: Mit PG auf Oracle-View zugreifen

Verfasst: Do 20. Okt 2016, 14:57
von akretschmer
Du kannst Dir pgBucket anschauen, damit kannst Du innerhalb von PG quasi einen Cron laufen lassen: https://bitbucket.org/dineshopenscg/pgbucket

Du mußt halt zusehen, alle Änderungen aus Ora nachzuführen: Inserts, Updates, Deletes. Da aller N Sekunden/Minuten einen 'Snapshot' der Tabellen zu vergleichen ist um einiges mühsammer als wenn man diese Änderungen als logischen Stream bekommen könnte.

https://wiki.postgresql.org/images/2/25 ... ak-orq.pdf

Vielleicht kommst Du besser, in Ora via TRIGGER Änderungen zu protokollieren und daraus Anweisungen für PG zu generieren.

Oder, falls das reicht, einmal/mehrmals täglich in PG alles wegwerfen und komplett aus Ora neu ziehen. Das hängt letztendlich auch von der Datenmenge ab, über die wir reden.

Re: Mit PG auf Oracle-View zugreifen

Verfasst: Do 20. Okt 2016, 14:59
von castorp
pgSteffen hat geschrieben:Aber irgendwas zeitgesteuertes (terminierter Trigger??) sollte doch möglich sein!? Würde dann halt z.B. aller paar Minuten schauen, ob Änderungen in Oracle gemacht wurden.

Muss ich wirklich ein externes Programm erstellen, um PostgreSQL zu einer Aktion zu veranlassen?
Postgres hat leider keinen eingebauten Scheduler so Oracles dbms_scheduler.
Es gibt aber mehrere Extensions die das nachrüsten, z.B. diese hier https://github.com/citusdata/pg_cron/

Re: Mit PG auf Oracle-View zugreifen

Verfasst: Do 20. Okt 2016, 17:03
von pgSteffen
Hallo,
vielen Dank für die Antworten.

Ich habe mir als ersten Schritt jetzt folgendes überlegt:
Mein GIS (welches auf PG zugreift) lasse ich beim Start einen Datensatz in eine PG-Tabelle schreiben. Dieser Insert löst dann den Trigger aus, welcher einen Oracle-PG Abgleich durchführt.
Werde außerdem versuchen nach dem gleichen Prinzip einen Knopf im GIS einzubauen, welcher dann die Aktion sofort auslöst.

Gruß Steffen

Re: Mit PG auf Oracle-View zugreifen

Verfasst: Do 20. Okt 2016, 17:16
von akretschmer
Btw.: PostgreSQL 9.3.6 (deine Signatur), aktuell ist 9.3.14. Da sind etlich kritische Bugs. Übrigends wird 9.3.15 (und andere Versionen) demnächst einen weiteren nicht ganz unkritischen Bug beheben:

http://blog.2ndquadrant.com/postgresql- ... guarantee/