Installieren von SQL Server mit SMB-Dateifreigabe als Speicheroption

Ab SQL Server 2012 können Systemdatenbanken (Master, Model, MSDB und TempDB) und Datenbank-Engine-Benutzerdatenbanken mit SMB-Dateiservern (Server Message Block) als Speicheroption installiert werden. Dies gilt sowohl für eigenständige SQL Server - als auch für SQL Server -Failoverclusterinstallationen (FCI).

Hinweis

Filestream auf einer SMB-Dateifreigabe wird derzeit nicht unterstützt.

Überlegungen zur Installation

SMB-Dateifreigabeformate:

Beim Angeben der SMB-Dateifreigabe werden die folgenden UNC-Pfadformate (Universal Naming Convention) für eigenständige und FCI-Datenbanken unterstützt:

  • \\Servername\Freigabename\

  • \\Servername\Freigabename

Weitere Informationen zur Universellen Benennungskonvention finden Sie unter UNC (https://go.microsoft.com/fwlink/?LinkId=245534).

Der UNC-Loopbackpfad (ein UNC-Pfad, dessen Servername "localhost" oder "127.0.0.1" lautet bzw. dem Namen des lokalen Computers entspricht) wird nicht unterstützt. Darüber hinaus wird ein Sonderfall, bei dem SQL Server den Dateiservercluster verwendet, der auf demselben Knoten gehostet wird, auf dem SQL Server ausgeführt wird, ebenfalls nicht unterstützt. Um diese Situation zu vermeiden, wird empfohlen, SQL Server - und Dateiservercluster auf getrennten Windows-Clustern zu erstellen.

Folgende UNC-Pfadformate werden nicht unterstützt:

  • Loopbackpfad, z. B. „ \\localhost\..\“ oder „\\127.0.0.1\...\“

  • Administrative Freigaben, z. B. \\servername\x$

  • Weitere UNC-Pfadformate, wie „\\?\x:\“

  • Zugeordnete Netzlaufwerke.

Unterstützte DDL-Anweisungen(Data Definition Language, Datendefinitionssprache)

SMB-Dateifreigaben werden von den folgenden Transact-SQL-DDL-Anweisungen und gespeicherten Datenbank-Engine-Prozeduren unterstützt:

  1. CREATE DATABASE (SQL Server Transact-SQL)

  2. ALTER DATABASE (Transact-SQL)

  3. RESTORE (Transact-SQL)

  4. BACKUP (Transact-SQL)

  5. sp_attach_db (Transact-SQL)

  6. sp_attach_single_file_db (Transact-SQL)

Installationsoptionen

  • Legen Sie den Parameter „Datenstammverzeichnis“ in der Setup-Benutzeroberfläche auf der Seite „Datenbank-Engine-Konfiguration“ auf der Registerkarte „Datenverzeichnisse“ auf „\\fileserver1\share1“ fest.

  • Geben Sie „/INSTALLSQLDATADIR“ bei der Installation über die Eingabeaufforderung als „\\fileserver1\share1“ an.

    Die folgende Beispielsyntax zeigt, wie Sie SQL Server mithilfe der SMB-Dateifreigabeoption auf einem eigenständigen Server installieren:

    Setup.exe /q /ACTION=Install /FEATURES=SQL /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<StrongPassword>" /SQLSYSADMINACCOUNTS="<DomainName\UserName>" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="<StrongPassword>" /INSTALLSQLDATADIR="\\FileServer\Share1\" /IACCEPTSQLSERVERLICENSETERMS  
    

    So installieren Sie eine SQL Server -Failoverclusterinstanz mit einem einzelnen Knoten mit der Standardinstanz von Datenbank-Engine und Analysis Services:

    setup.exe /q /ACTION=InstallFailoverCluster /InstanceName=MSSQLSERVER /INDICATEPROGRESS /ASSYSADMINACCOUNTS="<DomainName\UserName>" /ASDATADIR=<Drive>:\OLAP\Data /ASLOGDIR=<Drive>:\OLAP\Log /ASBACKUPDIR=<Drive>:\OLAP\Backup /ASCONFIGDIR=<Drive>:\OLAP\Config /ASTEMPDIR=<Drive>:\OLAP\Temp /FAILOVERCLUSTERDISKS="<Cluster Disk Resource Name - for example, 'Disk S:'" /FAILOVERCLUSTERNETWORKNAME="<Insert Network Name>" /FAILOVERCLUSTERIPADDRESSES="IPv4;xx.xxx.xx.xx;Cluster Network;xxx.xxx.xxx.x" /FAILOVERCLUSTERGROUP="MSSQLSERVER" /Features=AS,SQL /ASSVCACCOUNT="<DomainName\UserName>" /ASSVCPASSWORD="xxxxxxxxxxx" /AGTSVCACCOUNT="<DomainName\UserName>" /AGTSVCPASSWORD="xxxxxxxxxxx" /INSTALLSQLDATADIR="\\FileServer\Share1\" /SQLCOLLATION="SQL_Latin1_General_CP1_CS_AS" /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="xxxxxxxxxxx" /SQLSYSADMINACCOUNTS="<DomainName\UserName> /IACCEPTSQLSERVERLICENSETERMS  
    

    Weitere Informationen zur Verwendung verschiedener Befehlszeilenparameteroptionen in SQL Server 2014 finden Sie unter Installieren SQL Server 2014 über die Eingabeaufforderung.

Überlegungen zum Betriebssystem (SMB-Protokoll im Vergleich zu SQL Server)

Unterschiedliche Windows-Betriebssysteme verfügen über unterschiedliche SMB-Protokollversionen, und die SMB-Protokollversion ist transparent für SQL Server. Sie finden die Vorteile verschiedener SMB-Protokollversionen in Bezug auf SQL Server 2014.

Betriebssystem SMB2-Protokollversion Vorteile für SQL Server
WindowsServer 2008 SP 2 2.0 Verbesserte Leistung gegenüber SMB-Vorgängerversionen.

Dauerhaftigkeit zur einfacheren Wiederherstellung nach vorübergehenden Netzwerkstörungen.
Windows Server 2008 R2 SP 1, einschließlich Server Core 2.1 Unterstützung eines höheren MTU-Werts, der für umfangreiche Datenübertragungen wie SQL-Sicherungs- und -Wiederherstellungsvorgänge vorteilhaft ist. Diese Funktion muss vom Benutzer aktiviert werden. Weitere Informationen zum Aktivieren dieser Funktion finden Sie unter Neuerungen in SMB (https://go.microsoft.com/fwlink/?LinkID=237319).

Signifikante Leistungsverbesserungen besonders für SQL-OLTP-Arbeitsauslastungen. Diese Leistungsverbesserungen erfordern die Anwendung eines Hotfixes. Weitere Informationen zum Hotfix finden Sie hier (https://go.microsoft.com/fwlink/?LinkId=237320).
Windows Server 2012, einschließlich Server Core 3.0 Unterstützung für transparentes Failover von Dateifreigaben – ohne Ausfallzeiten und Administratoreingriffe seitens SQL-DBA oder Dateiserveradministratoren in Dateiserver-Clusterkonfigurationen.

Unterstützung für die E/A über mehrere Netzwerkschnittstellen gleichzeitig sowie Toleranz für Netzwerkschnittstellenfehler.

Unterstützung für Netzwerkschnittstellen mit RDMA-Funktionen.

Weitere Informationen zu diesen Features sowie zu Server Message Block finden Sie in der Übersicht zu Server Message Block (https://go.microsoft.com/fwlink/?LinkId=253174).

Unterstützung für Dateiserver mit horizontaler Skalierung mit kontinuierlicher Verfügbarkeit.
Windows Server 2012 R2, einschließlich Server Core 3.2 Unterstützung für transparentes Failover von Dateifreigaben – ohne Ausfallzeiten und Administratoreingriffe seitens SQL-DBA oder Dateiserveradministratoren in Dateiserver-Clusterkonfigurationen.

Unterstützung für E/A über mehrere Netzwerkschnittstellen gleichzeitig sowie Toleranz für Netzwerkschnittstellenfehler, unter Verwendung von SMB Multichannel.

Unterstützung für Netzwerkschnittstellen mit RDMA-Funktionen, unter Verwendung von SMB Direct.

Weitere Informationen zu diesen Features sowie zu Server Message Block finden Sie in der Übersicht zu Server Message Block (https://go.microsoft.com/fwlink/?LinkId=253174).

Unterstützung für Dateiserver mit horizontaler Skalierung mit kontinuierlicher Verfügbarkeit.

Optimiert für kleine wahlfreie Lese-/Schreib-E/A-Vorgänge, wie sie für SQL Server -OLTP üblich sind.

Maximale Übertragungseinheit (Maximum Transmission Unit, MTU) ist standardmäßig aktiviert; hierdurch wird bei umfassenden sequenziellen Übertragungen wie SQL Server Data Warehouse- und Datenbanksicherungen und -wiederherstellungen die Leistung wesentlich verbessert.

Sicherheitsüberlegungen

  • Das SQL Server -Dienstkonto und das SQL Server -Agent-Dienstkonto sollten über FULL CONTROL-Freigabeberechtigungen und NTFS-Berechtigungen für die SMB-Freigabeordner verfügen. Das SQL Server -Dienstkonto kann ein Domänen- oder Systemkonto sein, wenn ein SMB-Dateiserver verwendet wird. Weitere Informationen zu Freigabe- und NTFS-Berechtigungen finden Sie unter Freigabe- und NTFS-Berechtigungen auf einem Dateiserver (https://go.microsoft.com/fwlink/?LinkId=245535).

    Hinweis

    Die VOLLZUGRIFFsberechtigungen und NTFS-Berechtigungen für die SMB-Freigabeordner sollten auf folgendes beschränkt sein: SQL Server Dienstkonto, SQL Server-Agent Dienstkonto und Windows-Benutzer mit Administratorserverrollen.

    Es wird empfohlen, das Domänenkonto als SQL Server-Dienstkonto zu verwenden. Wenn das Systemkonto als Dienstkonto verwendet wird, erteilen Sie die Berechtigungen für das Computerkonto im folgenden Format: <domain_name>\<computer_name>$.

    Hinweis

    • Beim SQL Server-Setup ist es erforderlich, das Domänenkonto als Dienstkonto anzugeben, wenn die SMB-Dateifreigabe als Speicheroption festgelegt wird. Bei der SMB-Dateifreigabe kann das Systemkonto erst nach der SQL Server -Installation als Dienstkonto angegeben werden.
    • Virtuelle Konten können nicht gegenüber einem Remotestandort authentifiziert werden. Alle virtuellen Konten verwenden die Berechtigung des Computerkontos. Geben Sie das Computerkonto im Format <Domänenname>\<Computername>$ an.
  • Das Konto, das zum Installieren SQL Server verwendet wird, sollte über VOLLZUGRIFFsberechtigungen für den SMB-Dateifreigabeordner verfügen, der als Datenverzeichnis oder für andere Datenordner (Benutzerdatenbankverzeichnis, Benutzerdatenbankprotokollverzeichnis, TempDB-Verzeichnis, TempDB-Protokollverzeichnis, Sicherungsverzeichnis) während des Cluster-Setups verwendet wird.

  • Dem Konto, das für die Installation von SQL Server verwendet wird, müssen SeSecurityPrivilege-Berechtigungen auf dem SMB-Dateiserver zugewiesen werden. Diese Berechtigung weisen Sie zu, indem Sie die Konsole "Lokale Sicherheitsrichtlinie" auf dem Dateiserver verwenden, um der Richtlinie zum Verwalten von Überwachungs- und Sicherheitsprotokollen das SQL Server -Setupkonto hinzuzufügen. Diese Einstellung ist in der Konsole "Lokale Sicherheitsrichtlinie" im Abschnitt Zuweisen von Benutzerrechten unter Lokale Richtlinien verfügbar.

Bekannte Probleme

  • Nachdem Sie eine SQL Server 2014-Datenbank getrennt haben, die sich im netzwerkgebundenen Speicher befindet, tritt möglicherweise ein Datenbankberechtigungsproblem auf, wenn Sie versuchen, die SQL Server Datenbank erneut anzufügen. Das Problem wird in diesem KB-Artikel (https://go.microsoft.com/fwlink/?LinkId=237321) definiert. Wie Sie dieses Problem umgehen, erfahren Sie im KB-Artikel im Abschnitt Weitere Informationen .

  • Einige Drittanbieter, wie NetApp-Geräte unterstützen nicht alle SQL Server-API-Aufrufe. Mit diesen können Sie Folgendes erhalten:
    2015-06-04 13:14:19.97 spid9s Fehler: 17053, Schweregrad: 16, Zustand: 1.
    2015-06-04 13:14:19.97 spid9s DoDevIoCtlOut() GetOverlappedResult() : Betriebssystemfehler 1(Falsche Funktion.) aufgetreten.

    Für NTFS ist der Fehler harmlos, aber für ReFS kann er zu bedeutenden Leistungseinbußen führen.

  • Wenn die SMB-Dateifreigabe als Speicheroption für eine gruppierte Instanz von SQL Serververwendet wird, kann das SQL Server -Failovercluster-Diagnoseprotokoll standardmäßig nicht in die Dateifreigabe geschrieben werden, da die SQL Server -Ressourcen-DLL keine Lese-/Schreibberechtigung für die Dateifreigabe hat. Führen Sie eine der folgenden Aktionen aus, um diesen Fehler zu beheben:

    1. Erteilen Sie allen Computerobjekten im Cluster Lese-/Schreibberechtigungen für die Dateifreigabe.

    2. Legen Sie als Speicherort für die Diagnoseprotokolle einen lokalen Dateipfad fest. Sehen Sie sich folgendes Beispiel an:

      ALTER SERVER CONFIGURATION  
      SET DIAGNOSTICS LOG PATH = 'C:\logs';  
      

Weitere Informationen

Planen einer SQL Server-Installation
Themen zu Vorgehensweisen für die Installation
Konfigurieren von Windows-Dienstkonten und -Berechtigungen