Vad är filformatet LDF?
En .ldf-fil är en Transaction Log File skapad av Microsoft SQL Server för att registrera varje ändring som görs i en databas innan dessa ändringar skrivs till disken. Den implementerar en strategi för förhandsskrivning av loggar (write-ahead logging): SQL Server skriver en loggpost först och tillämpar sedan motsvarande ändring på datasidorna.
Varje .ldf fungerar som den parade följeslagaren till en primär .mdf-datafil. Utan en fungerande loggfil kan databasen inte startas; att radera eller förlora en .ldf utanför kontrollerade procedurer kan göra en databas omöjlig att återställa.
Internt är loggen uppdelad i Virtual Log Files (VLFs) - fasta segment som SQL Server tilldelar och återanvänder i ett cirkulärt mönster. Varje loggpost bär ett unikt Log Sequence Number (LSN), ett 10-byte-värde som kodar filnummer, blockoffset och plats inom ett 512-byte loggblock. LSN-kedjan är vad motorn följer under kraschåterställning för att göra om (redo) bekräftade transaktioner och ångra (undo) ofullständiga.
.ldf-filen ligger till grund för flera kritiska SQL Server-funktioner:
- Kraschåterställning - uppspelning eller tillbakarullning av pågående transaktioner efter en oväntad avstängning
- Återställning till tidpunkt (Point-in-time restore) - används tillsammans med en .bak fullständig säkerhetskopia och .trn logg-säkerhetskopior under FULL-återställningsmodellen
- Replikering och Change Data Capture (CDC) - läsning av bekräftade ändringar direkt från loggen
Formatet är proprietär binärkod utan offentligt dokumenterade «magic bytes» och kan inte öppnas manuellt. Tredjepartsverktyg som ApexSQL Log eller Redgate SQL Log kan avkoda loggposter för granskning eller forensiska ändamål. Från SQL Server 2017 och framåt stöds .ldf-filer identiskt på Linux och i Docker-containrar tillsammans med sekundära .ndf-datafiler.
Säkerhet & trygghet
RISK: MEDIUMFilen är data, inte körbar, så den innebär ingen direkt risk för skadlig kod. Den verkliga faran är operativ: att radera eller koppla bort en .ldf från en aktiv eller «suspect» databas kan orsaka dataförlust eller göra databasen oåterkallelig, och att skapa en databas utan dess logg (eller med en återskapad logg) förlorar pågående transaktioner. Redigera aldrig en .ldf manuellt. Om loggen är enorm, krymp den på det sätt som stöds (säkerhetskopiera loggen, sedan DBCC SHRINKFILE) istället för att radera den. TDE-krypterade loggar kräver databasens certifikat/nycklar för att återställas.
Formatdetaljer
i ett nötskalProgram som öppnar LDF-filer
Tekniska detaljer
djup specifikation| Kodning | Binär, little-endian |
| Containerstruktur | Sekvens av Virtual Log Files (VLFs); SQL Server tilldelar och återanvänder VLFs i ett cirkulärt mönster när loggutrymme frigörs |
| Loggpostenhet | Loggposter med variabel längd packade i 512-byte loggblock |
| Postidentifierare | Log Sequence Number (LSN) - ett 10-byte-värde som kodar loggfilsnummer, blockoffset i filen och platsnummer i blocket |
| Cirkulär återanvändning | Loggutrymme återvinns och återanvänds när den aktiva delen inte längre behövs - efter en kontrollpunkt i SIMPLE-modellen eller en logg-säkerhetskopia i FULL-modellen |
| Stöd för återställningsmodeller | Beteendet skiljer sig per SQL Server-återställningsmodell: SIMPLE (auto-trunkerar vid kontrollpunkt), BULK-LOGGED (minimal loggning för bulkoperationer), FULL (loggen växer tills en logg-säkerhetskopia tas) |
| Parad datafil | Alltid parad med minst en primär `.mdf`-datafil; ytterligare datafiler använder filtillägget `.ndf` |
| Maximal filstorlek | Upp till 2 TB per loggfil på Windows NTFS/ReFS; en enskild databas kan ha flera `.ldf`-filer, var och en omfattas av denna gräns |
| Kryptering | Okrypterad som standard; krypteras automatiskt när Transparent Data Encryption (TDE) är aktiverat på databasen |
| Komprimering | Själva `.ldf`-filen lagras okomprimerad; logg-säkerhetskopior skrivna till `.trn`- eller `.bak`-filer kan använda SQL Server-säkerhetskopieringskomprimering |
| Kontrollsumma / integritet | Valfri detektering av «torn-page» och sidkontrollsummor konfigurerbara på databasnivå; motorn validerar LSN-kedjan vid varje återställning |
| Automatisk tillväxt | SQL Server utökar automatiskt `.ldf` när den blir full; tillväxtökningen är konfigurerbar i fasta MB eller procent; överdriven automatisk tillväxt i små steg orsakar VLF-fragmentering och långsammare återställning |
| Intern versionsbindning | Formatet är bundet till SQL Server-motorns version och databasens kompatibilitetsnivå; SQL Server 2022 använder till exempel intern databasversion 904 |
| Stöd för operativsystem | Windows (alla moderna SQL Server-versioner); Linux och Docker-containrar (SQL Server 2017 och senare via SQL Server on Linux) |
| MIME-typ | application/octet-stream (ingen dedikerad MIME-typ registrerad för detta format) |
| Direktåtkomst | Inte avsedd för direkt öppning eller parsning; nås via SQL Server-motorns bifogning, RESTORE DATABASE-kommandon eller tredjeparts loggläsare som ApexSQL Log eller Redgate SQL Log |
| Släppt | Microsoft SQL Server (log architecture present since the Sybase-derived 4.x/6.x era, 1990s) |
| Senaste version | Format tied to the database compatibility/engine version (e.g. SQL Server 2022, internal db version 904) |
| Specifikation | learn.microsoft.com |
LDF-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om LDF-filer.