Verwenden der Startoptionen für den SQL Server-Dienst

Wenn Sie SQL Server installieren, schreibt Setup eine Reihe von Standardstartoptionen in die Microsoft Windows-Registrierung. Sie können die folgenden Startoptionen verwenden, um eine andere master-Datenbankdatei, eine andere Protokolldatei der master-Datenbank oder eine andere Fehlerprotokolldatei anzugeben.

Startoptionen können mithilfe des SQL Server-Konfigurations-Managers festgelegt werden. Weitere Informationen finden Sie unter Vorgehensweise: Konfigurieren von Serverstartoptionen (SQL Server-Konfigurations-Manager).

Standardstartoptionen

Beschreibung

-d master_file_path

Der vollqualifizierte Pfad der master-Datenbankdatei (in der Regel C:\Programme\Microsoft SQL Server\MSSQL.n\MSSQL\Data\master.mdf). Wenn diese Option nicht bereitgestellt wird, werden die vorhandenen Registrierungsparameter verwendet.

-e error_log_path

Der vollqualifizierte Pfad der Fehlerprotokolldatei (in der Regel C:\Programme\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG). Wenn diese Option nicht bereitgestellt wird, werden die vorhandenen Registrierungsparameter verwendet.

-l master_log_path

Der vollqualifizierte Pfad der master-Datenbankdatei (in der Regel C:\Programme\Microsoft SQL Server\MSSQL.n\MSSQL\Data\mastlog.ldf). Wenn diese Option nicht angegeben wird, werden die vorhandenen Registrierungsparameter verwendet.

Sie können die Standardstartoptionen vorübergehend außer Kraft setzen und eine Instanz von SQL Server mithilfe der folgenden zusätzlichen Startoptionen starten.

Sonstige Startoptionen

Beschreibung

-c

Verkürzt die Startzeit, wenn SQL Server an der Eingabeaufforderung gestartet wird. In der Regel wird SQL Server Database Engine (Datenbankmodul) als Dienst gestartet, indem der Dienstkontroll-Manager aufgerufen wird. Da SQL Server Database Engine (Datenbankmodul) nicht als Dienst gestartet wird, wenn die Anwendung an der Eingabeaufforderung gestartet wird, sollten Sie diesen Schritt mithilfe von -c überspringen.

-f

Startet eine SQL Server-Instanz mit Minimalkonfiguration. Dies ist hilfreich, wenn der Server aufgrund der Einstellung eines Konfigurationswerts (z. B. aufgrund von Arbeitsspeichermangel) nicht gestartet werden kann. Wenn Sie SQL Server mit der Minimalkonfiguration starten, wird SQL Server im Einzelbenutzermodus gestartet. Weitere Informationen finden Sie in der nachfolgenden Beschreibung von -m.

-g memory_to_reserve

Gibt in Form einer ganzen Zahl an, wie viele Megabytes (MB) des Arbeitsspeichers SQL Server für Arbeitsspeicherbelegungen innerhalb des SQL Server-Prozesses, jedoch außerhalb des SQL Server-Arbeitspeicherpools übrig lässt. Der Arbeitsspeicher außerhalb des Arbeitsspeicherpools ist der Bereich, der von SQL Server zum Laden von Elementen verwendet wird, z. B. DLL-Dateien von erweiterten gespeicherten Prozeduren, den OLE DB-Anbietern, auf die in verteilten Abfragen verwiesen wird, und Automatisierungsobjekten, auf die in Transact-SQL-Anweisungen verwiesen wird. Die Standardeinstellung ist 256 MB.

Diese Option kann Ihnen helfen, die Speicherbelegung zu optimieren. Dies gilt jedoch nur, wenn der physische Arbeitsspeicher das konfigurierte Limit überschreitet, das vom Betriebssystem für den virtuellen Arbeitsspeicher, der für Anwendungen verfügbar ist, festgelegt wird. Die Verwendung dieser Option ist möglicherweise für Konfigurationen mit sehr viel Arbeitsspeicher geeignet, bei denen die Anforderungen an die Speicherauslastung von SQL Server untypisch sind und der virtuelle Adressraum des SQL Server-Prozesses vollständig verwendet wird. Eine falsche Verwendung dieser Option kann dazu führen, dass eine SQL Server-Instanz nicht gestartet werden kann oder dass Laufzeitfehler auftreten.

Verwenden Sie den Standardwert für den -g-Parameter, es sei denn, das SQL Server-Fehlerprotokoll enthält eine der folgenden Warnungen:

  • "Failed Virtual Allocate Bytes: FAIL_VIRTUAL_RESERVE <größe>"

  • "Failed Virtual Allocate Bytes: FAIL_VIRTUAL_COMMIT <größe>"

Diese Meldungen können darauf hinweisen, dass SQL Server versucht, Teile des SQL Server-Speicherpools freizugeben, um Speicherplatz für Elemente wie DLL-Dateien von erweiterten gespeicherten Prozeduren oder Automatisierungsobjekte zu erhalten. In diesem Fall sollten Sie erwägen, den durch den Schalter -g reservierten Umfang an Arbeitsspeicher zu erhöhen.

Das Verwenden eines Werts, der niedriger als der Standardwert ist, erhöht den Umfang des Arbeitsspeichers, der für den Pufferpool und die Threadstacks zur Verfügung steht; dies bedeutet wiederum möglicherweise eine gewisse Verbesserung der Leistung für arbeitsspeicherintensive Arbeitsauslastungen in Systemen, die nicht viele erweiterte gespeicherte Prozeduren, verteilte Abfragen oder Automatisierungsobjekte verwenden.

-h

Reserviert virtuellen Adressraum für Metadaten zum Hinzufügen von Speicher im laufenden Systembetrieb (Hot Add Memory), wenn AWE mit der 32-Bit-Version von SQL Server aktiviert ist. Die Option ist für die Funktion zum Hinzufügen von Speicher im laufenden Systembetrieb (Hot Add Memory) mit 32-Bit-AWE erforderlich, beansprucht jedoch ungefähr 500 MB an virtuellem Adressraum und erschwert die Optimierung der Speicherbelegung. Für die 64-Bit-Version von SQL Server ist die Option nicht erforderlich. Das Hinzufügen von Speicher im laufenden Systembetrieb ist nur für Windows Server 2003 Enterprise und Datacenter Edition verfügbar. Hierfür ist außerdem eine spezielle Hardwareunterstützung vom Hardwarehersteller erforderlich.

-m

Startet eine Instanz von SQL Server im Einzelbenutzermodus. Wenn Sie eine Instanz von SQL Server im Einzelbenutzermodus starten, kann nur ein einziger Benutzer eine Verbindung herstellen, und der CHECKPOINT-Prozess wird nicht gestartet. Durch CHECKPOINT wird sichergestellt, dass die abgeschlossenen Transaktionen regelmäßig vom Datenträgercache auf das Datenbankmedium geschrieben werden. ((In der Regel verwenden Sie diese Option bei Problemen mit Systemdatenbanken, die repariert werden sollten.) Aktiviert die sp_configure allow updates-Option. Standardmäßig ist allow updates deaktiviert. Das Starten von SQL Server im Einzelbenutzermodus ermöglicht es einem beliebigen Mitglied der lokalen Administratorengruppe des Computers, eine Verbindung zu der Instanz von SQL Server als Mitglied der festen Serverrolle sysadmin herzustellen. Weitere Informationen finden Sie unter Problembehandlung: Herstellen einer Verbindung mit SQL Server, wenn Systemadministratoren gesperrt sind. Weitere Informationen zum Einzelbenutzermodus finden Sie unter Starten von SQL Server im Einzelbenutzermodus.

-m"Name der Clientanwendung"

Wenn Sie die Option -m mit SQLCMD oder SQL Server Management Studio verwenden, können Sie die Verbindungen auf eine angegebene Clientanwendung beschränken. -m"SQLCMD" beschränkt Verbindungen z. B. auf eine einzelne Verbindung, und diese Verbindung muss sich als SQLCMD-Clientprogramm identifizieren. Verwenden Sie diese Option, wenn Sie SQL Server im Einzelbenutzermodus starten und eine unbekannte Clientanwendung die einzige verfügbare Verbindung belegt. Um über den Abfrage-Editor von Management Studio eine Verbindung herzustellen, verwenden Sie -m"Microsoft SQL Server Management Studio - Query".

Beim Clientanwendungsnamen wird zwischen Groß- und Kleinschreibung unterschieden.

Wichtiger HinweisWichtig
Verwenden Sie diese Option nicht als Sicherheitsfunktion. Die Clientanwendung gibt den Clientanwendungsnamen an und kann als Teil der Verbindungszeichenfolge einen falschen Namen angeben.

-n

Zeichnet keine SQL Server-Ereignisse mithilfe des Windows-Anwendungsprotokolls auf. Wenn Sie eine SQL Server-Instanz mit der Option -n starten, sollten Sie auch die Startoption -e verwenden. Andernfalls werden keine SQL Server-Ereignisse protokolliert.

-s

Ermöglicht es Ihnen, eine benannte SQL Server-Instanz zu starten. Wurde der -s-Parameter nicht festgelegt, wird versucht, die Standardinstanz zu starten. Sie müssen an der Eingabeaufforderung in das entsprechende BINN-Verzeichnis für die Instanz wechseln, bevor Sie sqlservr.exe starten. Wenn Instance1 beispielsweise das Verzeichnis \mssql$Instance1 für die zugehörigen Binärdateien verwendet, muss der Benutzer zum Verzeichnis \mssql$Instance1\binn wechseln, um sqlservr.exe -s instance1 starten zu können.

-T trace#

Gibt an, dass eine SQL Server-Instanz so gestartet werden soll, dass ein bestimmtes Ablaufverfolgungsflag (trace#) wirksam wird. Ablaufverfolgungsflags werden verwendet, um den Server mit nicht standardmäßigem Verhalten zu starten. Weitere Informationen finden Sie unter Ablaufverfolgungsflags (Transact-SQL).

-x

Deaktiviert die folgenden Überwachungsfunktionen:

  • SQL Server-Leistungsindikatoren

  • Kontrolle der CPU-Zeit und Statistik für die Cachetrefferquote

  • Sammeln von Informationen für den Befehl DBCC SQLPERF

  • Sammeln von Informationen für einige dynamische Verwaltungssichten

  • Viele Extended Events-Ereignispunkte

VorsichtshinweisVorsicht
Wenn Sie die –x-Startoption verwenden, werden die Informationen, die Ihnen zum Diagnostizieren von Leistungs- und Funktionsproblemen in SQL Server zur Verfügung stehen, erheblich reduziert.

-E

Erhöht die Anzahl der Blöcke, die jeder Datei in einer Dateigruppe zugeordnet werden. Diese Option ist möglicherweise bei Data Warehouse-Anwendungen nützlich, bei denen nur eine eingeschränkte Anzahl von Benutzern Index- oder Datenscans ausführen. Sie sollte bei anderen Anwendungen nicht verwendet werden, da sie sich möglicherweise negativ auf die Leistung auswirkt. Diese Option wird in 32-Bit-Versionen von SQL Server nicht unterstützt.

HinweisHinweis

Wenn Sie ein Ablaufverfolgungsflag mit der Option -T angeben, sollten Sie ein "T" in Großbuchstaben verwenden, um die Nummer des Ablaufverfolgungsflags zu übergeben. Ein "t" in Kleinbuchstaben wird von SQL Server akzeptiert, doch werden dadurch andere interne Ablaufverfolgungsflags festgelegt, die nur von Supporttechnikern für SQL Server benötigt werden. (Startparameter, die über die Anwendung Dienste in der Systemsteuerung angegeben werden, werden nicht gelesen.)

Verwenden von Startoptionen für die Problembehandlung

Manche Startoptionen, wie z. B. der Einzelbenutzermodus und der Minimalkonfigurationsmodus, werden in erster Linie für die Problembehandlung verwendet. Um den Server für die Problembehandlung mit den Optionen –m oder –f zu starten, verwenden Sie am besten die Befehlszeile, während Sie sqlservr.exe manuell starten.

HinweisHinweis

Wird SQL Server mithilfe von net start gestartet, wird ein Schrägstrich (/) anstelle eines Bindestriches (-) für die Startoptionen verwendet.

Verwenden von Startoptionen im normalen Betrieb

Sie können Startoptionen bei jedem Start von SQL Server verwenden. Für diese Optionen, wie z. B. –g oder das Starten mit einem Ablaufverfolgungsflag, konfigurieren Sie die Startparameter am besten mithilfe von SQL Server Management Studio oder mit dem SQL Server-Konfigurations-Manager. Diese Tools speichern die Startoptionen als Registrierungsschlüssel, sodass SQL Server stets mit den Startoptionen gestartet werden kann.