Jump to content

Abfrage über mehrere Instanzen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Forum,

 

ich habe ein Problem und finde keine Lösung.

 

Auf einem SQL-Server (sinnigerweise mit dem Namen "SQL") sind zwei Instanzen eingerichtet. Einmal "SQL" und einmal "HR".

 

Ich muss nun in einer Datenbank auf der Instanz "SQL" einen VIEW erstellen, der mit Daten aus einer anderen Datenbank in der Instanz "HR" bestückt werden soll. Ich bekomme es aber nicht hin. Wie frage ich von der einen Instanz eine Tabell der anderen Instanz ab?

Berechtigungen sind nicht das Problem, in beiden Instanzen melde ich mich als SA an und mit dem User werden auch die Abfragen (zumächst) ausgeführt.

 

Bin für jeden Hinweis sehr dankbar.
 

Link zu diesem Kommentar

Moin,

 

das ist ein Problem, wenn man Instanzen einrichtet, obwohl man sie gar nicht braucht. In den meisten Situationen wäre das gar nicht nötig, sondern man könnte einfach mehrere Datenbanken in derselben Instanz nutzen. 

 

Eine andere Instanz ist aus Sicht des SQL Servers ein separater Server. Wenn ich nicht ganz falsch liege, müsstest du diese also so ansprechen wie einen Remote-Server. Siehe z.B. diese Fundstellen:

https://duckduckgo.com/?q=sql+server+query+across+instances&ia=web

 

Parallel würde ich aber prüfen, ob es nicht schlauer wäre, die Dinge innerhalb derselben Instanz abzuwickeln.

 

Gruß, Nils

 

Link zu diesem Kommentar

Eine eigene Instanz erfordert eigene LUNs bzw. Disks und bringt i.d.R. keine Vorteile gegenüber einem Multi-DB-SQL-Server/-Cluster.

Ebenso bringt es keine nennenswerten Sicherheitsvorteile.

 

Sharepoint Datenbanken sind hier (leider) eine Ausnahme.

Ansonsten, falls ein Software-Hersteller eine eigene Instanz anfordert, schriftlich nachfragen, warum die Software das erfordert.

Meistens kommt dann nichts mehr ...

Link zu diesem Kommentar
vor 30 Minuten schrieb Lian:

Eine eigene Instanz erfordert eigene LUNs bzw. Disks

...wenn sie geclustert ist.

 

Mir sind bisher vier stichhaltige Gründe für mehrere Instanzen begegnet:

  1. Mehrere Anwendungen fordern unterschiedliche Collations auf Server-Ebene (System Center-Produkte zum Beispiel), man möchte sie aber auf dem gleichen SQL-Server fahren, beispielsweise weil er physisch ist
  2. Berechtigungsvergabe per Instanz ist um Welten einfacher einzurichten als RBAC innerhalb einer Instanz
  3. Man möchte oder muss Datenbanken eine bestimmte Menge an RAM und/oder eine bestimmte Anzahl an CPU-Kernen garantieren können
  4. Man möchte in einem Cluster die Leistung aller Knoten im Regelbetrieb auch wirklich verbrauchen (Aktiv/Aktiv).
Link zu diesem Kommentar
vor 39 Minuten schrieb cj_berlin:

...wenn sie geclustert ist.

 

Mir sind bisher vier stichhaltige Gründe für mehrere Instanzen begegnet:

  1. Mehrere Anwendungen fordern unterschiedliche Collations auf Server-Ebene (System Center-Produkte zum Beispiel), man möchte sie aber auf dem gleichen SQL-Server fahren, beispielsweise weil er physisch ist
  2. Berechtigungsvergabe per Instanz ist um Welten einfacher einzurichten als RBAC innerhalb einer Instanz
  3. Man möchte oder muss Datenbanken eine bestimmte Menge an RAM und/oder eine bestimmte Anzahl an CPU-Kernen garantieren können
  4. Man möchte in einem Cluster die Leistung aller Knoten im Regelbetrieb auch wirklich verbrauchen (Aktiv/Aktiv).

 

2. Einfacher ist nicht unbedingt stichhaltig

3. Dafür gibt es den https://docs.microsoft.com/en-us/sql/relational-databases/resource-governor/resource-governor?view=sql-server-ver16

4. Je nach Cluster (Always On AG) geht es auch aktiv/aktiv ohne Instanzen sondern auf DB Ebene/Gruppen Ebene.

Link zu diesem Kommentar
vor einer Stunde schrieb Lian:

Sollte man sowieso nicht in der Form planen, wenn auch nachvollziehbar.

N+1 min

OK, also 7 Knoten = 6 aktive.

vor 1 Stunde schrieb Dukel:

 

2. Einfacher ist nicht unbedingt stichhaltig

3. Dafür gibt es den https://docs.microsoft.com/en-us/sql/relational-databases/resource-governor/resource-governor?view=sql-server-ver16

4. Je nach Cluster (Always On AG) geht es auch aktiv/aktiv ohne Instanzen sondern auf DB Ebene/Gruppen Ebene.

Was ist auf dieser Welt schon unbedingt. Aber wenn ich an 80% der Installationen denke, die ich so kenne, gibt es das folgende RBAC-Konzept:

  • Es gibt nur die Rollen "root" und "nix", also "public".
  • Pro Fachbereich müssen diese Rollen separaten Gruppen zugewiesen werden.

Und ein solches "RBAC" ist pro Instanz mit ein paar Klicks eingerichtet - und produziert auch keinen Configuration Drift mit der Zeit.

 

Ressource Governor ist ein Enterprise-Only Feature. Ich musste die Editionsdiskussion unzählige Male führen, aber nie war dies das Feature, das den Ausschlag für Enterprise gegeben hätte.

 

AG ist ebenfalls Enterprise-Only. Und bei großen Datenbanken würde sich, um beim Beispiel 7 Knoten zu bleiben, der Storage-Bedarf versiebenfachen. Das ist nicht immer gewollt.

bearbeitet von cj_berlin
Link zu diesem Kommentar
vor 1 Stunde schrieb cj_berlin:

Man möchte in einem Cluster die Leistung aller Knoten im Regelbetrieb auch wirklich verbrauchen (Aktiv/Aktiv).

 

vor 24 Minuten schrieb cj_berlin:

OK, also 7 Knoten = 6 aktive.

 

Solange man nicht die Leistung aller Knoten verbraucht wird, klar. ;-)

Aber wir schweifen ab.

 

@Sugar432 Wie Nils sagte: Die zweite Instanz ansprechen, wie einen Remote-Server oder eben überlegen auf einen Multi-DB-Server zu schwenken. Aus Sicht der Verwaltung (Handling, SQL Agent, Backup etc.) meine ich, dass eine Instanz einfacher zu administrieren ist. 

Link zu diesem Kommentar

BTW: Auf einem SQL Server können Datenbanken auch gemischt in einem älteren SQL Server Modus bzw. Kompatibilitäts-Level laufen:
https://madafa.de/blog/sql-server-die-bedeutsamkeit-des-datenbanken-kompatibilitaetslevels

https://www.sqlskills.com/blogs/glenn/database-compatibility-level-in-sql-server/

https://docs.microsoft.com/en-us/sql/relational-databases/databases/view-or-change-the-compatibility-level-of-a-database
Ich denke keiner hier will Dich zu einer größeren Aktion ohne Notwendigkeit überreden... ;-)

 

Link zu diesem Kommentar
vor einer Stunde schrieb Sugar432:

Die Umgebung arbeitet auch mit unterschiedlichen SQL-Server-Versionen (Modi). Meine Frage war lediglich, wie ich Tabellen einer anderen Datenbank in einer anderen Instanz abfragen kann. 

Schau Dich Mal zum Thema linked servers um, z.B. hier: 

https://docs.microsoft.com/en-us/sql/relational-databases/linked-servers/create-linked-servers-sql-server-database-engine

 

https://www.sqlshack.com/how-to-create-and-configure-a-linked-server-in-sql-server-management-studio/

Link zu diesem Kommentar

@NilsK: Mit den Ergebnissen deiner Suche kann (konnte) ich nur wenig anfangen - denn ich habe vor meiner Anfrage hier auch "gegoogelt"!  Der Zugriif auf eine andere Instanz auf dem selben SQL Server über "linked Server" mag funktionieren. Es geht aber eben auch einfacher. 

Von daher war dein Hinweis schon hilfreich, aber nicht zielführend. Wenn ich nochmal einen Oberlehrer-Kommentar haben möchte, darf ich dann auch dich zukommen?

Gruß

Sugar

 

  • Verwirrend 2
  • Traurig 2
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...