Wo ich arbeite, haben wir einen ESBmit denen 6 verschiedene anwendungen (oder sollte ich sagen "endpunkte") verbunden sind. Diese 6 Anwendungen arbeiten mit 3 verschiedenen Oracle-Schemas auf 2 Datenbankinstanzen. Einige dieser Anwendungen existieren im selben Schema, nicht weil sie verwandt sind, sondern weil unsere Datenbankinfrastruktur von einem externen Anbieter verwaltet wird und das Abrufen eines neuen Schemas nur für immer dauert (wir haben natürlich auch keinen DBA-Zugriff) Es dauert wirklich so lange, bis wir "vorübergehend" daran gedacht haben, ein vorhandenes Schema wiederzuverwenden, um die Entwicklung fortsetzen zu können. Um die "Trennung" von Daten zu erzwingen, werden Tabellennamen vorangestellt, z. B. "CST_" für den Kunden. Außerdem müssen wir mit einem Schema arbeiten, das wir aus triftigen Gründen nicht absolut ändern können ... Es ist seltsam, ich weiß. Natürlich, wie es immer passiert, "vorübergehend"
Unsere verschiedenen Anwendungen stellen eine Verbindung zu ihrem jeweiligen Datenbankschema her und arbeiten mit ihren eigenen PL / SQL-Paketen. Es ist uns absolut untersagt, direkt mit Tabellen / Daten zu interagieren, die sich außerhalb unserer Anwendungsdomäne befinden.
Wenn eine der mit dem ESB verbundenen Anwendungen Informationen außerhalb ihrer Domäne benötigt, ruft sie den zugehörigen Dienst auf dem ESB auf, um die Daten abzurufen, auch wenn diese Informationen tatsächlich im selben Schema vorliegen und theoretisch nur eine kleine Join-Anweisung erforderlich ist eine der SQL-Anforderungen .
Wir tun dies, um unsere Anwendungsdomäne in verschiedene Schemas / Datenbanken aufteilen zu können und um sicherzustellen, dass die Dienste auf dem ESB in diesem Fall weiterhin ordnungsgemäß funktionieren (es ist Weihnachten, wir schnüren uns die Finger).
Nun, von außen mag das seltsam und schrecklich aussehen, aber es gibt Gründe dafür, und ich wollte nur diese konkrete Erfahrung teilen, um Ihnen zu zeigen, dass eine oder mehrere Datenbanken nicht so wichtig sind. Warten Sie, es ist! Aus vielen Gründen (+1 für Scott Whitlock, siehe letzter Absatz über Backup und so, dass Sie in Schwierigkeiten geraten). Aber es ist genauso wichtig, dass Ihre SOA-Services richtig entworfen werden, zumindest ist dies meine Meinung und ich bin kein DBA. Letztendlich gehören alle Ihre Datenbanken zu Ihrem "Enterprise Data Warehouse", oder?
Schließlich werde ich den letzten Absatz von Scott Whitlock nicht umformulieren, insbesondere diesbezüglich
Ich würde Tabellen nicht einfach aus Gründen der Trennung von Bedenken in verschiedene physische Datenbanken aufteilen.
ist wirklich super wichtig. Tu es nicht, wenn es keinen Grund gibt.