mk-prg-net \ ms-sql \instances-databases

Serverinstanzen

Wurde das SQL- Server Softwarepaket auf einem System (= physischer Computer oder VM) installiert, dann können beliebig viele Serverinstanzen eingerichtet werden. Eine Serverinstanz ist ein Host für wiederum beliebig viele Datenbanken (System/Benutzer). Folgendes Bild veranschaulicht die Zusammenhänge:

UNC Namen für Serverinstanzen

Die einzelnen Serverinstanzen können über Datenbankclients wie das SSMS angesteuert werden, indem eine Datenbankverbindung aufgebaut wird. Die Datenbankverbindungen werden über sogenannte Verbindungszeichenfolgen (engl.: ConnectionString) konfiguriert wie folgende:

Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=KeplerDB;Data Source=Werk12\SQL2012dev

In einer solchen Verbindungszeichenfolge wird der Datenbankserver durch einen Namen, welcher der Universal Naming Convention (kurz: UNC) folgt, definiert. Im Beispiel hier:

Data Source=Werk12\SQL2012dev

Ein UNC Name für eine SQL- Serverinstanz besteht dabei aus zwei Teilen:

<Systemname>\<Instanzname>

Beim Zugriff über Domänengrenzen hinweg ist zusätzlich der Domäne- Name anzugeben:

\\<domain-name>\<Systemname>\<Instanzname>

Der Systemname entspricht dabei dem Name des Host- Systems (cmd> hostname) in der Arbeitsgruppe oder Domäne.

Soll die Verbindung über einen ausgewählten TCP- Endpunkt erfolgen, dann kann im UNC- Name auf das TCP- Protokoll mittels des Präfixes tcp: eingeschränkt werden. Die Portnummer wird mittels Komma an den Systemname angehangen:

tcp:<Systemname>,<Portnummer>\<Instanzname>
z.B. tcp:Werk12,12345\SQL2012dev

Wurde mit dem SQL- Server Installationsprogramm eine Standardinstanz eingerichtet, dann ist sie unbenannt. Sie wird mit einem UNC- Namen == Systemnamen adressiert. Für das System Werk12 z.B. einfach

Werk12

Wird mit einem Client auf die Standardinstanz zugegriffen, der auf dem gleichen System läuft wie der Server, dann kann der Systemnamen durch den Punkt ersetzt werden

.

Soll auf einem System neben der Standardinstanz weitere eingerichtet werden, dann sind sie bei der Installation zu benennen. Die vergebenen Namen dienen dann beim Adressieren in der Verbindungszeichenfolge zur Identifizierung der Serverinstanz. Wurde z.B. auf dem System Werk12 eine Instanz mit dem Name SQL2012dev eingerichtet, dann lautet der UNC:

Werk12\SQL2012dev

Wird der Client auf dem gleichen System gestartet, auf dem auch die Serverinstanz läuft, dann kann der UNC vereinfacht werden zu

.\SQL2012dev

Die Verbindungszeichenfolge zu einem Server kann man wie folgt ermitteln:

  1. neue Textdokument auf dem Desktop anlegen (Endung .txt)
  2. Endung von Textdokument umbenennen in .udl
  3. Doppleklick auf udl- Dokument. Über den sich öffnenden Assistenten den UNC- Name für den Server und die Datenbank auswählen.
  4. Assistenten schließen
  5. Endung der udl- Datei in .txt zurückbenennen
  6. txt- Datei mit Texteditor öffnen und Verbindungszeichenfolge ablesen