Hvad er LDF-filformatet?
En .ldf-fil er en Transaction Log File oprettet af Microsoft SQL Server til at registrere enhver ændring foretaget i en database, før disse ændringer skrives til disken. Den implementerer en «write-ahead logging»-strategi: SQL Server skriver først en logpost og anvender derefter den tilsvarende ændring på datasiderne.
Enhver .ldf fungerer som den parrede ledsager til en primær .mdf-datafil. Uden en sund logfil kan databasen ikke komme online; sletning eller tab af en .ldf uden for kontrollerede procedurer kan gøre en database umulig at gendanne.
Internt er loggen opdelt i Virtual Log Files (VLFs) - faste segmenter, som SQL Server tildeler og genbruger i en cirkulær form. Hver logpost bærer et unikt Log Sequence Number (LSN), en 10-byte værdi, der koder filnummeret, blok-offset og plads i en 512-byte logblok. LSN-kæden er det, motoren følger under gendannelse efter nedbrud for at gentage (redo) bekræftede transaktioner og fortryde (undo) ufuldstændige.
.ldf-filen understøtter flere kritiske SQL Server-funktioner:
- Gendannelse efter nedbrud - genafspilning eller tilbagerulning af igangværende transaktioner efter en uventet nedlukning
- Point-in-time gendannelse - bruges sammen med en .bak fuld backup og .trn log-backups under FULL-gendannelsesmodellen
- Replikering og Change Data Capture (CDC) - læsning af bekræftede ændringer direkte fra loggen
Formatet er proprietært binært uden offentligt dokumenterede «magic bytes» og kan ikke åbnes manuelt. Tredjepartsværktøjer som ApexSQL Log eller Redgate SQL Log kan afkode logposter til revisions- eller efterforskningsformål. Fra SQL Server 2017 og frem understøttes .ldf-filer identisk på Linux og i Docker-containere sammen med de sekundære .ndf-datafiler.
Sikkerhed og tryghed
RISIKO: MEDIUMFilen er data, ikke eksekverbar, så den udgør ingen direkte malware-risiko. Den reelle fare er operationel: sletning eller afbrydelse af en .ldf fra en live eller «suspect» database kan forårsage datatab eller gøre databasen umulig at gendanne, og oprettelse af en database uden dens log (eller med en genopbygget log) mister igangværende transaktioner. Rediger aldrig en .ldf manuelt. Hvis loggen er enorm, skal du formindske den på den understøttede måde (tag backup af loggen, derefter DBCC SHRINKFILE) i stedet for at slette den. TDE-krypterede logfiler kræver databasens certifikat/nøgler for at gendanne.
Formatdetaljer
kort fortaltProgrammer der åbner LDF-filer
Tekniske detaljer
dyb specifikation| Kodning | Binær, little-endian |
| Containerstruktur | Sekvens af Virtual Log Files (VLFs); SQL Server tildeler og genbruger VLFs i et cirkulært mønster, efterhånden som logplads frigøres |
| Logpost-enhed | Logposter med variabel længde pakket i 512-byte logblokke |
| Post-identifikator | Log Sequence Number (LSN) - en 10-byte værdi, der koder logfilnummeret, blok-offset i filen og pladsnummeret i blokken |
| Cirkulær genanvendelse | Logplads frigøres og genbruges, når den aktive del ikke længere er nødvendig - efter et checkpoint i SIMPLE-model eller en log-backup i FULL-model |
| Understøttelse af gendannelsesmodel | Adfærd varierer efter SQL Server-gendannelsesmodel: SIMPLE (auto-afkorter ved checkpoint), BULK-LOGGED (minimal logning for bulk-operationer), FULL (loggen vokser, indtil der tages en log-backup) |
| Parret datafil | Altid parret med mindst én primær `.mdf`-datafil; yderligere datafiler bruger filtypen `.ndf` |
| Maksimal filstørrelse | Op til 2 TB pr. logfil på Windows NTFS/ReFS; en enkelt database kan have flere `.ldf`-filer, hver underlagt denne grænse |
| Kryptering | Ukrypteret som standard; krypteres automatisk, når Transparent Data Encryption (TDE) er aktiveret på databasen |
| Komprimering | Selve `.ldf`-filen gemmes ukomprimeret; log-backups skrevet til `.trn`- eller `.bak`-filer kan bruge SQL Server backup-komprimering |
| Checksum / integritet | Valgfri «torn-page»-detektion og side-checksums, der kan konfigureres på databaseniveau; motoren validerer LSN-kæden ved hver gendannelse |
| Auto-vækst | SQL Server udvider automatisk `.ldf`-filen, når den er fuld; vækststigningen kan konfigureres i faste MB eller procent; overdreven auto-vækst i små trin forårsager VLF-fragmentering og langsommere gendannelse |
| Intern versionsbinding | Formatet er bundet til SQL Server-motorversionen og databasens kompatibilitetsniveau; SQL Server 2022 bruger f.eks. intern databaseversion 904 |
| OS-platform understøttelse | Windows (alle moderne SQL Server-versioner); Linux og Docker-containere (SQL Server 2017 og senere via SQL Server on Linux) |
| MIME-type | application/octet-stream (ingen dedikeret MIME-type registreret for dette format) |
| Direkte adgang | Ikke beregnet til direkte åbning eller parsing; tilgås via SQL Server-motortilknytning, RESTORE DATABASE-kommandoer eller tredjeparts log-læsere som ApexSQL Log eller Redgate SQL Log |
| Udgivet | Microsoft SQL Server (log architecture present since the Sybase-derived 4.x/6.x era, 1990s) |
| Seneste version | Format tied to the database compatibility/engine version (e.g. SQL Server 2022, internal db version 904) |
| Specifikation | learn.microsoft.com |
LDF-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om LDF-filer.