Existe risco de executar um comando DBCC SHRINKFILE em um log enquanto o db está sendo usado

3

Podemos lidar com um impacto no desempenho.

Este também é um, já que foi criado um novo índice que causou a criação de um arquivo de log massivo. Eu preciso reduzir esse arquivo de volta.

Eu só queria saber se havia algum risco em executar esse comando.

Banco de dados do Sql Server 2005

    
por Spence 16.06.2009 / 04:30

5 respostas

1

É seguro, mas faça isso em um momento tranquilo, quando há pouca atividade transacional. É recomendável reduzir o log ao seu tamanho mínimo e, em seguida, aumentá-lo para seu tamanho normal (isso garantirá que o número correto de VLFs (arquivos de log virtuais internos) seja criado, o que melhora o desempenho dos comandos registrados).

Se o log do banco de dados não encolher - se o banco de dados estiver no modo simples, execute primeiro um comando de ponto de verificação, se estiver fazendo o backup completo do log em primeiro lugar.

Se o log contiver transações espelhadas ou de replicação não processadas, ele poderá não diminuir para um tamanho mínimo.

Lembre-se de definir um valor adequado de crescimento automático.

Veja os seguintes artigos:

link

link

    
por 29.06.2009 / 00:11
1

Supondo que você esteja falando sobre o SQL Server 2000/2005, faço isso em bancos de dados ativos sem problemas.

    
por 16.06.2009 / 04:47
1

Eu também reduzo o log de transações no banco de dados ativo. Isso afeta apenas o trecho inativo do log de transações.

    
por 16.06.2009 / 05:07
1

Paul Randall tem uma discussão muito profunda aqui. Há também um artigo em seu blog:

É seguro ter a redução automática do SQL Server ativada?

Não é exatamente a sua pergunta, mas esclarece o que / como o DBCC SHRINKFILE funciona.

    
por 16.06.2009 / 06:59
1

Além disso, alguns ponteiros se o seu log não encolher:

  1. Você pode fazer backup de seu log de transações.
  2. Você pode tentar executar o ponto de verificação ( link ) primeiro para que todas as páginas sujas sejam gravadas em disco e depois execute o arquivo shrink dbcc.
  3. Se você não tiver uma configuração sql complexa (por exemplo: espelhamento de banco de dados nesse determinado banco de dados), você poderá alternar o banco de dados para recuperação simples e voltar ao modo de recuperação completa (isso pode ser feito enquanto o banco de dados estiver sendo usado) e diminuirá seu arquivo de log do banco de dados.
por 16.06.2009 / 09:39