SlideShare ist ein Scribd-Unternehmen logo
SQL Server
Transaktion Protokoll
deep dive
Sascha Lorenz, PSG Projekt Service GmbH
lorenz@psg.de
Warum sich damit beschäftigen?
• Verständnis & Ausbildung
• Recovery
• Audit
• Data Capture
Die LDF Datei…
• Ein einziges Ärgernis…
Das Versprechen…
Atomicity
Consistency
Isolation
Durability
Grundlagen
• Wiederherstellungsmodelle
– Einfach
– Vollständig
– Massenprotokolliert
• Backup
– Voll
– Differentiell
– Transaktion
Grundlagen
• Trennung von mdf/ndf‘s und ldf !
• Protokoll Dateien können endlos wachsen
und nicht von selbst schrumpfen.
• Vielen Admins sind sie ein Ärgernis. 
Das Transaktion Protokoll
• Während die Datenbank Dateien (mdf & ndf‘s)
aus 8 KB Seiten aufgebaut sind, besteht das
Transaktion Protokoll (ldf) aus sogenannten
VLF (Virtuell Log Files). Diese haben KEINE
einheitliche Größe.
• In den VLF werden „Log Records“ gespeichert.
Status eines VLF
• Active (aktiver Teil…)
– Mindestens ein „aktiver“ Log Record
ist Teil des VLF
• Recoverable
– Wartet auf das nächste Backup
• Reusable
– Kann überschrieben werden
• Unused
– Wurde noch nie genutzt
Log Buffer
• Ein „neuer“ Buffer ! 
• Log Records werden erst im Log Buffer
gesammelt und dann in einem Rutsch
geschrieben (Performance, Performance…)
VLF
• Virtuelle Files in der ldf
• Autogrowth
• Wie viele VLFs hat mein Log File?
– DBCC loginfo;
Ldf Erweiterungen
• <= 64MB = 4 VLFs
• > 64MB & <= 1GB = 8 VLFs
• > 1GB = 16 VLFs
Wartung Protokolldatei
• Zu viele VLFs…
– Fragmentierung (extern & intern)
• Zu wenig VLFs…
VLFs
Logisches Log
Bereit für
Backup
VLFs
Logisches Log
Bereit für
Backup
VLFs
Logisches Log
VLFs
Logisches Log
VLFs
Logisches Log
VLFs
Logisches Log
Habe ich ein Problem?
• sys.dm_os_wait_stats
– WRITELOG
• Perfmon
– Average Disk sec/Read & …/Write
• Limits des Log Managers
Log File Latenz / In-flight
• Vor SQL 2008 : 480 KB
• Ab SQL 2008 : 3840 KB
• 32 Bit : 8 ausstehende IO‘s
• 64 Bit : 32 ausstehende IO‘s
Beispiel in-flight Latenz
Quelle: http://sqlcat.com/sqlcat/b/technicalnotes/archive/2008/12/09/diagnosing-transaction-log-performance-issues-and-limits-of-the-log-manager.aspx
Beispiel in-flight Latenz
Quelle: http://sqlcat.com/sqlcat/b/technicalnotes/archive/2008/12/09/diagnosing-transaction-log-performance-issues-and-limits-of-the-log-manager.aspx
Ein Blick ins Log
• sys.fn_dblog
• DBCC TRACEON(2537)
• DBCC TRACEOFF(2537)
Decode it…
2 Byte : Status Bits
2 Bytes: Offset to find number of columns
X Bytes: Fixed Length Columns
2 Bytes: Total Number of Columns in the data row
1 Bit per column, Rounded up: Nullability Bitmap
2 Bytes: Number of Variable Length Columns within
the data row
2 Bytes per variable length column :
Row Offset marking the end of each variable length
column
X Bytes: Variable Length Columns
Quelle: http://sqlfascination.com/2010/02/03/how-do-you-decode-a-simple-entry-in-the-transaction-log-part-1/
fn_dump_dblog()
SELECT
*
FROM
fn_dump_dblog (
NULL, NULL, N'DISK', 1, N‚F:BACKUPLog4711.trn',
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT,
DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT);
So… Hoffe, das war
für den Moment „deep“ genug…
Bei Fragen: lorenz@psg.de

Weitere ähnliche Inhalte

PDF
Uwe Ricken – IT-Tage 2015 – Workshop: MS SQL Server Optimierung
PPT
AdminCamp 2011 Performance
PDF
Ausgewählte Performance Technologien
PDF
Exadata with VM as Consolidation Plattform
PPTX
Oracle und Hochverfügbarkeit – Verschiedene Ansätze im Vergleich
PDF
Roadshow: What's new in Microsoft SQL Server 2016
PPT
PDF
Überblick Oracle Datenbank Hochverfügbarkeit
Uwe Ricken – IT-Tage 2015 – Workshop: MS SQL Server Optimierung
AdminCamp 2011 Performance
Ausgewählte Performance Technologien
Exadata with VM as Consolidation Plattform
Oracle und Hochverfügbarkeit – Verschiedene Ansätze im Vergleich
Roadshow: What's new in Microsoft SQL Server 2016
Überblick Oracle Datenbank Hochverfügbarkeit

Was ist angesagt? (20)

PDF
Überblick Oracle Datenbank 12c
PPT
Top 10 Internet Trends 2005
PPTX
Storage Spaces Direct - Introduction
PPTX
Oracle Data Guard: Mit oder ohne Broker?
PPTX
Datenbankkonsolidierung
PDF
AOUG 2019 Oracle Centrally Managed Users 18c / 19c
PDF
Oracle Database Appliance X4-2
PPTX
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
PDF
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß
PDF
MySQL Performance Tuning für Entwickler
PDF
Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)
PDF
Oracle Engineered Systems - Chance oder Risiko?
PDF
DOAG Webinar Oracle und Docker
PDF
Datentransfer mit Oracle Tools
PDF
Oracle Database Appliance X5-2
PDF
XPages: Performance-Optimierung - Ulrich Krause (eknori) SNoUG 2013
PDF
MySQL HA and Security
PDF
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
PDF
MySQL Hochverfügbarkeitslösungen
PPS
Sql Server Grundlagen für Sharepoint Administratoren
Überblick Oracle Datenbank 12c
Top 10 Internet Trends 2005
Storage Spaces Direct - Introduction
Oracle Data Guard: Mit oder ohne Broker?
Datenbankkonsolidierung
AOUG 2019 Oracle Centrally Managed Users 18c / 19c
Oracle Database Appliance X4-2
Spontan testen! Das eigene Test Lab, für jeden in der Cloud!
OEM Cloud Control - Hochverfügbar von Kopf bis Fuß
MySQL Performance Tuning für Entwickler
Komprimierung in der Oracle Datenbank (Stand 11gR2, 12c)
Oracle Engineered Systems - Chance oder Risiko?
DOAG Webinar Oracle und Docker
Datentransfer mit Oracle Tools
Oracle Database Appliance X5-2
XPages: Performance-Optimierung - Ulrich Krause (eknori) SNoUG 2013
MySQL HA and Security
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
MySQL Hochverfügbarkeitslösungen
Sql Server Grundlagen für Sharepoint Administratoren
Anzeige

SQL Server Transaction Log Deep Dive Session - PASS Hamburg

  • 1. SQL Server Transaktion Protokoll deep dive Sascha Lorenz, PSG Projekt Service GmbH lorenz@psg.de
  • 2. Warum sich damit beschäftigen? • Verständnis & Ausbildung • Recovery • Audit • Data Capture
  • 3. Die LDF Datei… • Ein einziges Ärgernis…
  • 5. Grundlagen • Wiederherstellungsmodelle – Einfach – Vollständig – Massenprotokolliert • Backup – Voll – Differentiell – Transaktion
  • 6. Grundlagen • Trennung von mdf/ndf‘s und ldf ! • Protokoll Dateien können endlos wachsen und nicht von selbst schrumpfen. • Vielen Admins sind sie ein Ärgernis. 
  • 7. Das Transaktion Protokoll • Während die Datenbank Dateien (mdf & ndf‘s) aus 8 KB Seiten aufgebaut sind, besteht das Transaktion Protokoll (ldf) aus sogenannten VLF (Virtuell Log Files). Diese haben KEINE einheitliche Größe. • In den VLF werden „Log Records“ gespeichert.
  • 8. Status eines VLF • Active (aktiver Teil…) – Mindestens ein „aktiver“ Log Record ist Teil des VLF • Recoverable – Wartet auf das nächste Backup • Reusable – Kann überschrieben werden • Unused – Wurde noch nie genutzt
  • 9. Log Buffer • Ein „neuer“ Buffer !  • Log Records werden erst im Log Buffer gesammelt und dann in einem Rutsch geschrieben (Performance, Performance…)
  • 10. VLF • Virtuelle Files in der ldf • Autogrowth • Wie viele VLFs hat mein Log File? – DBCC loginfo;
  • 11. Ldf Erweiterungen • <= 64MB = 4 VLFs • > 64MB & <= 1GB = 8 VLFs • > 1GB = 16 VLFs
  • 12. Wartung Protokolldatei • Zu viele VLFs… – Fragmentierung (extern & intern) • Zu wenig VLFs…
  • 19. Habe ich ein Problem? • sys.dm_os_wait_stats – WRITELOG • Perfmon – Average Disk sec/Read & …/Write • Limits des Log Managers
  • 20. Log File Latenz / In-flight • Vor SQL 2008 : 480 KB • Ab SQL 2008 : 3840 KB • 32 Bit : 8 ausstehende IO‘s • 64 Bit : 32 ausstehende IO‘s
  • 21. Beispiel in-flight Latenz Quelle: http://sqlcat.com/sqlcat/b/technicalnotes/archive/2008/12/09/diagnosing-transaction-log-performance-issues-and-limits-of-the-log-manager.aspx
  • 22. Beispiel in-flight Latenz Quelle: http://sqlcat.com/sqlcat/b/technicalnotes/archive/2008/12/09/diagnosing-transaction-log-performance-issues-and-limits-of-the-log-manager.aspx
  • 23. Ein Blick ins Log • sys.fn_dblog • DBCC TRACEON(2537) • DBCC TRACEOFF(2537)
  • 24. Decode it… 2 Byte : Status Bits 2 Bytes: Offset to find number of columns X Bytes: Fixed Length Columns 2 Bytes: Total Number of Columns in the data row 1 Bit per column, Rounded up: Nullability Bitmap 2 Bytes: Number of Variable Length Columns within the data row 2 Bytes per variable length column : Row Offset marking the end of each variable length column X Bytes: Variable Length Columns Quelle: http://sqlfascination.com/2010/02/03/how-do-you-decode-a-simple-entry-in-the-transaction-log-part-1/
  • 25. fn_dump_dblog() SELECT * FROM fn_dump_dblog ( NULL, NULL, N'DISK', 1, N‚F:BACKUPLog4711.trn', DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT);
  • 26. So… Hoffe, das war für den Moment „deep“ genug… Bei Fragen: lorenz@psg.de