Hier ist die überarbeitete und leserfreundlichere Version der Dokumentation zur Prüfung des SQL-Servers:
Prüfung der SQL-Server Umgebung #
Eine regelmäßige Überprüfung der SQL-Server Umgebung ist entscheidend, um einen stabilen Betrieb sicherzustellen. Diese Anleitung beschreibt die wichtigsten Punkte, die geprüft und angepasst werden sollten.
1. Grundlegende Überprüfungen #
- Arbeitsspeicher-Auslastung:
- Öffnen Sie den Task-Manager und prüfen Sie die Speicherauslastung.
- Optimal: Unter 90 %
- Kritisch: Ab 94 %
- Festplattenspeicher:
- Öffnen Sie den Explorer und prüfen Sie, ob keine Festplatte voll ist.
- Empfehlung: Mindestens 10-15 % freien Speicherplatz sicherstellen.
2. SQL-Server Konfiguration #
Benötigt: Microsoft SQL Server Management Studio (SSMS)
- SQL-Server Einstellungen öffnen:
- Rechtsklick auf den SQL-Server im Objekt-Explorer und auf Eigenschaften klicken.
- Wichtige Tabs prüfen und anpassen:
- Tab „Memory“:
- Wert bei „Maximum server memory (in MB)” prüfen.
Der Wert sollte kleiner sein als der maximale Arbeitsspeicher des Servers.- Beispiel: Bei einem Server mit 30 GB RAM sollte hier ca. 20 GB stehen.
- Wert bei „Maximum server memory (in MB)” prüfen.
- Tab „Advanced“:
- „Cost Threshold for Parallelism”: Standardwert ist 5.
- „Max Degree of Parallelism”: Standardwert ist 0.
- Dieser Wert bestimmt, wie viele CPUs für eine SQL-Operation verwendet werden dürfen.
- Bei vielen parallelen Zugriffen auf die Datenbank kann ein Wert von 2 oder 4 getestet werden.
- Tab „Memory“:
3. Datenbankkonfiguration #
- Datenbank-Einstellungen öffnen:
- Rechtsklick auf die Datenbank und auf Eigenschaften klicken.
- Wichtige Tabs prüfen:
- Tab „Files”:
- „Autogrowth / Maxsize”:
- Datendatei: Feste Größe von mindestens 1000 MB, unbegrenzt.
- Logdatei: Größe von 10 %, ebenfalls unbegrenzt.
- „Size (MB)” für Logdatei:
- Wenn diese sehr groß ist (z. B. >50 GB), deutet das auf Probleme mit dem Wartungsplan hin.
- „Autogrowth / Maxsize”:
- Tab „Options”:
- „Recovery Model”:
- Full: Wartungsplan erforderlich, um übergroße Logdateien zu vermeiden.
- Simple: Speicherplatz in Logdateien wird nach Transaktionsende automatisch freigegeben.
- „Compatibility Level”:
- Muss zur installierten SQL-Server-Version passen.
- Werte prüfen:
- Auto Create Statistics: True
- Auto Shrink: False
- Auto Update Statistics: True
- „Recovery Model”:
- Tab „Files”:
4. Wartungspläne #
Auch wenn Sicherungen über Drittanbieter-Tools wie VEEAM erfolgen, ist ein Wartungsplan zur Datenbankpflege erforderlich. Die Hauptaufgaben eines Wartungsplans lassen sich in drei Kategorien einteilen:
- Datenbanksicherung:
Vollständige Sicherung der Datenbank. - Transaktionsprotokoll-Sicherungen (nur bei Recovery Mode = Full):
Regelmäßige Backups der Transaktionslogs. - Datenbankpflege:
Optimierung und Aktualisierung von Indexen und Statistiken.
Prüfen der Wartungspläne #
- Sind Wartungspläne vorhanden?
- Läuft der SQL Server Agent, der die Pläne ausführt?
- Sicherstellen, dass keine „Shrink Database Task” Bausteine vorhanden sind. Diese verursachen unnötige Fragmentierung.
Beispiel: Wartungsplan für Datenpflege #
Wichtige Bausteine:
- Rebuild Index Task: Baut Indexe neu auf.
- Update Statistics Task: Aktualisiert Index-Statistiken.
- Hinweis: Reorganize Index Task ist nicht notwendig, wenn Rebuild genutzt wird.
Beispiel: Wartungsplan für Datenbanksicherung #
- Check Database Integrity Task: Stellt sicher, dass keine Datenbankfehler vorliegen.
- Back Up Database Task:
- „Verify backup integrity” aktivieren, um die Integrität der Backups sicherzustellen.
Beispiel: Wartungsplan für Transaktionslog-Backups #
- Wenn der Recovery-Mode Full ist, empfiehlt es sich, regelmäßige Transaktionslog-Backups (z. B. jede Stunde) zu erstellen.
Beispiel für vollständigen Wartungsplan (Recover-Mode Simple) #
Check Database Integrity Task : Stellt sicher dass keine Fehler in der Datenbank vorhanden sind.
Back Up Database Task : Erstellt das vollständige Backup.
Rebuild Index Task : Baut die Indexe neu auf.
Update Statistics Task : Aktualisiert die Index-Statistiken.
Maintenance Cleanup Task : Löscht ältere Backup Dateien (beim Beispiel älter als 1 Woche).
Maintenance Cleanup Task 1 : Löcht ältere Wartungsplan Text Berichte.
History Cleanup Task : Löscht ältere Historie Einträge.
5. Erweiterte Prüfungen #
Fragmentierung der Indexe prüfen #
SELECT
S.name AS 'Schema',
T.name AS 'Table',
I.name AS 'Index',
DDIPS.avg_fragmentation_in_percent,
DDIPS.page_count
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS DDIPS
INNER JOIN sys.tables T ON T.object_id = DDIPS.object_id
INNER JOIN sys.schemas S ON T.schema_id = S.schema_id
INNER JOIN sys.indexes I ON I.object_id = DDIPS.object_id
AND DDIPS.index_id = I.index_id
WHERE DDIPS.database_id = DB_ID()
AND I.name IS NOT NULL
AND DDIPS.avg_fragmentation_in_percent > 0
AND DDIPS.page_count > 1000
ORDER BY DDIPS.avg_fragmentation_in_percent DESC;
- Tabellen mit Fragmentierung >30 % deuten darauf hin, dass kein Wartungsplan vorhanden ist.
Index-Statistiken prüfen #
SELECT
sp.stats_id,
stat.name,
last_updated,
rows,
rows_sampled
FROM sys.stats AS stat
CROSS APPLY sys.dm_db_stats_properties(stat.object_id, stat.stats_id) AS sp
WHERE last_updated IS NOT NULL
ORDER BY last_updated;
- Tabellen mit älteren last_updated-Werten deuten auf fehlende Wartungspläne oder nicht ausgeführte Jobs hin.
Mit diesen Maßnahmen stellen Sie sicher, dass Ihre SQL-Server-Umgebung effizient, sicher und zuverlässig arbeitet.