none
Diminuindo tamanho do Log (SQL 2008) RRS feed

  • Pergunta

  • bom dia, tenho banco de dados que os logs crescem muito, o backup esta no modo FULL e é feito um backup de log de hora em hora.

    Como posso aplicar uma rotina para diminuir este tamanho de forma emergencial sabendo que o comando "truncate_only" foi descontinuado.

    Obrigado,

    sexta-feira, 22 de novembro de 2013 11:48

Respostas

  • Amigo, não sei lhe informar se é uma boa pratica, mais no SQL 2008 você pode usar esta rotina para fazer shrink no log do seu banco de dados.
    --Esta Query é para diminuir o tamanho do log SQL server 2008.
    
    USE BANCO_DE_DADOS;
    GO
    --Truncar o log, alterando o modelo de recuperação de dados para SIMPLE.
    ALTER DATABASE BANCO_DE_DADOS
    SET RECOVERY SIMPLE;
    GO
    -- Reduzir o log truncado arquivo de 1 MB.
    DBCC SHRINKFILE (2, 1);  -- aqui 2 é o arquivo de ID para o arquivo de log trasaction, você também pode mencionar o nome do arquivo de log (dbname_log)
    GO
    -- Redefinir o modelo de recuperação de dados.
    ALTER DATABASE BANCO_DE_DADOS
    SET RECOVERY FULL;
    GO
    


    Willian Gomes Gonçalves ITIL V3 Foundation

    • Marcado como Resposta ramos_sa sexta-feira, 22 de novembro de 2013 12:51
    sexta-feira, 22 de novembro de 2013 11:57

Todas as Respostas

  • Amigo, não sei lhe informar se é uma boa pratica, mais no SQL 2008 você pode usar esta rotina para fazer shrink no log do seu banco de dados.
    --Esta Query é para diminuir o tamanho do log SQL server 2008.
    
    USE BANCO_DE_DADOS;
    GO
    --Truncar o log, alterando o modelo de recuperação de dados para SIMPLE.
    ALTER DATABASE BANCO_DE_DADOS
    SET RECOVERY SIMPLE;
    GO
    -- Reduzir o log truncado arquivo de 1 MB.
    DBCC SHRINKFILE (2, 1);  -- aqui 2 é o arquivo de ID para o arquivo de log trasaction, você também pode mencionar o nome do arquivo de log (dbname_log)
    GO
    -- Redefinir o modelo de recuperação de dados.
    ALTER DATABASE BANCO_DE_DADOS
    SET RECOVERY FULL;
    GO
    


    Willian Gomes Gonçalves ITIL V3 Foundation

    • Marcado como Resposta ramos_sa sexta-feira, 22 de novembro de 2013 12:51
    sexta-feira, 22 de novembro de 2013 11:57
  • Bom dia,

    Você pode agendar um job de acordo com a necessidade e colocar nele o comando para fazer shrink no arquivo de log.

     DBCC SHRINKFILE ('nome do seu arquivo de log', 1);

    sexta-feira, 22 de novembro de 2013 12:07
  • O procedimento na resposta do William é eficaz para diminuir o tamanho do log, porém vai quebrar a sequência de backups de log.

    Eu recomendaria utilizar o Performance Monitor para acompanhar o contador de performance Log File(s) Size (abaixo de SQL Server: Databases), para determinar quando o tamanho extrapola o limite que desejas, e aumentar a frequência do backup de log (por exemplo, a cada 30 minutos).

    Também é possivel criar um alerta no SQL Server Agent para que o backup de log seja disparado quando o limite for atingido; porém esta automatização poder gerar backups em horarios indesejados.

    Espero que ajude!


    Marcelo Lucas Guimarães - MCP, MCTS, MCDBA, MCITP Blog: http://mlucasg.wordpress.com

    sexta-feira, 22 de novembro de 2013 12:12
  • Já utilizei desta pratica também, somente não sabia se era a melhor pratica. Pois descontinuaram o truncate_only"

    Obrigado,

    sexta-feira, 22 de novembro de 2013 12:27
  • Obrigado pela dica Marcelo!
    sexta-feira, 22 de novembro de 2013 12:51