none
Redução do arquivo de LOG - shrink RRS feed

  • Pergunta

  • Bom dia pessoal,

    Tenho um arquivo de dados no banco SQL 2008R2, no caso um DataMart com uma única fato, que atulamente está ocupando o arquivo de dados com 29GB e o log com 220GB.

    Já tentei executar o shirink files e selecionei o LOG porem aparece 0% e mesmo você tentando forçar a redução definindo os MB ele simplemente fecha o assistente e não reduz nada no log.

    Como fazer para reduzir com segurança esse LOG.

    obrigado


    Rodrigo Santos

    quinta-feira, 22 de janeiro de 2015 11:56

Respostas

  • Rodrigo,

    Se você possui um arquivo de BACKUP FULL, recentemente, o processo de redução do arquivo de Log deveria ser executado.

    Como não ocorreu, recomendo que você:

    - Faça um BACKUP FULL;

    - Se o tamanho do arquivo de Log permanecer grande, então:

    1. Altere o "Recovery Model" deste banco de dados para "SIMPLE". Clique com o botão direito no banco e selecione "Properties". Acesse a aba "Options", como indicado na imagem abaixo;
    2. Execute o comando SHRINK, como indicado abaixo:



    ou altere através do script T-SQL abaixo, já efetuando o SHRINK do arquivo de LOG:

    USE SeuBanco;
    GO
    
    --ALTERE O RECOVERY MODEL ATRAVÉS DO T-SQL ALTER DATABASE SeuBanco SET RECOVERY SIMPLE; GO --REDEUZ O ARQUIVO DE LOG PARA 10Mb DBCC SHRINKFILE (SeuBanco_Log, 10); GO
    --RETORNA O RECOVERY MODEL PARA "FULL" ALTER DATABASE SeuBanco SET RECOVERY FULL; GO

    Para maiores informações veja:

    https://msdn.microsoft.com/pt-br/library/ms189493.aspx

    https://msdn.microsoft.com/pt-br/library/ms189035.aspx

    https://msdn.microsoft.com/pt-br/library/ms186289.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    quinta-feira, 22 de janeiro de 2015 16:18

Todas as Respostas

  • Bom dia Rodrigo,

    No link abaixo tem as explicações e possíveis soluções para o seu problema:

    http://www.techrepublic.com/blog/the-enterprise-cloud/help-my-sql-server-log-file-is-too-big/

    Resumidamente os seguinte passos que devem resolver o seu problema em uma cenário simples:

    1º - Verifique se é feito Backup do Log frenquentemente;

    2º - Caso o Backup do Log não diminua o seu arquivo, verifique se existe alguma transação aberta segurando essa tarefa do Truncamento do Log;



    Att, Bruno Silva.

    quinta-feira, 22 de janeiro de 2015 13:27
  • Rodrigo,

    Se você possui um arquivo de BACKUP FULL, recentemente, o processo de redução do arquivo de Log deveria ser executado.

    Como não ocorreu, recomendo que você:

    - Faça um BACKUP FULL;

    - Se o tamanho do arquivo de Log permanecer grande, então:

    1. Altere o "Recovery Model" deste banco de dados para "SIMPLE". Clique com o botão direito no banco e selecione "Properties". Acesse a aba "Options", como indicado na imagem abaixo;
    2. Execute o comando SHRINK, como indicado abaixo:



    ou altere através do script T-SQL abaixo, já efetuando o SHRINK do arquivo de LOG:

    USE SeuBanco;
    GO
    
    --ALTERE O RECOVERY MODEL ATRAVÉS DO T-SQL ALTER DATABASE SeuBanco SET RECOVERY SIMPLE; GO --REDEUZ O ARQUIVO DE LOG PARA 10Mb DBCC SHRINKFILE (SeuBanco_Log, 10); GO
    --RETORNA O RECOVERY MODEL PARA "FULL" ALTER DATABASE SeuBanco SET RECOVERY FULL; GO

    Para maiores informações veja:

    https://msdn.microsoft.com/pt-br/library/ms189493.aspx

    https://msdn.microsoft.com/pt-br/library/ms189035.aspx

    https://msdn.microsoft.com/pt-br/library/ms186289.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    quinta-feira, 22 de janeiro de 2015 16:18
  • Olá Durval, de fato ao colocar como SIMPLE e efetuar o shirink resolveu o meu problema. Retornei em seguida para Full. Muito obrigado.

    Rodrigo Santos

    quinta-feira, 22 de janeiro de 2015 16:57
  • Olá Rodrigo,

    A query abaixo vai retornar o motivo de o log não poder ser truncado e consequentemente, impossibilitando o Shrink do seu arquivo. Recomendo que você tenha muita atenção com relação à alteração do Recovery Model, pois isso vai quebrar sua cadeia de Log.

    SELECT name, log_reuse_wait_desc
    FROM sys.databases

    Abraços,


    Edvaldo Castro http://edvaldocastro.com MCITP Database Administrator on SQL Server® 2008 MCITP Database Administrator on SQL Server® 2005 MCTS: SQL Server® 2008 MCTS: SQL Server® 2005 MCT: Microsoft Certified Trainer MTA: Microsoft Technology Associate MTAC – Microsoft Technical Audience Contributor CCSQLA – Cambridge Certified SQL Associate TOEIC – Test of English for International Communication

    quarta-feira, 28 de janeiro de 2015 10:59