none
Limpar arquivo de log RRS feed

  • Pergunta

  • Boa tarde galera,

    estou com um problema muito discutido nos fóruns, que seria o arquivo de log cheio, ja tentei faze o backup truncando log , usei o DBCC SHRINKFILE, mas não esta limpando meu arquivo:

    Arquivo        tamanho max   utilizado

    PRODUCAO   13311,99         100,0004 0

    meu SQL é o 2008 R2.

    Alguém poderia me da uma luz, para que eu consiga limpa-lo, obrigado...

    • Editado Andre_Bel sexta-feira, 24 de dezembro de 2010 15:24 falta argumentos
    sexta-feira, 24 de dezembro de 2010 15:23

Respostas

  • Boa tarde Andre,

    Faça o bakup do LOG de transações do seu database pois assim ele liberará o espaço referente a transações já concluidas.

    BACKUP LOG SEU_BANCO TO DISK='C:\Temp\SEU_BANCO.TRN'

    Depois altere o RECOVERY MODEL do SEU_BANCO para SIMPLE

    ALTER DATABASE SEU_BANCO SET RECOVERY SIMPLE

    Use o DBCC SHRINKFILE para liberar o espaço.

    DBCC SHRINKFILE(SEU_BANCO_log,2000,TruncateOnly)

    Agora eis a questão: Você utiliza backup de LOG de transação?

    Se não, não tem muito sentido deixar o banco de dados com RECOVERY MODEL como FULL. Caso não utilize termine por aqui com o RECOVERY MODEL do database como SIMPLE, pois nesse recovery model após as transações serem efetuadas nos arquivos de dados elas serão apagadas e você não terá de se preoculpar com o crescimento do LOG de transação. Caso utilize backup de log ou outra requisição do seu ambiente necessite de recovery FULL, segue:

    ALTER DATABASE SEU_BANCO SET RECOVERY FULL

    Atenciosamente,


    MCTS - SQL Server 2008, Implementation and Maintenance
    sexta-feira, 24 de dezembro de 2010 17:29

Todas as Respostas

  • Boa tarde Andre,

    Faça o bakup do LOG de transações do seu database pois assim ele liberará o espaço referente a transações já concluidas.

    BACKUP LOG SEU_BANCO TO DISK='C:\Temp\SEU_BANCO.TRN'

    Depois altere o RECOVERY MODEL do SEU_BANCO para SIMPLE

    ALTER DATABASE SEU_BANCO SET RECOVERY SIMPLE

    Use o DBCC SHRINKFILE para liberar o espaço.

    DBCC SHRINKFILE(SEU_BANCO_log,2000,TruncateOnly)

    Agora eis a questão: Você utiliza backup de LOG de transação?

    Se não, não tem muito sentido deixar o banco de dados com RECOVERY MODEL como FULL. Caso não utilize termine por aqui com o RECOVERY MODEL do database como SIMPLE, pois nesse recovery model após as transações serem efetuadas nos arquivos de dados elas serão apagadas e você não terá de se preoculpar com o crescimento do LOG de transação. Caso utilize backup de log ou outra requisição do seu ambiente necessite de recovery FULL, segue:

    ALTER DATABASE SEU_BANCO SET RECOVERY FULL

    Atenciosamente,


    MCTS - SQL Server 2008, Implementation and Maintenance
    sexta-feira, 24 de dezembro de 2010 17:29
  • Andre_Bel,

    Vc só conseguirá fazer o Shrink com o recover model como SIMPLE. Provavelmente está como FULL. Siga os passos que o Talles propôs.

    Att.,


    Marco Antônio Pinheiro / MCTS - Database Developer 2008 http://marcoantoniopinheiro.blogspot.com Se o post foi útil, não esqueça de marcá-lo.
    domingo, 26 de dezembro de 2010 15:47
  • Boa Noite,

    O SHRINK pode ser usado com qualquer RECOVERY MODEL (independente de ser SIMPLE ou FULL). Seu objetivo é devolver espaço livre do arquivo ao SO e isso não é influenciado pelo RECOVERY MODEL. Entretanto, ele não terá muita eficácia em um banco com um arquivo de log cheio, pois, nesse caso não há espaço vazio para liberar para o SO (e normalmente no FULL o log enche).

    Se você se preocupa com backup de log, não mude o RECOVERY MODEL para SIMPLE sobre nenhuma hipótese. Apenas faça o backup de log e depois rode o SHRINK. Pode ser necessário rodar mais de um backup de log, pois, em algumas situações, a organização dso virtual log files do arquivo de log exigirá mais de um backup de log para que o SHRINK possa fazer a redução. Alterar o RECOVERY MODEL para SIMPLE irá prejudicar sua estratégia de backup de log. Esse não é um passo requerido para rodar o SHRINK.

    Se você não se preocupa com backup de log, mude o RECOVERY MODEL para SIMPLE e não o mude para outra opção em nenhuma hipótese. Após mudar para o RECOVERY MODEL SIMPLE pode rodar o SHRINK. O log não enche, mas não será possível fazer o backup e utilizá-lo em uma possível estratégia de restore.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Compêndio de XML – Preparação para o exame 70-433 - MCTS Microsoft SQL Server 2008 - Database Development
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!1161.entry


    Classifique as respostas. O seu feedback é imprescindível
    segunda-feira, 27 de dezembro de 2010 05:46
  • Bom dia Srs,

    Obrigado pela atenção com a minha duvida.

    Lembrando que não posso deixar meu RECOVERY como SIMPLES, devido ao Mirror. Mas consegui resolver meu problema, por algum motivo minha base estava como "SUSPENSO" no mirror, removi o mirror e executei o comando que nosso colega "Talles" sugeriu "DBCC SHRINKFILE(SEU_BANCO_log,2000,TruncateOnly)", após faze isso subi novamente o mirror, e deu certo.

    segunda-feira, 27 de dezembro de 2010 12:12