locked
Shrink Database dando erro

    Frage

  • Pessoal,

    Estou com um database qua não executa a tarefa shrinkdatabase no SQL Server 2005 Standart SP 2.



    Quando executo o  dbcc checkdb não apresenta erros nem inconsistências:

    0 allocation errors and 0 consistency errors in database 'Database'.
    DBCC execution completed. If DBCC printed error messages, contact your system administrator.           



    Encontrei essa mensagem também:


    Msg 0, Level 11, State 0, Line 0
    A severe error occurred on the current command.  The results, if any, should be discarded.           


    O shrinkfile do log executa normalmente. Imagino que o problema está com o MDF.



    Alguém tem alguma sugestão???


    Abçs
    De Lima

    De Lima - MCITP SQL Server
    Mittwoch, 27. Mai 2009 20:24

Alle Antworten

  • Boa Tarde,

    Não sei qual é o problema, mas para MDFs muito grandes é melhor fazer o SHRINKFILE em partes.
    Normalmente quando tenho MDFs acima de 100GB faço o SHRINK de 1GB em 1GB.
    Nunca tive problemas com essa estratégia (inclusive o SHRINK executa mais rápido e gera menos indisponibilidade)

    [ ]s,

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

    Como executar tarefas ao iniciar o SQL Server ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!570.entry


    Classifique as respostas. O seu feedback é imprescindível
    Mittwoch, 27. Mai 2009 20:33
    Moderator
  • Gustavo, Obrigado pela sua pronta-resposta! No meu caso, o arquivo de dados está com 120 Gb. Como eu faria esse procedimento de srihrinkfile de 1 em 1 Gb ao invés dele inteiro com 120? Att,
    De Lima - MCITP SQL Server
    Mittwoch, 27. Mai 2009 20:38
  • Boa Tarde De Lima,

    Tente o script abaixo para gerar as saídas, capture-as e execute-as.
    Coloquei a redução até 50GB, pois, não é "saudável" tentar reduzir ao máximo.

    DECLARE @ValAtual INT
    SET @ValAtual = 120
    
    WHILE @ValAtual > 50
    BEGIN
    	PRINT 'DBCC SHRINKFILE(''Arquivo_Data'',' + Cast(@ValAtual As VARCHAR(4)) +
    	')' + CHAR(10) + 'GO'
    	SET @ValAtual = @ValAtual - 1
    END

    [ ]s,

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

    Como executar tarefas ao iniciar o SQL Server ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!570.entry
    Classifique as respostas. O seu feedback é imprescindível
    Mittwoch, 27. Mai 2009 20:45
    Moderator
  • Obrigado!!!


    Vou tentar a execução com esse script.

    Assim que eu tiver a resposta volto para postar aqui.



    Abçs

    De Lima - MCITP SQL Server
    Mittwoch, 27. Mai 2009 20:48
  • Gustavo,


    Desculpe a demora em responder... Infelizmente o problema persiste.


    Estou analisando outras maneiras de conseguir executar a tarefa sem prejuízos.


    Obrigado!
    De Lima - MCITP SQL Server
    Montag, 1. Juni 2009 14:28
  • Post antigo, por isso o mesmo foi encerrado.

    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    Dienstag, 5. Juni 2018 12:45
    Moderator