Hva er LDF-filformatet?
En .ldf-fil er en Transaction Log File opprettet av Microsoft SQL Server for å registrere hver endring som gjøres i en database før disse endringene skrives til disk. Den implementerer en «write-ahead»-loggingsstrategi: SQL Server skriver en loggpost først, og bruker deretter den tilsvarende endringen på datasidene.
Hver .ldf fungerer som den parvise følgesvennen til en primær .mdf-datafil. Uten en fungerende loggfil kan ikke databasen komme online; sletting eller tap av en .ldf utenfor kontrollerte prosedyrer kan gjøre en database umulig å gjenopprette.
Internt er loggen delt inn i Virtual Log Files (VLFs) - faste segmenter som SQL Server tildeler og gjenbruker i en sirkulær form. Hver loggpost bærer et unikt Log Sequence Number (LSN), en 10-byte verdi som koder filnummeret, blokkforskyvning (offset) og plassering innenfor en 512-byte loggblokk. LSN-kjeden er det motoren følger under gjenoppretting etter krasj for å rulle fremover (redo) utførte transaksjoner og angre (undo) ufullstendige.
.ldf-filen underbygger flere kritiske SQL Server-funksjoner:
- Gjenoppretting etter krasj - replaying eller tilbakerulling av pågående transaksjoner etter en uventet nedstenging
- Point-in-time-gjenoppretting - brukt sammen med en .bak full sikkerhetskopi og .trn loggsikkerhetskopier under FULL gjenopprettingsmodell
- Replikering og Change Data Capture (CDC) - lesing av utførte endringer direkte fra loggen
Formatet er proprietær binær uten offentlig dokumenterte «magic bytes» og kan ikke åpnes manuelt. Tredjepartsverktøy som ApexSQL Log eller Redgate SQL Log kan dekode loggposter for revisjon eller rettsmedisinske formål. Fra SQL Server 2017 og utover støttes .ldf-filer identisk på Linux og i Docker-containere sammen med .ndf sekundære datafiler.
Sikkerhet og trygghet
RISIKO: MEDIUMFilen er data, ikke kjørbar, så den utgjør ingen direkte risiko for skadevare. Den virkelige faren er operasjonell: sletting eller frakobling av en .ldf fra en aktiv eller «suspect» database kan føre til tap av data eller gjøre databasen umulig å gjenopprette, og oppretting av en database uten loggen (eller med en gjenoppbygd logg) mister pågående transaksjoner. Rediger aldri en .ldf manuelt. Hvis loggen er enorm, krymp den på den støttede måten (sikkerhetskopier loggen, deretter DBCC SHRINKFILE) i stedet for å slette den. TDE-krypterte logger krever databasens sertifikat/nøkler for å gjenopprettes.
Formatdetaljer
i et nøtteskallProgrammer som åpner LDF-filer
Tekniske detaljer
dyp spesifikasjon| Koding | Binær, little-endian |
| Beholderstruktur | Sekvens av Virtual Log Files (VLFs); SQL Server tildeler og gjenbruker VLFs i et sirkulært mønster etter hvert som loggplass frigjøres |
| Loggpostenhet | Loggposter med variabel lengde pakket inn i 512-byte loggblokker |
| Postidentifikator | Log Sequence Number (LSN) - en 10-byte verdi som koder loggfilnummeret, blokkforskyvning i filen og plassnummeret i blokken |
| Sirkulær gjenbruk | Loggplass blir frigjort og gjenbrukt når den aktive delen ikke lenger er nødvendig - etter et sjekkpunkt i SIMPLE-modell eller en loggsikkerhetskopi i FULL-modell |
| Støtte for gjenopprettingsmodell | Atferden varierer per SQL Server-gjenopprettingsmodell: SIMPLE (auto-avkorter ved sjekkpunkt), BULK-LOGGED (minimal logging for bulkoperasjoner), FULL (loggen vokser til en loggsikkerhetskopi er tatt) |
| Parvis datafil | Alltid parret med minst én `.mdf` primær datafil; ytterligere datafiler bruker filendelsen `.ndf` |
| Maks filstørrelse | Opptil 2 TB per loggfil på Windows NTFS/ReFS; en enkelt database kan ha flere `.ldf`-filer, hver underlagt denne grensen |
| Kryptering | Ukryptert som standard; krypteres automatisk når Transparent Data Encryption (TDE) er aktivert på databasen |
| Komprimering | Selve `.ldf`-filen lagres ukomprimert; loggsikkerhetskopier skrevet til `.trn`- eller `.bak`-filer kan bruke SQL Server sikkerhetskopikomprimering |
| Sjekksum / integritet | Valgfri «torn-page»-deteksjon og sidesjekksummer konfigurerbare på databasenivå; motoren validerer LSN-kjeden ved hver gjenoppretting |
| Auto-vekst | SQL Server utvider `.ldf` automatisk når den blir full; vekstøkningen er konfigurerbar i faste MB eller prosent; overdreven auto-vekst i små trinn forårsaker VLF-fragmentering og tregere gjenoppretting |
| Intern versjonsbinding | Formatet er knyttet til SQL Server-motorversjonen og databasens kompatibilitetsnivå; SQL Server 2022 bruker for eksempel intern databaseversjon 904 |
| OS-plattformstøtte | Windows (alle moderne SQL Server-versjoner); Linux og Docker-containere (SQL Server 2017 og nyere via SQL Server på Linux) |
| MIME-type | application/octet-stream (ingen dedikert MIME-type registrert for dette formatet) |
| Direkte tilgang | Ikke beregnet for direkte åpning eller parsing; aksesseres gjennom SQL Server-motoren, RESTORE DATABASE-kommandoer eller tredjeparts logglesere som ApexSQL Log eller Redgate SQL Log |
| Utgitt | Microsoft SQL Server (log architecture present since the Sybase-derived 4.x/6.x era, 1990s) |
| Siste versjon | Format tied to the database compatibility/engine version (e.g. SQL Server 2022, internal db version 904) |
| Spesifikasjon | learn.microsoft.com |
LDF-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om LDF-filer.