Was sind benannte und Standardinstanzen? Was ist / sind die Unterschiede zwischen ihnen? Warum werden sie verwendet?
Was sind benannte und Standardinstanzen? Was ist / sind die Unterschiede zwischen ihnen? Warum werden sie verwendet?
Antworten:
Laut Microsoft bezüglich named vs default
Clientanwendungen stellen eine Verbindung zu einer Instanz von Microsoft SQL Server 2005 her, um mit einer SQL Server-Datenbank zu arbeiten. Jede SQL Server-Instanz besteht aus einer Reihe von Diensten, für die eindeutige Einstellungen festgelegt werden können. Die Verzeichnisstruktur, die Registrierungsstruktur und der Dienstname spiegeln alle den spezifischen Instanznamen wider, den Sie beim Setup angegeben haben.
Eine Instanz ist entweder die Standardinstanz ohne Namen oder eine benannte Instanz. Wenn SQL Server 2005 in der Standardinstanz installiert ist, muss kein Client den Namen der Instanz angeben, um eine Verbindung herzustellen. Der Client muss nur den Servernamen kennen.
Eine benannte Instanz wird durch den Netzwerknamen des Computers sowie den Instanznamen identifiziert, den Sie während der Installation angegeben haben. Der Client muss beim Herstellen der Verbindung sowohl den Servernamen als auch den Instanznamen angeben.
Standardmäßig wird SQL Server in der Standardinstanz installiert, sofern Sie keinen Instanznamen angeben. SQL Server Express wird jedoch immer in einer benannten Instanz installiert, es sei denn, Sie erzwingen beim Setup eine Standardinstallation.
Sie können auch nur eine Standardinstanz (unbenannte Instanz) installieren, aber Sie können viele benannte Instanzen installieren.
Viele Software von Drittanbietern verwenden normalerweise eine benannte Standardinstanz, obwohl sie diese möglicherweise nicht erwähnen. Der Grund ist aus den obigen Antworten ersichtlich. Standardversionen installieren standardmäßig eine unbenannte Instanz, während die Express-Version standardmäßig eine benannte Instanz installiert.
Es ist wichtig, den Unterschied aus dieser Perspektive zu kennen, denn wenn Sie zwei oder drei DB-Server ausführen, können Sie möglicherweise nie eine Verbindung mit der richtigen Version herstellen. Da die Software von Drittanbietern nach der Standardinstanz sucht, während Sie glauben, dass es sich um die SQLEXPRESS-Instanz handelt, zu der eine Verbindung hergestellt werden soll. Dies kann Ihre Fehlerbehebungszeit erheblich verlängern, wenn Sie nicht wissen, wie Sie eine Verbindung zu einer benannten oder einer unbenannten Instanz herstellen können.
Wenn Sie also eine Verbindung mit der benannten oder der nicht benannten Version herstellen möchten, befolgen Sie die folgenden Richtlinien.
MY-MACHINE-NAME\SQLEXPRESS /* named version - correct */
MY-MACHINE-NAME /* unnamed version (default instance) - correct */
MY-MACHINE-NAME\MSSQLSERVER /* unnamed version (default instance) - Wrong */
Beachten Sie, dass eine Standardinstanz, obwohl sie einen Namen hat, nicht über ihren Namen referenziert werden kann!
Zusätzlich zu der Erklärung, die Brett G veröffentlicht hat, gibt es hier einige Gründe, warum man sie verwendet:
Alle möglichen Gründe, sie zu benutzen. Das heißt aber nicht, dass es immer eine gute Idee ist: P
Ein weiterer praktischer Unterschied: Mit SQL2005 und höher können Sie 16 oder mehr Instanzen pro System installieren. Da die Lizenzierung pro physischer CPU und pro Installation von SQL Server (und nicht pro Instanz!) Erfolgt, können Sie bis zu 16 Instanzen von SQL Server 2005 ausführen, ohne einen Cent mehr zu zahlen als zuvor.
Angesichts der Tatsache, dass CPU-Lizenzen bis zu 15000 US-Dollar (!) Pro Socket kosten können, ist dies ein Muss für große Installationen mit beispielsweise 16 Kernen und 256 GB Arbeitsspeicher.
Einer der besten Gründe ist die Trennung von Datenbanken. Wenn Sie eine eigene Anwendung entwickeln und SQL Express damit verpacken, ist es sinnvoll, diese in einer eigenen Instanz zu installieren. Außerdem kann der Benutzer eine vorhandene SQL-Installation angeben, wenn er dies wünscht.
Wenn Sie über eine Datenbank verfügen, auf die niemand Zugriff haben soll, kann diese mit einer sehr eingeschränkten Sicherheitsberechtigung in eine eigene Instanz verschoben werden. Angenommen, dies ist Ihre Produktdatenbank, die dann auf demselben Server ** in die Berichtsdatenbank repliziert wird, die nur für Benutzer lesbar ist. Es ist weniger wahrscheinlich, dass Benutzer (Administrator) versehentlich auf die Produktionsdatenbank zugreifen, da nur wenige Benutzer die Sicherheitsgruppen in der Produktionsinstanz aktualisieren können.
** Eine gute Praxis besagt, dass der Berichtsserver ein separater Computer sein soll, aber ich mache dies nur als Beispiel.