Virtual Log Files dokumentieren

By

Posted on Jan 17, 2013 von in SQL Server

In meinem letzten Beitrag hatte ich etwas zu den Auswirkungen von Virtual Log Files auf die Performance geschrieben. Heute geht es darum, die Eckdaten der Virtual Log Files zu analysieren und zu dokumentieren.

Daten sammeln

Zuerst werden wir die Daten mittels der nicht dokumentieren DBCC Option LOGINFO sammeln und für zukünftige Auswertungen historisieren. Auf nicht dokumentierte Funktionen sollte man keine systemkritischen Vorgänge aufbauen, daher hier noch einmal die Warnung, dieses Feature nicht zu intensiv zu nutzen. Es kann jederzeit aus dem Funktionsumfang des SQL Server verschwinden.

Im Anhang findet sich ein Skript, welches die Tabellen anlegt, die wir für die Sammlung und Archivierung der Daten benötigen. Bei mir hat es sich als hilfreich erwiesen für viele selbst geschriebene Tools eine eigene Datenbank zur Unterstützung der Administration anzulegen. Wir nennen diese Datenbank einfach mal "AdminTools".

Nachdem die Tabellen in der Datenbank angelegt wurden, fehlt noch die Prozedur, welche mittels Cursor durch alle vorhandenen Datenbanken geht und die Informationen sammelt. Nach der Analyse einer Datenbank werden die Eckdaten der Virtual Log Files in der Archiv-Tabelle abgelegt.

Der Aufruf dieser Prozedur kann manuell oder regelmässig per Job ausgeführt werden, wobei ich hier höchstens zu monatlichen Sammlungen tendiere.

Daten auswerten

Nun können wir zum einen den letzten Lauf anzeigen lassen, oder für eine spezielle Datenbank die Historie. Ergänzt werden die Informationen durch die aktuellen Einstellungen zu dem Transaktionsprotokoll der Datenbanken.

Damit wir auch noch Informationen über die historischen Einstellungen haben, berechnen wir, wie das Inkrement des Transaktionslogs (für die kleinsten und größten VLFs) wahrscheinlich ausgesehen hat und aus der Anzahl der VLFs und der durchschnittlichen Größe können wir jederzeit wieder (ausreichend genau) auf die damalige Größe schließen.

Ergänzungsmöglichkeit

Wer mag, kann sich zwei Reports über diese beiden Datasets basteln und den zweiten per Hyperlink für eine einzelne Datenbank aufrufen.

VLF_Tabellen_anlegen.sql
usp_DB_VLFs_Scan.sql
VLF_Tabellen_Auswerten.sql

Tags: Tags: administrationlog
Dieser Eintrag wurde eingetragen von und ist abgelegt unter SQL Server. Tags: administration, log

3 Kommentare

Benutzerwertungen
5 Stern:
 
(1)
4 Stern:
 
(0)
3 Stern:
 
(0)
2 Stern:
 
(0)
1 Stern:
 
(0)
1 Bewertung
Durschn. Benutzerwertung:
(5.0)

Kommentar von: Markus

Markus
Hallo, bekomme leider einen Fehler bei der Ausführung von Exec dbo.usp_DB_VLFs_Scan; Meldung 50000, Ebene 14, Status 1, Prozedur usp_DB_VLFs_Scan, Zeile 115 usp_DB_VLFs_Scan: (213) Der Spaltenname oder die Anzahl der bereitgestellten Werte entspricht nicht der Tabellendefinition.
28.06.13 @ 09:44
Für SQL Server 2012 hat sich der Output von DBCC LOGINFO geändert. Da dieses nicht dokumentiert ist, kann man sich ja auch nicht dauerhaft darauf verlassen. Ich stelle nachher mal eine weitere Version bereit.
28.06.13 @ 09:55
Die neue Version für SQL Server 2012 findet sich im aktuellen Blog-Eintrag, der hier über Trackbacks zu erreichen ist. Gruß Christoph
28.06.13 @ 10:30


Formular wird geladen...