Casos do Dia a Dia: Problema ao executar o comando SHRINKFILE
Fala pessoal,
Antes que encham o post de comentários sobre a utilização do shrink, já informo que ele é utilizado para nosso servidor de desenvolvimento devido a problemas de espaço em disco.
Ao executar o comando abaixo em uma database que acabou de ser restaurada em um SQL Server 2008 R2 com um backup de uma base com a mesma versão de SQL Server:
Use Base
DBCC SHRINKFILE (Base_log, 0, TRUNCATEONLY)
Recebi o erro abaixo:
Estava passando o nome do arquivo corretamente. Podemos conferir usando o comando sp_helpfile conectado na database.
Dando uma pesquisada rápida no google, encontrei duas soluções:
1) Altera o recovery da base para FULL e depois voltar para SIMPLE – Essa solução resolveu o problema temporariamente. Eu consegui executar o shrink uma vez, contudo, ao executar pela segunda vez o mesmo erro voltou a acontecer.
2) Ao invés de utilizar o nome do arquivo de log, utilizar o número do arquivo.
Essa solução de contorno funcionou perfeitamente e é o que deixarei no meu job de restore na base de testes.
DBCC SHRINKFILE (2, 0, TRUNCATEONLY) — onde 2 é o file_id do arquivo de log que quero diminuir o tamanho.
Qual é a causa raíz do problema???
Não sei e não tive muito tempo para pesquisar. Se souber ficarei feliz com seu comentário.
Pode ser um Bug?
No meu caso, já tenho atualizado o service Pack 2 do SQL Server 2008 R2 conforme pode ser visto abaixo:
Microsoft SQL Server 2008 R2 (SP2) – 10.50.4000.0 (Intel X86) Jun 28 2012 08:42:37 Copyright (c) Microsoft Corporation Enterprise Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2) (Hypervisor)
Sairam mais dois hotfix após esse service pack, mas não vi nada que resolva esse problema na descrição desses hotfixs.
Fica a dica para quem passar pelo mesmo problema e comentários abertos para quem souber o motivo do problema.
Gostou dessa dica?
Cadastre seu e-mail para receber novos Posts e curta minha Página no Facebook para receber Dicas de Leituras e Eventos sobre SQL Server.
Confira mais experiências do Dia a Dia de um DBA no meu Treinamento de Tarefas do Dia a Dia de um DBA.
Abraços,
Fabrício Lima
MCITP – Database Administrator
Consultor e Instrutor SQL Server
Trabalha com SQL Server desde 2006
One thought on “Casos do Dia a Dia: Problema ao executar o comando SHRINKFILE”