Frage Was sind benannt und Standardinstanz?


Was sind benannt und Standardinstanz? Was ist der Unterschied zwischen ihnen? Warum werden sie benutzt?


32
2017-11-03 01:30


Ursprung




Antworten:


Laut Microsoft bezüglich named vs default

Clientanwendungen stellen eine Verbindung zu einer Instanz von Microsoft SQL Server 2005 her   mit einer SQL Server-Datenbank arbeiten.   Jede SQL Server-Instanz besteht aus   eine eindeutige Reihe von Diensten, die können   habe einzigartige Einstellungen. Das Verzeichnis   Struktur, Registrierungsstruktur und   Service-Name alle spiegeln die spezifischen   Instanzname, den Sie während identifizieren   Konfiguration.

Eine Instanz ist entweder die standardmäßige, unbenannte Instanz oder eine benannte   Beispiel. Wenn SQL Server 2005 in ist   installiert in der Standardinstanz, es   erfordert keine Angabe eines Clients   Der Name der Instanz, die erstellt werden soll   Verbindung. Der Kunde muss nur   kenne den Servernamen.

Eine benannte Instanz wird durch den Netzwerknamen des Computers plus identifiziert   Der von Ihnen angegebene Instanzname   Während der Installation. Der Kunde muss   Geben Sie sowohl den Servernamen als auch den Namen des Servers an   Instanzname beim Verbinden.

Standardmäßig wird SQL Server in der Standardinstanz installiert, es sei denn Sie   Geben Sie einen Instanznamen an. SQL Server   Express wird jedoch immer in einem installiert   benannte Instanz, es sei denn, Sie erzwingen eine   Standardinstallation während der Installation


27
2017-11-03 01:55





Sie können auch nur einen Standard (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 klar aus den obigen Antworten, Standardversionen installiert standardmäßig eine unbenannte Instanz, während Express-Version eine benannte Instanz als Standard installieren.

Es ist wichtig, den Unterschied aus dieser Perspektive zu kennen, denn wenn Sie 2 oder 3 DB-Server betreiben, können Sie sich nie mit der richtigen Version verbinden. Da die Drittanbieter-Software nach der Standardinstanz sucht, während Sie denken, dass es sich um die SQLEXPRESS-Instanz handelt, mit der versucht wird, eine Verbindung herzustellen. Es kann die Zeit für die Fehlerbehebung erheblich erhöhen, wenn Sie nicht wissen, wie Sie eine Verbindung zu einer benannten vs unbenannten Instanz herstellen können.

Verwenden Sie die folgenden Richtlinien, wenn Sie eine Verbindung zu Named oder Unnamed Version herstellen möchten.

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 zwar einen Namen hat, aber nicht anhand ihres Namens referenziert werden kann!


15
2018-03-28 15:06





Zusätzlich zu der Erklärung, die Brett G veröffentlicht hat, gibt es einige Gründe warum sie zu verwenden sind:

  • Sie können verschiedene Instanzen verwenden, die verschiedene Versionen von SQL verwenden (dh Standard mit SQL 2008, benannte Instanz mit SQL 2005).
  • Trennung von Sorgen, sei es etwas mit Ihrer App oder Sicherheit oder was auch immer
  • Verschiedene Entwicklungsumgebungen
  • Unterschiedliche App-Umgebungen (z. B. homegrown vs. Drittanbieter)

Alle möglichen Gründe, sie zu benutzen. Das heißt aber nicht, dass es immer eine gute Idee ist: P


5
2017-11-03 02:19





Noch ein praktischer Unterschied: Mit SQL2005 und höher können Sie 16 oder mehr Instanzen pro System installieren. Seit der Lizenzierung ist pro physischer CPU, pro Installation von SQL Server (und nicht pro Instanz!) bedeutet dies, dass Sie bis zu 16 Instanzen von SQL Server 2005 ausführen können, ohne einen Cent mehr zu zahlen als Sie bereits.

Angesichts der Tatsache, dass CPU-Lizenzen bis zu $ ​​15000 (!) Pro Socket laufen können, ist dies ein Muss für große Installationen mit beispielsweise 16 Kernen und 256 GB Speicher.


4
2018-03-28 15:13





Sie können auch den Speicher begrenzen und die Prozessorauslastung pro Instanz zuweisen. Sie können auch eine Instanz für von einem Anbieter geschriebene Anwendungen erstellen, die Systemadministratorberechtigungen benötigen, damit Sie Ihre anderen Anwendungen nicht gefährden.


1
2017-11-03 04:08





Einer der besten Gründe ist die Trennung von Datenbanken. Wenn Sie eine eigene Anwendung entwickeln und SQL Express damit verpacken, ist es sinnvoll, sie in einer eigenen Instanz zu installieren. Außerdem geben Sie dem Benutzer die Möglichkeit, eine vorhandene SQL-Installation anzugeben, wenn sie dies wünschen.

Wenn Sie eine kritische Datenbank haben, auf die Sie keinen Zugriff haben, kann sie mit einer sehr begrenzten Sicherheitsautorisierung in eine eigene Instanz wechseln. Nehmen wir an, es handelt sich um Ihre Produktions-DB, die dann auf dem gleichen Server in die Berichtsdatenbank repliziert wird **, die nur für Personen lesbar ist. Es ist weniger wahrscheinlich, dass Benutzer trotz eines Benutzerfehlers (admin) Zugriff auf die Produktionsdatenbank erhalten, indem sie einschränken, wer die Sicherheitsgruppen in der Produktionsinstanz tatsächlich nur für wenige Personen aktualisieren kann.

** Gute Praxis sagt, um den Berichtsserver eine separate Maschine zu machen, aber ich mache das nur als Beispiel.


0
2017-11-03 02:35