Arquivo ldf do SQL Server 2005 HUGE

1

Eu tenho um banco de dados no SQL Server 2005 que é de 24Gb. O arquivo ldf que vem com ele é agora 47Gb. Não consigo executar um backup do banco de dados devido à falta de espaço em disco. A minha pergunta é: como faço para que esse arquivo ldf baixe muito menos (ou mesmo zero) e como evito que ele fique grande demais no futuro? O banco de dados foi submetido a backup usando o Brightstor, mas o ldf ainda é enorme.

Obrigado pela sua ajuda.

    
por Tobu 28.06.2010 / 11:16

4 respostas

3

Assumindo que seu banco de dados / aplicativo está funcionando normalmente e não faz muitas atualizações. E supondo que você não esteja fazendo nenhum backup de log de transações, é necessário fazer uma das duas coisas:

  • Inicie os backups do log de transações (além dos backups do banco de dados)
  • Ou (como foi sugerido) mudar seu banco de dados para modo de recuperação simples

Para definir o banco de dados para recuperação simples, use o SSMS ou execute o seguinte TSQL no banco de dados:

ALTER DATABASE [DBNAME] SET RECOVERY SIMPLE;

Quando o banco de dados estiver usando o modelo de recuperação simples, faça um backup completo. Depois disso, você precisará informar ao SQLServer para reduzir explicitamente o arquivo de log executando o seguinte TSQL:

DBCC SHRINKFILE (FileName, TargetSize)

em que o nome do arquivo é o nome do arquivo de registro do banco de dados (por exemplo, DBNAME_Log) e o tamanho do alvo é em megabytes (lembre-se de não querer torná-lo muito pequeno, senão ele terá que crescer novamente nível 'normal')

    
por 28.06.2010 / 12:25
0

A primeira coisa que vem à mente é: como está o modo de registro definido no banco de dados? Se você alterá-lo para simples, deve reduzir o tamanho disso.

Este link pode ajudar: link

    
por 28.06.2010 / 11:19
0

Se o backup está falhando devido à falta de espaço, parece que você está fazendo o backup na mesma unidade em que você tem seus logs (e possivelmente dados?). Espero que o Brightstor esteja fazendo o backup para um servidor fora do servidor?

Você precisa de backups de log para recuperação? Caso contrário, mude para o modo de recuperação SIMPLE e, em seguida, reduza os arquivos de log de transações.

Se você precisar de backups de log, poderá recuperar espaço executando um backup de log com TRUNCATE_ONLY seguido por um encolhimento de log e, em seguida, um backup completo de banco de dados para poder iniciar novamente sua cadeia de backup.

Dado que o seu ldf é enorme, imagino que você simplesmente não esteja fazendo backups de log com o DB no modo de recuperação COMPLETO, portanto, ele continuará crescendo até que você faça o backup ou mude para a recuperação SIMPLE.

    
por 28.06.2010 / 12:25
0

Você precisa definir o registro de seu banco de dados como simples (mas somente se você fizer Backups Completos do seu banco de dados!).

  1. Clique com o botão direito do mouse no seu banco de dados
  2. Escolha Propriedades
  3. Escolha Opções
  4. Defina o modo de recuperação como simples

Isso funcionará e será melhor se sua programação de backup for Backup completo todos os dias. Porque em tal cenário seu log não será cortado e vai disparar.

Se você usaria a técnica de backup Avô e Pai & Filho. O que significa Backup completo mensal , Backup completo semanal e, em seguida, todo backup incremental de dia . Então, para isso, você precisa do Modo de recuperação total .

Portanto, no seu caso, se você executar o Backup completo todos os dias, poderá alterná-lo para o modo de recuperação simples e deverá ficar bem sem arriscar seus dados. Se você planeja usar incremental, deixe-o em Recovery Mode Full .

    
por 28.06.2010 / 11:36