locked
Log ta crescendo muito sem explicação... RRS feed

  • Pergunta

  • Prezados,

    Estou com um problema que é o seguinte:
    Tenho um banco de dados e o mesmo atualmente nao passa de 1.5 gb.
    Tenho umas rotinas que faz backup FULL diariamente e backup do Log em hora em hora.
    Os problemas são:
    O Backup do log de hora em hora, nao funciona para esse banco. Da um erro que nao conseguir identificar. Rotina essa de geração de backup de log do proprio SQL2005. O mesmo tem varias ferramentas para realização desse tipo de tarefa.
    E o que mais me assuta é que quando chega de manha o o aquivo de log LBF fica com cerca de 80gb.
    Monitoro as transações e nao vejo nada preso. Apesar de um grande numero de processos aberto. Mas... nenhum "agarrado".

    Sou obrigado a truncar o log e da um SHRINK, senao o espaço em disco esgota.
    Antes, faço backup, mas esse Log não esvazia. Outra coisa que me chama atenção.

    En fim, queria ver se tem algum comando, rotina que faz uma avaliação nesse banco a fim de detectar algum problema e sugerir solução.
    As vezes penso que reiniciando o SQLServer possa resolver. Porem tem outro bancos nesse mesmo servidor e tudo está em produção.



    Alguém pode me nortear quanto a solução desse problema.
    Aceito sugestoes radicais também, em último caso :)

    Att
    sábado, 26 de setembro de 2009 12:34

Respostas

  • Felipe,

    Estava fazendo o contrario.
    Antes de "me arriscar" limpando o log e etc.. eu estava fazendo o backup full.
    Valeu pela dica.


    Mas... achei a cauza raiz do problema.
    Tinha um job, rotina,  que nunca apresentou problema até então. Porem, alteraram o extrator e fez com que o procedimento rodasse de forma não esperada, fazendo com que log crescesse rapidamente.
    Foi dificil descobrir o problema visto o mesmo ser executado conforme demanda, ou seja, conforme é depositado o extrator.
    E para ajduar, o disparo de email automatico quando ocorre erro no Job não estava sendo executado.

    Bom que com esse problema, aprendi outras coisas importantes.
    Obrigado a todos pela ajuda.


    terça-feira, 29 de setembro de 2009 02:32
  • Bom dia

    Adriano,apos você Truncar o Log manualmente,você fez algum backup FULL posteriormente ?

    Esta pode ser a razão dos backups de log estarem falhando,pois quando se trunca o log é quebrada a cadeia de LSN´s com isso não é possivel fazer nenhum backup de Log até ser feito um Backup FULL de qual cria uma nova cadeia de Log.

    Quando você truca o seu Transaction Log,você deve imediatamente realizar um backup FULL da sua base de dados.

    Aguardo seu retorno!




    Felipe Santana - MCP
    segunda-feira, 28 de setembro de 2009 11:04

Todas as Respostas

  • Bom dia Adriano,

    Primeiramente voce deve identificar o problema que estar causando a ausencia do backup do seu Log.
    Se não fizer o backup do Log,quando o banco estar operando no modo de recuperação FULL o log tende a continuar crescendo,pois entende-se que este estar "esperando" o backup do log para ser truncado "naturalmente".

    Você pode verificar o que estar impedindo o log de ser truncado executando a query abaixo:

    SELECT name,log_reuse_wait_desc
    FROM sys.databases
    WHERE name = 'Seu banco'

    Avalie as sugestões citadas e post seu retorno.
    Aguardo,até mais.
    Felipe Santana - MCP
    sábado, 26 de setembro de 2009 14:13
  • Ola Felipe,

    Rodei o comando e retornou Nothing

    O erro ao tentar gerar o backup do log e:
    Copyright (C) Microsoft Corp 1984-2005. All rights reserved.    Started:  8:50:00 AM  Progress: 2009-09-26 08:50:01.04     Source: {8ED987E8-2B16-4A99-9F4D-7C18CB6101A1}      Executing query "DECLARE @Guid UNIQUEIDENTIFIER      EXECUTE msdb..sp".: 100% complete  End Progress  Progress: 2009-09-26 08:50:01.45     Source: Back Up Database Task      Executing query "EXECUTE master.dbo.xp_create_subdir N'D:\Backupdb\".: 100% complete  End Progress  Progress: 2009-09-26 08:50:01.45     Source: Back Up Database Task      Executing query "EXECUTE master.dbo.xp_create_subdir N'D:\Backupdb\".: 100% complete  End Progress  Progress: 2009-09-26 08:50:01.46     Source: Back Up Database Task      Executing query "EXECUTE master.dbo.xp_create_subdir N'D:\Backupdb\".: 100% complete  End Progress  Progress: 2009-09-26 08:50:01.46     Source: Back Up Database Task      Executing query "EXECUTE master.dbo.xp_cr...  The package execution fa...  The step failed.

    Onde vejo esse erro completo?Alguma tabela em especial?
    sábado, 26 de setembro de 2009 21:34
  • Adriano,

    Vamos por partes, pois não consegui entender o que você realmente esta querendo fazer ou este tendo problemas!!!!

    Primeiramente você esta utilizando o SQL Server 2005 e trabalhando com uma base de dados de aproximadamente 1.5GB mas o log esta em torno de 80GB.

    Como esta configurado a taxa de crescimento deste banco, foi definido em megabytes ou porcentagem?

    Em relação a sua estratégia de backup, de quanto em quanto tempo utiliza o backup full?
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    domingo, 27 de setembro de 2009 01:15
    Moderador
  • Ok, Vamos por parte:

    Respondendo-lhe:
    No servidor tenho varios bancos de dados.
    A politica de backup é:
    FULL todos os dias de madrugada e os log a cada hora.
    Uso os recursos que o proprio SQLServer oferece para esse tipo de atividade.

    Sempre funcionou assim, a varios anos.
    Porem, nessa semana, me deparei com a seguinte situação.
    Um desses bancos estava com o Log de cerca de 80gb. O tamanho do banco não chega a 1,5gb.
    Como tava esgotando o espaço em disco, tive que truncar o log:
    Usei os comandos:
    BACKUP LOG [Banco] WITH TRUNCATE_ONLY
    DBCC SHRINKFILE (banco_log,10000)
    Foi necessario realizar isso, visto o HD esta zerado e compromentendo a funcionalidade de outros serviços.
    Taxa de crecimento esta em %(10%) Tamanho esta ilimitado.

    A partir de entao,verifiquei que a rotina de log, a cada hora, estava falhando. Só para esse banco.
    Os demais log - backups - dos outros bancos eram gerados, menos desse em especial.
    Erro que ocorre:
    \agentsql2005. ...00.3042.00 for 32-bit  Copyright (C) Microsoft Corp 1984-2005. All rights reserved.    Started:  12:50:00 PM  Progress: 2009-09-27 12:50:01.75     Source: {8ED987E8-2B16-4A99-9F4D-7C18CB6101A1}      Executing query "DECLARE @Guid UNIQUEIDENTIFIER      EXECUTE msdb..sp".: 100% complete  End Progress  Progress: 2009-09-27 12:50:02.06     Source: Back Up Database Task      Executing query "EXECUTE master.dbo.xp_create_subdir N'D:\Backupdb\".: 100% complete  End Progress  Progress: 2009-09-27 12:50:02.06     Source: Back Up Database Task      Executing query "EXECUTE master.dbo.xp_create_subdir N'D:\Backupdb\".: 100% complete  End Progress  Progress: 2009-09-27 12:50:02.07     Source: Back Up Database Task      Executing query "EXECUTE master.dbo.xp_create_subdir N'D:\Backupdb\".: 100% complete  End Progress  Progress: 2009-09-27 12:50:02.07     Source: Back Up Database Task      Executing query "EXECUTE master.dbo.xp_c...  The package execution fa...  The step failed.


    Pelo Monitor de Processos, verifiquei que não tinha nenhum processo preso, em "deadlok" ou a muito tempo em execução.

    Esse Log cresce assutadoramente depoís que realizoa os Backup Full do bancos.
    Nao sei se tem a ver, mas coincide com essse horário.
    OS Backup FULL são realizado com sucesso,  incluisive desse banco. Nao chega a 1gb o tamannho desse.
    Porem, a partir desse momento, o log desse banco começa a crescer e chega a cerca de 80gb antes das 10hs da manha.
    Agora fico tranquilo, porem a partir de amanha de madrugada, o sofrimento volta a ocorrer.

    A utilização desse banco e bem mediana. Nenhum processo cabuloso usa esse banco.

    Logo, nao sei por onde atuar, tipo:
    Criar um novo banco, rodar algum rotina de análise e etc.

    Espero que tenha conseguido clarear um pouco o meu problema.
    Desde ja, agradeço qualquer ajuda.


    Att









    domingo, 27 de setembro de 2009 16:42
  • Bom dia

    Adriano,apos você Truncar o Log manualmente,você fez algum backup FULL posteriormente ?

    Esta pode ser a razão dos backups de log estarem falhando,pois quando se trunca o log é quebrada a cadeia de LSN´s com isso não é possivel fazer nenhum backup de Log até ser feito um Backup FULL de qual cria uma nova cadeia de Log.

    Quando você truca o seu Transaction Log,você deve imediatamente realizar um backup FULL da sua base de dados.

    Aguardo seu retorno!




    Felipe Santana - MCP
    segunda-feira, 28 de setembro de 2009 11:04
  • Felipe,

    Estava fazendo o contrario.
    Antes de "me arriscar" limpando o log e etc.. eu estava fazendo o backup full.
    Valeu pela dica.


    Mas... achei a cauza raiz do problema.
    Tinha um job, rotina,  que nunca apresentou problema até então. Porem, alteraram o extrator e fez com que o procedimento rodasse de forma não esperada, fazendo com que log crescesse rapidamente.
    Foi dificil descobrir o problema visto o mesmo ser executado conforme demanda, ou seja, conforme é depositado o extrator.
    E para ajduar, o disparo de email automatico quando ocorre erro no Job não estava sendo executado.

    Bom que com esse problema, aprendi outras coisas importantes.
    Obrigado a todos pela ajuda.


    terça-feira, 29 de setembro de 2009 02:32
  • Adriano,

    Não, o que você pode fazer é realizar um backup full, truncar o log e depois fazer outro backup agora com o log já truncado.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    terça-feira, 29 de setembro de 2009 12:52
    Moderador