Mais de um arquivo de log (.ldf) no SQL Server?

Mais de um arquivo de log (.ldf) no SQL Server?

13:00 31 August in Gestão de Infraestrutura, Implantação de Soluções
0 Comments

Fala galera, tudo beleza?

Nessa postagem, vou abordar um assunto que me deixou muito surpreso e curioso. Quando ouvi um amigo dizer que criou dois arquivos de log (ldf), no primeiro momento achei que ele estivesse brincando, pois nunca tinha visto nenhum banco de dados SQL Server com mais de um arquivo LDF. Em documentos oficiais da Microsoft, sempre é mencionado como boas práticas ter um arquivo de MDF, alguns NDF e um LDF.

Pesquisando mais sobre o assunto, descobri que realmente é possível criar mais de um LDF para um banco de dados. Encontrei referências em alguns blogs de respeito, como o de Fabrício Lima e também do mito Paul Randal, que relatam justamente essa questão sobre múltiplos LDFs.

Analisando os fatos com mais detalhes, me peguei pensando sobre qual seria a necessidade de se criar mais de um arquivo de log. Segurança? Performance? Espaço físico?

O SQL Server escreve no log de forma sequencial, nunca aleatória. Internamente, ele entende múltiplos arquivos de log como se fossem apenas um só, como se fosse um “lógão”. Dessa forma, se você criar dois arquivos de logs com dez gigabytes cada, o SQL Server entenderá que existem 20 gigabytes de log para utilizar, e vai preenchendo esse espaço de forma sequencial. Com isso, a questão de performance morre aqui, pois mesmo se criarmos dois arquivos em unidades diferentes, o SQL não irá dividir as transações entre os dois discos.

No caso de segurança, não vejo nenhuma vantagem. Na verdade, analisando friamente, podemos criar um possível problema. Múltiplos arquivos implicam em novos pontos de falhas, e essas falhas podem ocorrer por corrupção, falha na unidade ou qualquer outro motivo que deixe o banco de dados off-line, causando um grande problema.

Assim, o único cenário em que vejo a necessidade de criar mais de um arquivo de log ocorre quando o arquivo existente precisa crescer e no disco atual não existe mais espaço físico. Neste caso, uma solução seria criar um novo arquivo ldf em outra unidade de disco, assim alongando o log. Porém, sabemos que o crescimento do log descontrolado é decorrência de algum problema ou fato esporádico, como transações abertas, alguma operação que manipulou grande operação de dados, DBCCs, entre outras.

Portanto, antes de criar outro arquivo de log, devemos analisar com cuidado nosso ambiente e entendo que a criação do segundo arquivo seria em casos de extrema urgência. Para todos os outros casos, existem maneiras de contornar a situação.

Até o próximo artigo, grande abraço!

 

**Este texto é uma produção independente e, portanto, de inteira responsabilidade do autor, não refletindo a opinião da Infobase.

Luiz Henrique Garetti Rosário

luizh.rosario@gmail.com

Graduado em Ciência da Computação pela Universidade Paulista e Pós-graduando em Business Intelligence pelo instituto Brasileiro de Tecnologia Avançada (IBTA). Especialista SQL Server atuando como DBA/Consultor em projetos de diversos portes, focando em arquiteturas de Alta Disponibilidade utilizando ambientes em Failover Cluster, Database Mirror, AlwaysOn e Administração de Banco de Dados em geral. Contribui para a comunidade com artigos técnicos publicados em grandes eventos na área de Banco de Dados com foco em Alta Disponibilidade e distribuição geográfica dos dados.