Ontem, fiz uma pergunta sobre como reduzir o tamanho de um banco de dados. A comunidade sugeriu o uso do comando dbcc shrinkdatabase
. Segui o conselho deles e executei o comando por mais de 24 horas. No entanto, encontrei um erro porque minha unidade de disco rígido estava cheia. Em vez de diminuir o tamanho do arquivo, o dbcc shrinkdatabase
comando parecia aumentá-lo ( veja os links das fotos ). Além disso, o espaço livre original no banco de dados agora está preenchido, mesmo que nenhum dado adicional tenha sido adicionado. Eu cometi um erro?
Esta é a consulta exata que executei:
DBCC SHRINKDATABASE (<DB>,1); GO
mudei para DBCC SHRINKDATABASE (<DB>,10); GO
depois que fiquei sem espaço (atualmente ainda em execução, nad não terminou. Parou no meio)
Observe:
- Estou ciente de que isso fragmentará meus índices e estou bem com isso
- Este é um ambiente de desenvolvimento, nenhum dado adicional entra ou sai
- Estou executando SQL Server e SSMS 2017
Alguém por favor pode me ajudar. Há algo que eu fiz de errado? Devo alterar a consulta?
A movimentação das páginas de dados para o início do arquivo é registrada. Se você não estiver no modelo de recuperação simples, o arquivo ldf precisa ser capaz de acomodar esses registros de log. isso é o que aconteceu com você. Esperado.
Como um aparte, tendemos a sugerir o uso de SHRINKFILE em vez de SHRINKDATABASE, pois você obtém um melhor controle do que está fazendo. Não ajudaria neste caso, mas como um FYI.
Portanto, você tem cerca de 170 GB (espaço usado no arquivo de dados) que precisa ser movido para o início do arquivo. Isso vai demorar um pouco. Alguma coisa faz com que demore muito, muito tempo (páginas LOB, tabela heap, espera por bloqueios). Considere se é possível ter o banco de dados em modelo de recuperação simples (fale com seu DBA, isso afetará as rotinas de backup) e também reduza em porções menores.