MSSQL Server 10 crescimento de log de fuga, 100 GB / semana

2

Eu comecei como Gerente de TI e meu mandato abrange o servidor MSSQL. Um banco de dados que eu herdei usa cerca de 100GB de HD no espaço de uma semana, no arquivo LDF. Isso, por sua vez, usa todo o espaço em disco disponível na unidade C: e o servidor cai.

Posso, portanto, usar a opção Restricted File Growth no arquivo LDF para pará-lo usando a unidade inteira? Se sim, o que acontece quando este arquivo está cheio?

Além disso, o que estaria causando esse tipo de atividade? Isso seria devido a uma consulta SQL mal escrita?

    
por Skeep 27.09.2010 / 10:01

7 respostas

6

Verifique se os bancos de dados estão no modo de recuperação completa. Se eles são, você tem trabalhos em execução para realmente fazer backup dos logs de transação em execução em uma programação freqüente o suficiente para mantê-los em um tamanho gerenciável?

Editar:

Quando o arquivo estiver cheio devido a um crescimento restrito, seu banco de dados interromperá o processamento das transações, pois não tem onde registrá-las. Você precisa resolver o motivo do crescente número de arquivos, em vez de restringir o arquivo.

    
por 27.09.2010 / 10:09
4

Se for um banco de dados extremamente ocupado (e extremamente grande), 100 GB de logs por semana podem não ser escandalosos. Sem mais informações sobre tamanho de banco de dados, volume de transações, tamanhos de registros, etc., é difícil para nós julgarmos.

A pergunta mais importante é: se esse banco de dados está sendo submetido a backup todas as noites, por que os logs não estão sendo removidos? Normalmente, não é necessário se preocupar com o volume de log de transações por semana .

Informações básicas:

  1. Em um servidor MSSQL configurado corretamente, os logs de transação são separados fisicamente dos dados: eles residem não apenas em um volume separado, mas em uma matriz RAID completamente separada.
  2. Se o banco de dados (ou o volume físico que armazena o banco de dados) for perdido, você poderá restaurar a partir do backup mais recente e reproduzir os logs de transação para recuperar dados até o momento em que a falha ocorreu .
  3. Todas as entradas do log de transações criadas antes do seu backup mais recente podem ser removidas do arquivo LDF. Normalmente, os próprios logs são copiados antes de serem removidos; isso mantém a possibilidade de recuperar para pontos arbitrários no tempo que podem ser anteriores ao backup mais recente, se os backups mais antigos forem mantidos.

Então, eis a grande questão: como é feito o backup desse servidor SQL e os logs de transação são removidos no momento de cada backup? Houve um processo de backup noturno que parou de funcionar?

Se o administrador anterior estava com preguiça de usar contas de serviço adequadas - e isso não é incomum - muitas coisas, incluindo backups, podem ter parado de funcionar quando sua conta foi desativada e a conta interna de administrador de domínio senha foi alterada.

    
por 27.09.2010 / 16:02
3

Além disso - dados e registros não têm negócios na unidade c. A exploração de IO em um banco de dados ocupado é a chave para o desempenho.

    
por 27.09.2010 / 11:27
1

Como o Chris disse, quando o seu banco de dados está definido para o modo de recuperação total, (o que é quase certo) você deve executar algum tipo de backup para truncar o log de transações. Se não, você verá crescer continuamente. Se você não se preocupa com a janela de recuperação desse banco de dados, basta definir o modo de recuperação de volta para Básico.

    
por 27.09.2010 / 14:16
1

Além disso, mova-os para fora da unidade C. Ficar sem essa unidade deixará o banco de dados travar e causar corrupção

    
por 27.09.2010 / 15:29
1

Eu mudaria para o modelo de recuperação no banco de dados de modelo de FULL para SIMPLE.

Em nossa organização, um modelo de recuperação TOTAL é uma decisão deliberada para a qual planejamos. Definir SIMPLE no banco de dados de modelo elimina a possibilidade de um arquivo de log preencher um drive porque ele não teve backups regulares.

    
por 27.09.2010 / 15:49
-1

Qual versão do MSSQL? O SQL Server 2008 removeu a capacidade de truncar arquivos de log (e eles têm motivos muito bons e válidos para isso), portanto, se o arquivo de log estiver fora de controle, será necessário iniciá-lo novamente e obter planos de manutenção apropriados para garantir que isso não acontece de novo.

Dito isto, se você não estiver usando:

  • Espelhamento
  • Envio do log de transações

Depois, não há motivos reais para você estar no modo de recuperação completa. Se você mudar para o Simple, o arquivo de log continuará crescendo.

    
por 27.09.2010 / 14:38