3 Stimmen

Was ist der beste Ansatz für ein entkoppeltes Datenbankdesign im Hinblick auf die gemeinsame Nutzung von Daten?

Ich habe eine Reihe von Oracle-Datenbanken, die auf die Daten der anderen zugreifen müssen. Die effizienteste Art, dies zu tun, ist die Verwendung von Datenbankverknüpfungen - wenn ich ein paar Datenbankverknüpfungen einrichte, kann ich mit einem Minimum an Aufwand Daten von A nach B bringen. Das Problem für mich ist, dass man am Ende ein eng gekoppeltes Design hat, und wenn eine Datenbank ausfällt, können die gekoppelten Datenbanken mitgerissen werden (oder vielleicht ein Teil einer Anwendung auf diesen Datenbanken).

Welche alternativen Ansätze haben Sie für die gemeinsame Nutzung von Daten zwischen Oracle-Datenbanken ausprobiert?

Update nach ein paar Antworten...

Ich dachte nicht so sehr an eine Replikation, sondern eher an den Zugriff auf "Stammdaten". Wenn ich zum Beispiel eine zentrale Datenbank mit Währungsumrechnungskursen habe und einen Kurs in eine separate Datenbank (Anwendung) ziehen möchte. Für solch einen kleinen Datensatz würde der Vorschlag von igor-db mit materialisierten Ansichten über DB-Links wunderbar funktionieren. Wenn Sie jedoch dynamisch Stichproben aus einem sehr großen Datensatz ziehen, wird die Option der lokalen Zwischenspeicherung immer schwieriger. Für welche Optionen würden Sie sich unter diesen Umständen entscheiden? Ich habe über einen XML-Dienst nachgedacht, aber tuinstoel (in einem Kommentar zur Antwort von le dorfier) hat zu Recht den damit verbundenen Overhead in Frage gestellt.

Zusammenfassung der Antworten...

Im Großen und Ganzen denke ich, dass igor-db am nächsten dran ist, weshalb ich diese Antwort akzeptiert habe, aber ich dachte, ich füge noch etwas hinzu, um einige der anderen Antworten hervorzuheben.

Für meine Zwecke, bei denen ich nur die Datenreplikation betrachte, sieht es so aus, als ob die Oracle BASIC-Replikation (im Gegensatz zur ADVANCED-Replikation) die richtige für mich ist. Die Verwendung von materialisierten Ansichtsprotokollen auf der Master-Site und materialisierten Ansichten auf der Snapshot-Site scheint eine hervorragende Lösung zu sein.

Wo dies nicht möglich ist, z. B. wenn das Datenvolumen eine vollständige Tabellenreplikation unmöglich macht, scheint eine Messaging-Lösung die geeignetste Oracle-Lösung zu sein. Oracle Advanced Queueing scheint der schnellste und einfachste Weg zu sein, eine Messaging-Lösung einzurichten.

Der am wenigsten zu bevorzugende Ansatz scheint die Entwicklung eigener XML-Webdienste zu sein, allerdings nur dann, wenn die relative Einfachheit von Advanced Queueing nicht in Frage kommt.

0voto

James Punkte 3802

Welche Art von Unmittelbarkeit brauchen Sie und wie viel Bidirektionalität? Wenn die Daten etwas älter sind und aus einer "Hauptquelle" gezogen werden können, erstellen Sie eine Reihe einfacher ETL-Skripte, die nach einem Zeitplan ausgeführt werden, um die Daten aus der "Quelldatenbank" in die anderen Datenbanken zu ziehen.

Sie können dann die Struktur der Daten genauer auf die Bedürfnisse der Kundendatenbank(en) abstimmen und Sie können die Struktur der Quelldaten ändern, bis Sie blau anlaufen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X