O que é o formato de ficheiro LDF?
Um arquivo .ldf é um Arquivo de Log de Transações criado pelo Microsoft SQL Server para registrar cada alteração feita em um banco de dados antes que essas alterações sejam gravadas no disco. Ele implementa uma estratégia de log de gravação antecipada (write-ahead logging): o SQL Server grava um registro de log primeiro e, em seguida, aplica a alteração correspondente às páginas de dados.
Cada .ldf funciona como o companheiro emparelhado de um arquivo de dados primário .mdf. Sem um arquivo de log íntegro, o banco de dados não pode ficar online; excluir ou perder um .ldf fora dos procedimentos controlados pode tornar um banco de dados irrecuperável.
Internamente, o log é dividido em Arquivos de Log Virtuais (VLFs) - segmentos fixos que o SQL Server aloca e reutiliza de forma circular. Cada registro de log carrega um Número de Sequência de Log (LSN) exclusivo, um valor de 10 bytes que codifica o número do arquivo, o deslocamento do bloco e o slot dentro de um bloco de log de 512 bytes. A cadeia de LSN é o que o mecanismo segue durante a recuperação de falhas para refazer transações confirmadas e desfazer as incompletas.
O .ldf sustenta vários recursos críticos do SQL Server:
- Recuperação de falhas - reproduzindo ou revertendo transações em andamento após um desligamento inesperado
- Restauração de ponto no tempo - usado em conjunto com um backup completo .bak e backups de log .trn sob o modelo de recuperação FULL
- Replicação e Change Data Capture (CDC) - lendo alterações confirmadas diretamente do log
O formato é binário proprietário, sem magic bytes documentados publicamente, e não pode ser aberto manualmente. Ferramentas de terceiros, como ApexSQL Log ou Redgate SQL Log, podem decodificar registros de log para fins de auditoria ou perícia. A partir do SQL Server 2017, os arquivos .ldf são suportados de forma idêntica no Linux e em contêineres Docker, juntamente com os arquivos de dados secundários .ndf.
Segurança e proteção
RISCO: MEDIUMO arquivo contém dados, não é executável, portanto não oferece risco direto de malware. O perigo real é operacional: excluir ou desanexar um .ldf de um banco de dados ativo ou «suspeito» pode causar perda de dados ou tornar o banco de dados irrecuperável, e criar um banco de dados sem seu log (ou com um log reconstruído) perde transações em andamento. Nunca edite manualmente um .ldf. Se o log estiver enorme, reduza-o da maneira suportada (faça backup do log e use DBCC SHRINKFILE) em vez de excluí-lo. Logs criptografados por TDE exigem o certificado/chaves do banco de dados para restauração.
Detalhes do formato
em resumoProgramas que abrem arquivos LDF
Detalhes técnicos
especificação profunda| Codificação | Binário, little-endian |
| Estrutura do contêiner | Sequência de Arquivos de Log Virtuais (VLFs); o SQL Server aloca e reutiliza VLFs em um padrão circular conforme o espaço de log é liberado |
| Unidade de registro de log | Registros de log de comprimento variável compactados em blocos de log de 512 bytes |
| Identificador de registro | Número de Sequência de Log (LSN) - um valor de 10 bytes que codifica o número do arquivo de log, o deslocamento do bloco dentro do arquivo e o número do slot dentro do bloco |
| Reutilização circular | O espaço de log é recuperado e reutilizado assim que a parte ativa não é mais necessária - após um checkpoint no modelo SIMPLE ou um backup de log no modelo FULL |
| Suporte ao modelo de recuperação | O comportamento difere por modelo de recuperação do SQL Server: SIMPLE (trunca automaticamente no checkpoint), BULK-LOGGED (log mínimo para operações em massa), FULL (o log cresce até que um backup de log seja feito) |
| Arquivo de dados emparelhado | Sempre emparelhado com pelo menos um arquivo de dados primário `.mdf`; arquivos de dados adicionais usam a extensão `.ndf` |
| Tamanho máximo do arquivo | Até 2 TB por arquivo de log no Windows NTFS/ReFS; um único banco de dados pode ter vários arquivos `.ldf`, cada um sujeito a este limite |
| Criptografia | Não criptografado por padrão; criptografado automaticamente quando a Criptografia de Dados Transparente (TDE) está habilitada no banco de dados |
| Compressão | O próprio `.ldf` é armazenado sem compactação; backups de log gravados em arquivos `.trn` ou `.bak` podem usar a compactação de backup do SQL Server |
| Checksum / integridade | Detecção opcional de página interrompida (torn-page) e checksums de página configuráveis no nível do banco de dados; o mecanismo valida a cadeia de LSN em cada recuperação |
| Crescimento automático | O SQL Server aumenta automaticamente o `.ldf` quando ele enche; o incremento de crescimento é configurável em MB fixos ou porcentagem; o crescimento automático excessivo em pequenos incrementos causa fragmentação de VLF e recuperação mais lenta |
| Vinculação de versão interna | O formato está vinculado à versão do mecanismo do SQL Server e ao nível de compatibilidade do banco de dados; o SQL Server 2022, por exemplo, usa a versão interna do banco de dados 904 |
| Suporte de plataforma de SO | Windows (todas as versões modernas do SQL Server); Linux e contêineres Docker (SQL Server 2017 e posterior via SQL Server on Linux) |
| Tipo MIME | application/octet-stream (nenhum tipo MIME dedicado registrado para este formato) |
| Acesso direto | Não se destina à abertura ou análise direta; acessado por meio de anexo do mecanismo SQL Server, comandos RESTORE DATABASE ou leitores de log de terceiros, como ApexSQL Log ou Redgate SQL Log |
| Lançado | Microsoft SQL Server (log architecture present since the Sybase-derived 4.x/6.x era, 1990s) |
| Versão mais recente | Format tied to the database compatibility/engine version (e.g. SQL Server 2022, internal db version 904) |
| Especificação | learn.microsoft.com |
Conversões de LDF
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos LDF.