• Beitrags-Kategorie:SQL
  • Lesedauer:4 min Lesezeit

Dies ist meine Checkliste um einen Microsoft SQL optimal auf einem Windows Server zu installieren/konfigurieren. Diese Liste deckt nicht jeden Anwendungsfall ab (z.B.: SQL für Sharepoint braucht spezielle Hingabe) und führt nicht Schritt für Schritt durch die Installation des SQL Servers. Zum Ausgleich habe ich zu fast jedem Punkt einen Link mit detaillierteren Informationen hinzugefügt.

Voraussetzungen

  • eine dezidierte IP für das Betriebssystem und jede installierte SQL Instanz (also min. 2)
  • eigene Service-Accounts für alle Dienste (Instance Features) (SQL Server, SQL Server Agent, …)
  • 3 Disken für Data, Log und TempDB, pro SQL Instanz, mit schnellem Storage und formatiert in 64k.
  • genügen CPU-Kerne (SQL Lizenzierung beachten) und viel Arbeitsspeicher.
    • Wie viel ist genug? … die Antwort ist wie immer „It depends“ 😉

Windows Konfiguration

Daten, Log und TempDB Disken in 64k formatieren.
Infos: https://blog.sqlserveronline.com/

Windows Power Plan auf “High Performance” konfigurieren.
Infos: https://blog.sqlauthority.com/

Netzwerk Teaming konfigurieren (wenn vorhanden).
https://docs.microsoft.com/

Lock Pages in Memory konfigurieren.
gpedit.msc starten und navigiere über Computer Configuration/Windows Settings/Security Settings/Local Policies/User Rights Assignment zu Lock pages in memory. Hier den Benutzer des SQL Server Services angeben.
Infos: https://blog.sqlauthority.com/

Manage Auditing and security log konfigurieren
im noch offenen gpedit.msc Fenster, im gleichen Verzeichnis unter Manage Auditing and security log den Benutzer des SQL Server Agents und SQL Server angeben.
Infos: https://docs.microsoft.com/

Perform volume maintenace tasks konfigurieren.
Jetzt zu Computer Configuration/Windows Settings/Security Settings/Local Policies/User Rights Assignment/Perform volume maintenace Tasks wechseln und hier den Benutzer des SQL Server Dienstes angeben.
Infos: https://www.sqlshack.com/

Kerberos für SQL konfigurieren.
cmd.exe starten und folgende Befehle mit den geänderten Werten ausführen.
setspn -s MSSQLSvc/SQLInstanz.FQDN.at:1433 domain\sqlserverserviceaccount
setspn -s MSSQLSvc/SQLInstanz.FQDN.at:SQLInstanzName domain\sqlserverserviceaccount
Infos: https://docs.microsoft.com/

Nach der SQL Server Installation die IP Adresse der SQL Instanz ändern. Zuvor muss diese aber auf der Netzwerkkarte hinterlegt werden.
Infos: http://woshub.com/ & https://support.huawei.com/

SQL Konfiguration

Nach der SQL Server Installation empfiehlt es sich gleich das aktuelle Update zu installieren.
Das aktuelle Update findet man unter https://sqlserverbuilds.blogspot.com/.
Das Management Studio bei der Gelegenheit auch gleich (auf dem Admin-Client) installieren.

SQL Server Configuration Manager starten und den TCP Port jeder Instanz auf 1433 stellen. Das funktioniert nur wenn jede SQL Instanz eine eigener IP Adresse verwendet. Microsoft empfiehlt immer einen nicht default Port zu verwenden, das kann aber zu Problemen bei Applikationen führen. Außerdem halte ich nichts von Security through obscurity.
Infos: https://docs.microsoft.com/

SQL Server Browser auf einem “single Instance” Server deaktivieren ansonsten auf auf Start Mode “Automatic” setzen und Services Starten.
Infos: https://www.mssqltips.com/

SQL Server Agent auf Start Mode “Automatic” setzen und Services Starten.

Über die SQL Management Console, klicke im Objekt-Explorer mit der rechten Maustaste auf den Server und wähle Properties danach unter Memory, SQL Server Min / Max Memory, Min Memory auf min. 2048MB stellen. Wichtig ist immer, dass man RAM für SQL Server Integration Services, Analysis Services, Reporting Services und das Betriebssystem frei hält. Extended stored procedures, sp_OA calls und Linked Server Providers greifen direkt auf RAM zu und ignorieren diese Einstellung. Am Besten Memory:Available MB Performance Counter auf freien Speicher überwachen und Wert nach und nach erhöhen. Haben MIN und MAX den gleichen Wert kommt es zu großen Performance-Problemen.
Infos: https://docs.microsoft.com/

Berechtigungen für Instant File Initialization (IFS) muss die Berechtigung ‘Perform Volume Maintenance Tasks’ für den SQL Server Account aktiviert sein.
Infos: https://www.brentozar.com/

TempDB Konfiguration. Microsoft empfiehlt, dass die Anzahl der tempdb data files der Anzahl der logischen CPU Kerne (bis zu 8) entspricht. Bestehenden Festplattenplatz ausnützen und DB bereits im Vorhinein groß planen.
Beispiel: 4-8 TembDB’s mit je 10GB
Infos: https://www.brentozar.com/

Max Degree of Parallelism ist die Anzahl der physischen Cores in einer NUMA Node (Prozessor) oder weniger. Wert 1 nur bei SharePoint SQL-Instanz verwenden.
Infos: http://www.sqlskills.com/

Für Cost Threshold for Parallelism gibt es keine richtige oder falsche Einstellung, 5 ist aber eindeutig ein zu kleiner Wert der nur für einfache OLTP Applikationen ausreicht. Bei einem neuen System mit neuer Hardware kann die Einstellung auf Wert 50 gesetzt werden.
Infos: https://www.brentozar.com/

Datenbank Konfiguration. 100MB Autogrowth für alle Data und Log Files (nicht in % lassen).
Infos: https://docs.microsoft.com/

Und fertig ist die SQL Installation.

4.8 / 5. 9

Dieser Beitrag hat 2 Kommentare

  1. Hotohori

    Mir fehlt hier die Max Memory Einstellung, hast du die hier absichtlich nicht erwähnt?

    Danke

    1. Johannes

      Max Memory definiere ich nie da ich keine weitere Software parallel neben SQL installiere.
      Man könnte jetzt etwas RAM für das OS reservieren. Meiner Meinung funktioniert die Speicherverwaltung des SQL Servers aber so gut, dass dieser das selbst regelt.

Schreibe einen Kommentar

*

code