Zuerst den Zugriff fachlich einordnen
Ein nächtlicher Lesezugriff für Reporting stellt andere Anforderungen als ein synchroner Buchungsvorgang über zwei Systeme. Die passende Alternative folgt deshalb aus Datenfluss, Aktualität, Transaktionen und Ausfallverhalten.
Beginnen Sie mit einer Zuordnung: Wer greift auf welches entfernte Objekt zu, warum und wie häufig? Ein vorhandener Link beweist noch nicht, dass er genutzt wird. Umgekehrt können dynamisch zusammengesetzte SQL-Anweisungen im statischen Abhängigkeitsbild fehlen.
Oracle-Verbindungen inventarisieren
SELECT owner, db_link, username, host
FROM all_db_links
ORDER BY owner, db_link;Die Sicht ist berechtigungsabhängig. Behandeln Sie Hostnamen und technische Benutzernamen als interne Architekturinformationen. Ergänzen Sie den Befund um SQL-Aufrufer, gelesene oder geschriebene Objekte und fachliche Anforderungen.
- Read-only oder schreibender Zugriff?
- Synchron benötigte oder zeitversetzt nutzbare Daten?
- Wie verhalten sich Aufrufer bei Timeout oder Verbindungsabbruch?
- Müssen mehrere Änderungen als eine fachliche Einheit behandelt werden?
Alternativen nach Zugriffsmuster auswählen
Föderierter Zugriff: postgres_fdw ermöglicht Zugriffe auf andere PostgreSQL-Server. Es ist kein Oracle-Treiber. Für einen verbleibenden Oracle-Server wäre ein geeigneter Oracle-FDW samt Plattformunterstützung gesondert zu prüfen.
Datenkopie oder Replikation: Für Reporting kann eine lokal verfügbare Datenmenge geeigneter sein. Dafür müssen erlaubte Verzögerung, Initialbeladung, Änderungsübernahme und Abgleich definiert werden.
Service-Schnittstelle: Fachliche Schreibvorgänge können über eine Anwendungsschnittstelle entkoppelt werden. Das verändert Fehlerbehandlung und Transaktionsgrenzen und ist deshalb eine Architekturentscheidung, kein bloßer SQL-Ersatz.
Beispielszenario: Reporting entkoppeln
Angenommen, ein Tagesreport benötigt den Bestand des Vortags aus einem Fremdsystem. Dann lässt sich prüfen, ob ein kontrollierter Import in eine lokale Reporting-Tabelle die Anforderung erfüllt. Der Import erhält eine Laufkennung, einen Datenstand und einen Abgleichnachweis.
Der Report darf erst freigegeben werden, wenn der Import vollständig ist. Bei einem ausgefallenen Lauf muss sichtbar sein, dass der Datenstand veraltet ist. Die Architektur gewinnt nichts, wenn eine entfernte Abhängigkeit nur durch eine unbemerkte Datenlücke ersetzt wird.
Eine funktionierende Remote-Abfrage beweist keine Gleichwertigkeit bei verteilten Schreibvorgängen. Commit-, Rollback- und Teilausfallverhalten müssen separat nachgewiesen werden.
Die Alternative mit Fehlerfällen abnehmen
- Latenz und Datenvolumen unter realistischer Last messen.
- Ergebnisse anhand fachlicher Kontrollsummen oder Vergleichsregeln abgleichen.
- Timeouts, Rechteentzug und Netzunterbrechungen testen.
- Bei Datenkopien maximal zulässiges Datenalter sichtbar machen.
- Bei Schreibvorgängen Duplikate, Wiederanläufe und Teilverarbeitung ausdrücklich prüfen.
Die Migrationsplanung sollte Links nach gemeinsamem Datenfluss gruppieren. So können notwendige Systemgrenzen und Migrationswellen vor dem eigentlichen Umbau erkennbar werden.
Originalquellen & Vertiefung
Die Empfehlungen sind eine fachliche Einordnung. Konkrete Optionen hängen von Quell- und Zielversion, Rechten und Betriebsmodell ab.