Está certo limitar o tamanho do templog no SQL Server 2005?

1

Eu tenho um problema que estou investigando pelo qual meu arquivo de log tempdb cresce fora de qualquer proporção para qualquer coisa que pareça sensata. Esta manhã foi mais de 10x o tamanho dos arquivos de dados. No entanto, o banco de dados continua funcionando bem e o único limite para o tamanho do modelo parece ser o tamanho do disco em que está.

Minha pergunta então, seria seguro para mim limitar o tamanho do templog, eu ouvi que você não deve limitar o tamanho do tempdb, pois é crítico para o trabalho que precisa ser feito dentro do sql server. Mas, o fato do arquivo de log crescer apenas para o tamanho permitido pelo disco sugere que eu poderia limitá-lo sem quebrar nada. É este o caso? Em caso afirmativo, existe um limite inferior (ou seja, o tamanho combinado dos arquivos de dados) eu não deveria limitá-lo abaixo?

A propósito, percebo que isso não é uma solução para a questão do crescimento do registro, que está sendo investigado, mas pode não ser resolvido em breve.

Felicidades,

    
por Robin 03.09.2009 / 15:03

2 respostas

2

Tudo o que você fará ao limitar o tamanho do log é causar uma falha quando o que estiver aumentando o log atingir o limite. (Será erro e provavelmente reverter a transação).

Na verdade, pode ser uma maneira utilizável de ver o que está aumentando o log tão grande! :) Embora uma maneira ainda melhor seja usar o Perfmon para monitorar o contador SQL: Database Usado (kb) para ver quando está crescendo, e correlacionar com outra atividade no servidor.

    
por 03.09.2009 / 15:32
1

Tivemos um problema semelhante, depois de termos levantado a chamada do PSS com a Microsoft e investigado em profundidade a questão que definimos na seguinte possível causa e resolução.

Causa:

A causa provável dos sintomas deve-se a discos / lun nos quais os bancos de dados do usuário são colocados com problemas graves de resposta de E / S; isso faz com que o ponto de verificação automático nos bancos de dados do usuário demore muito para ser concluído.

Agora, o ponto de verificação no tempdb ocorre apenas quando o log do tempdb fica 70% cheio e também tem uma prioridade mais baixa do que os pontos de verificação do banco de dados do usuário. Portanto, efetivamente quando o ponto de verificação automático no banco de dados do usuário é emitido e está tentando concluir, devido ao uso intenso do tempdb, o arquivo de log do tempdb é preenchido rapidamente; com 70% de uso de log, o ponto de verificação tempdb ocorre, mas é enfileirado atrás do ponto de verificação do banco de dados do usuário.

No tempo que leva para o ponto de verificação do banco de dados do usuário concluir o arquivo de log do tempdb sendo preenchido e, se o crescimento automático estiver definido, o arquivo de log aumentará quando ele exigir mais espaço. Essa é a razão pela qual o arquivo de log continua crescendo.

Em resumo, a causa raiz mais provável para os sintomas que você descreve é devido à fraca resposta de I / O dos discos / lun para o seu usuário e / ou banco de dados tempdb / arquivos de log.

Solução:

Trabalhamos em torno do problema enquanto resolvemos o subsistema de E / S configurando um alerta que disparou quando o arquivo de log tempdb ficou cheio em 75% e em resposta executou um trabalho que forçou um manual "CHECKPOINT" (que tem precedência sobre pontos de verificação automáticos do sistema), limpando o log do tempdb evitando que ele cresça indefinidamente. Ainda é uma boa ideia deixar o arquivo de registro em crescimento automático para qualquer outra eventualidade.

Espero que isso ajude.

    
por 03.09.2009 / 16:29