2012-03-28 7 views
2

Ich habe 2 Oracle 10.2.0.4 Server, einen in unserem internen Intranet-Netzwerk und einen anderen in unserem DMZ-Netzwerk für den öffentlichen Zugriff. Aus Sicherheitsgründen kann ich keine bidirektionalen Firewall-Regeln öffnen, ich kann nur eine DB-Verbindung aus dem Intranet -> DMZ herstellen, aber nicht die andere Richtung.Oracle DB (Intranet) -> (DMZ) Datenreplikation durch eine unidirektionale Firewall

Meine Anforderung besteht darin, Tabellen in einem geplanten Intervall zwischen den beiden Datenbanken synchronisiert zu halten. Mein erster Plan war, materialisierte Ansichten zu verwenden, aber diese Technologie erfordert bidirektionale Datenbankverbindungen, die ich nicht ausführen kann.

Jeder hat irgendwelche Vorschläge, wie dies zu erreichen wäre sehr geschätzt. Ich versuche, mich von Produkten von Drittanbietern fernzuhalten, da ich der Meinung bin, dass es dort eine einfache Lösung geben muss, bin aber froh, irgendwelche Einsichten zu hören.

+0

Ändern Sie Daten in beiden Datenbanken, sodass die Replikation bidirektional sein muss? Oder ist eine der beiden eine schreibgeschützte Kopie der anderen? –

+0

Idealerweise sollten bidirektionale Updates für die Anwendungsanforderungen verfügbar sein. Obwohl, wenn Sie Gedanken über eine "Nur-Lese" -Methode haben, würde mich das auch interessieren. Was wir gerade für eine schreibgeschützte Lösung denken, ist eine Art Datenspeicher (transportabler Tabellenbereich) auf einem zugeordneten Netzlaufwerk und dann ein geplanter Prozess zum Hochladen der neuen Daten. Das Problem hier ist, dass dies eine "dumme" Aktualisierung ist, d. H. Die gesamte Tabelle wird gegenüber den Übertragungsdeltas seit der letzten Aktualisierung überschrieben. – BJH

+0

Ich bin mir nicht sicher, ob ich folge. Ändern Sie Daten in beiden Datenbanken? Und müssen die Änderungen in beide Richtungen fließen? Oder meinst du, das wäre schön zu haben, aber unnötig und Daten müssen nur in eine Richtung fließen. Wenn ja, in welche Richtung? –

Antwort

0

So um meine Frage zu schließen. Am Ende haben wir Streams für den 1-Richtungsdaten-Push verwendet. Zum Einrichten von Streams benötigen Sie einen anfänglichen bidirektionalen Netzwerkverkehr. Dies ist nicht über die DMZ möglich. Daher richten Sie die Quell-DB (A) mit Streams ein, die auf einen Dummy-DB (B) repliziert werden, der mit dem Ziel-DB (C) identisch ist. Die Dummy-Datenbank befindet sich im selben Netzwerk wie A. Sobald die Datenströme zwischen den beiden bestehen, aktualisieren Sie die Host-Datei auf dem Quell-DB-Server so, dass sie stattdessen von B nach C zeigt. Dies hat die von mir gesuchte Replikation erreicht.