Hallo Jürgen,
mindestens MS SQL Server bietet verschiedene Möglichkeiten, sich mit anderen Datenbanken, auch heterogen zu synchronisieren. Das Feature heisst "Replikation".
So wie ich dich verstanden habe, willst du sicherstellen, dass DB 2 (MS SQL) kontinuierlich an DB 1 (Oracle) Daten liefert? Je nach Version und Edition wird Oracle als Ziel (Subscriber) unterstützt. Wenn dem dann so ist, kannst du auf dem MS SQL Server eine "Publikation" einrichten, welche die entsprechenden "Artikel" (Tabellen/subsets) enthält. MS SQL kennt darüber hinaus mehrere Arten der Replikation:
- Snapshot: es wird ein Schnappschuss der gesamten Daten beim Publisher gemacht und zum Subscriber geschickt und dort alles überschrieben
- Transaktional: es wird jede Transaktion an das Ziel weiter gereicht, das verlängert u.U. die eigentliche Transaktion (Schreibvorgang)
- Merge: es wird Datensatzweise repliziert, ein Distributor managt anhand von "Versionen" der Datensätze was in welche Richtung aktualisiert wird, !! das ist für SQL 2000 die einzige bi-direktionale Replikation
Schau dir die Online-Hilfe von MS SQL an, wie Replikation implementiert wird, kaufe notfalls einen fähigen Consultant für das Thema ein, der nicht erstmal beim Urschleim anfängt :)
Alternative 2: evt hat Oracle ebenso ein Feature? kann ich nicht sagen im Moment (zu wenig Praxis damit, welche Version wird benutzt?)
Alternative 3: Oracle kann man über Linked Servers und den installierten Oracle Client / OLEDB Provider direkt in MS SQL Queries verwenden. Dazu muss die Oracle Instanz als Linked Server registriert werden, dann kannst du den Oracle Server über das Schema Server.Tablespace.Table in MS SQL Queries verwenden. Also kannst du dann Queries schreiben, die die Synchronisation von Hand vornehmen mittels CRUD nach ANSI-92 Standard (da sollte es die wenigstens Interoperabilitätsprobleme geben). Das Query oder die kannst du mittels SQL Agent auf dem MS SQL Server regelmässig als Job durchführen lassen.
Alternative 4: du programmierst obiges in datenbankunabhängigen Code (C++, Java, .Net)
Du solltest noch wissen, dass es unter Umständen zwischen MS SQL und Oracle zu Problemen kommen kann (Memory Leaks, usw.), je nach Konstellation von Oracle Client und MS SQL Service Pack.
Cheers, so long
Frank