
Ist es besser, eine einzelne Instanz mit vielen Datenbanken zu haben oder die Datenbanken auf mehrere Instanzen zu verteilen?
Antwort1
Ich würde eine Instanz anstelle mehrerer Instanzen auf derselben Maschine empfehlen, es sei denn, Sie versuchen, ein sehr spezielles Problem zu lösen. Dies vereinfacht die Serververwaltung und verbraucht weniger Ressourcen für den Overhead.
Eine sehr gute Regel für die Systemadministration ist dieselbe Regel, die auch beim Programmieren funktioniert hat oder funktioniert hat, als ich das noch gemacht habe: Machen Sie die Dinge so komplex, wie sie sein müssen, um das Problem richtig zu lösen, nicht mehr und nicht weniger. Mehrere Instanzen machen die Dinge normalerweise komplexer als eine Instanz mit mehreren Datenbanken.
Wenn Sie Dinge trennen müssen, um sie zu sichern, würde ich die Installation mehrerer Server vorschlagen (Sie können hier auf einer physischen Box virtualisieren), da ich nicht sicher bin, ob ich verschiedene Instanzen auf einer Box als Sicherheitsgrenze betrachten würde.
Antwort2
Ich gehe von SQL Server aus, denn das ist, was ich kenne ...
Ich empfehle, sie in einer einzigen Instanz zu belassen.
Dies ermöglicht eine höhere Leistung beim Zugriff auf Daten über Datenbanken hinweg (d. h. Sie müssen von Datenbank A aus etwas von Datenbank B abrufen). Wenn es sich um separate Instanzen handelt, müsste die Kommunikation über verknüpfte Server erfolgen, indem Named Pipes oder Ähnliches verwendet werden. Innerhalb einer einzelnen Instanz können Sie direkt auf alle Datenbanken zugreifen (vorbehaltlich Sicherheitseinschränkungen).
Wenn man sie alle zusammenlegt, besteht die Gefahr, dass sie einem einzelnen Ausfallpunkt ausgesetzt sind, aber ich finde, dass SQL Server selbst ziemlich robust ist. Die gesamte Maschine könnte ausfallen (und alle Instanzen zum Erliegen bringen), aber ich habe noch keine Ausfälle gesehen, die eine Anordnung mit einer einzelnen Instanz in dieser Hinsicht vorzuziehen machen würden.
Da Sie den Speicher bis auf Dateiebene verwalten können, hilft eine Aufteilung in mehrere Instanzen nicht weiter.
Sie sollten über die Sicherheitsauswirkungen nachdenken, wenn Sie Opfer eines SQL-Injection-Angriffs werden (wofür es keine Entschuldigung gibt, da es so einfach ist, dies zu verhindern!). Wenn Sie jedoch verknüpfte Server zwischen den Instanzen haben, erhalten Sie keinen wirklich besseren Schutz.
Antwort3
Unabhängig davon, um welchen SQL-Server es sich handelt, würde ich grundsätzlich alle Datenbanken nach Möglichkeit unter einer Instanz ausführen, und zwar aus all den Gründen, die bereits von anderen genannt wurden. Wenn Sie außerdem an den Punkt kommen, an dem die eine Instanz die Last nicht mehr gut bewältigt, ist es an der Zeit, eine weitere Maschine hinzuzufügen, nicht eine weitere Instanz. Die einzigen Ausnahmen, die mir einfallen, sind Anwendungen, die nur mit ihrer eigenen Instanz ausgeführt werden. Natürlich sollte man solche Software am besten vermeiden oder wenn möglich auf einer anderen Maschine installieren.
Antwort4
Aus Speichersicht (wiederum unter der Annahme eines MS SQL Servers) führen mehrere Datenbanken innerhalb einer einzigen Instanz im Allgemeinen zu einer effizienteren Nutzung.
Wir führen mehrere Instanzen aus, wenn dies für eine Standardanwendung erforderlich ist. Bei Sachen, die wir entwickeln, werfen wir alles in eine einzige Instanz.