olly - Fotolia
Sechs tägliche Aufgaben für SQL Server Datenbank-Admins
Als Datenbank-Administrator können Sie tägliche Routineaufgaben automatisieren. Welche sich dafür eignen und wie Sie vorgehen, zeigt dieser Artikel.
Die Administration von SQL Server-Datenbanken kann eine komplexe und zeitraubende Aufgabe sein. Die Verantwortungsbereiche des Datenbank-Administrators (DBA) reichen von der Performance bis hin zu Integrität und Sicherheit von Geschäftsdaten und SQL Server-Datenbanken.
Um ihren Pflichten nachkommen zu können und die Datenverfügbarkeit für ihre Nutzer zu gewährleisten, sollten Administratoren routinemäßige DBA-Prüfungen ihrer SQL Server vornehmen, um deren Status zu überwachen.
Welche Aufgaben sind besonders dafür geeignet, in die tägliche Prüfliste aller DBAs aufgenommen zu werden? Im Folgenden erhalten Sie sechs Vorschläge, um Ihrer täglichen Verantwortung gerecht zu werden und erfahren, wie Sie diese Aufgaben automatisieren können.
Sind alle SQL Server-Instanzen aktiv?
Prüfen Sie die Konnektivität Ihrer SQL Server-Instanzen im Netzwerk und klären Sie damit ab, dass sämtliche Ihrer Server aktiv sind. Stellen Sie sicher, dass alle Datenbanken auf Ihren SQL Server-Instanzen online sind.
Zusätzlich sollten Sie eine Prüfung des Festplatten-Datenbankspeichers vornehmen, was Sie mithilfe des Befehls CHECKDB des Werkzeugs Database Consistency Checker (DBCC) gegen jede Datenbank auf allen Ihrer SQL Server erledigen können. Die Nutzung von DBCC CHECKDB mit der Option PHYSICAL_ONLY läuft schneller, was insbesondere bei sehr großen Datenbanken und leistungsschwächeren Servern hilfreich sein kann.
Suchen Sie in SQL Server Fehlerprotokollen nach ungewöhnlichen Ereignissen
Völlig egal, wie sorgfältig und wohlgeformt Sie Ihre Datenbanken entworfen und getestet haben – Fehler werden immer auftreten.
SQL Server speichert jegliche Informations-, Warnungs- und Fehlermeldungen in Betriebssystem- und Anwendungs-Protokolldateien. Das tägliche Prüfen dieser Fehler-Protokolldateien hilft Ihnen dabei, unerwartete Fehler und Sicherheitsprobleme in Ihrer SQL Server-Umgebung einfach und rasch zu entdecken. In der Ausgangskonfiguration bietet SQL Server Ihnen eine aktuelle und sechs archivierte Protokolldateien.
Zum Auswerten dieser Dateien können Sie den SQL Server Management Studio Log Viewer verwenden oder aber die undokumentierte Stored Procedure sp_readerrorlog verwenden.
Sind alle Jobs erfolgreich abgearbeitet?
Das Management von SQL Server Agent-Jobs ist eine der Schlüsselaufgaben jedes DBAs, sind sie doch ausschlaggebend für jede SQL Server-Umgebung.
Mehr zum Thema SQL Server:
SQL Server effizient absichern mit C2-Überwachung, DLL-Trigger und Server Audit
Grundlegende Best Practices für die Security von SQL Servern
Die wichtigsten Verschlüsselungs-Funktionen in Microsoft SQL Server 2014
So vermeiden und beheben Sie SQL Server Performance-Engpässe
Eingerichtet und zeitgesteuert werden sie zur Ausführung kritischer Geschäfts- und Prozessaufgaben.
Es ist daher von zentraler Bedeutung, insbesondere Jobs im Auge zu behalten, die nicht erfolgreich abgearbeitet werden konnten.
Der SQL Server Agent speichert eine Informationshistorie für Jobs, Fehlermeldungen, Warnungen und gegebenenfalls Ablaufverfolgung.
Diese Informationshistorie wird in der Tabelle sysjobhistory der msdb-Datenbank abgelegt. Betrachten können Sie diese Informationen mit dem Job Activity Monitor.
Alternativ können Sie auch sysjobhistory per Datenbank-Query nach fehlgeschlagenen Jobs abfragen. Die folgende Abfrage beispielsweise liefert die fehlgeschlagenen Jobs der vergangenen 24 Stunden zurück:
Sind die Datenbank-Backups in Ordnung?
Eine der Aufgaben eines DBA ist es, regelmäßig Backup-Kopien von Datenbanken zu erstellen. Schließlich stellen diese das wichtigste Werkzeug in einem Szenario notwendiger Datenwiederherstellung dar. Deshalb ist es wichtig, als Administrator sicher zu sein, dass nicht nur der Prozess der Datenbank-Backups gestartet wird, sondern auch erfolgreich abgeschlossen werden konnte und die Backup-Dateien sicher gelagert sind.
SQL Server speichert Informationen über erfolgreiche Backups in der Datenbank msdb. Die Tabelle backupset enthält Einträge über jeden erfolgreichen Backup-Vorgang. Informationen über jede Backup-Datei finden Sie in der Tabelle backupmediafamily.
Die folgende Abfrage beispielsweise kann verwendet werden, um den Backup-Status sämtlicher Datenbanken einer bestimmten SQL Server-Instanz zu überprüfen:
Reicht der Speicherplatz aus?
Prüfen Sie den freien Festplatten-Speicherplatz jeder Ihrer SQL Server-Instanzen und stellen Sie sicher, dass ausreichend verbleibender Speicherplatz vorhanden ist. Um eine ideale Performance des Servers zu garantieren, sollten Sie den Anteil freien Speicherplatzes nicht unter 15 Prozent absinken lassen.
Stellen Sie beim täglichen Vergleich fest, dass der Anteil freien Speicherplatzes schwankt, sollten Sie den Grund für dieses Verhalten suchen. Oft ist ein abnormes Anwachsen des Transaktionsprotokolls verantwortlich für signifikante Schwankungen des freien Speicherplatzes.
Zur Überwachung des freien Festplatten-Speicherplatzes können Sie die undokumentierte Stored Procedure xp_fixeddrives verwenden. Ihren Schwachpunkt findet sie darin, dass sie nur physikalische, nicht aber gemountete Laufwerke auswerten kann. Um den freien Speicherplatz auf Betriebssystem-Laufwerken einschließlich gemounteter Laufwerke zu ermitteln, können Sie daher die dynamische Funktion sys.dm_os_volume_stats nutzen. Diese dynamische Management-Funktion liefert Ihnen Informationen über das Betriebssystem-Laufwerk, auf dem sich die Datenbankdateien befinden.
Sie können diese Funktion beispielsweise wie folgt nutzen, um Informationen über den freien Speicherplatz einer bestimmten SQL Server-Instanz zu ermitteln:
Alternativ dazu können Sie auch ein PowerShell-Skript oder eine Common Language Runtime (CLR)-Prozedur schreiben, um den freien Speicherplatz auf physikalischen und gemounteten Laufwerken zu prüfen.
Sind Datenbankgröße und Wachstumsrate in Ordnung?
Die Größe der Datenbanken einer SQL Server-Instanz ist eine Messgröße, die für jede SQL Server-Instanz einzeln überwacht werden sollte. Wichtig ist das, da fehlender Platz für Datenbank und Transaktionsdatei das Scheitern sämtlicher Transaktionen verursachen würde. Die Überwachung und die Verwaltung des Wachstums Ihrer Datenbanken ist daher eine nicht zu vernachlässigende Aufgabe.
Um die Einstellungen und Dateigrößen für die Expansion Ihrer Datenbanken zu prüfen, steht Ihnen die sys.master_files-View zur Verfügung. Diese System-View liefert Ihnen den Status aller Dateien aller Datenbanken, einschließlich solcher die offline sind.
Beispielsweise erhalten Sie mit der folgenden Abfrage den Dateinamen, die Größe, den Ort und die Wachstumsrate sämtlicher Datenbankdateien aller Datenbanken.
Über den Autor:
Basit Farooq ist Datenbank-Administrator, Trainer und technischer Autor. Er hat mehr als ein Jahrzehnt IT-Erfahrung in den Bereichen Entwicklung, technische Ausbildung und Datenbankadministration von Microsoft SQL Server.