SQL Server: Como faço para aumentar o tamanho do log de transações?
-
06-07-2019 - |
Pergunta
Como faço para aumentar o tamanho do log de transações? É também possível aumentar temporariamente o log de transações?
Vamos dizer que eu tenho o seguinte cenário. Eu tenho uma operação de exclusão que é muito grande para o log de transações atual. Eu luto para:
- Aumentar o log de transações (eu pode detectar o tamanho atual ?, eu posso dizer o quão grande eu preciso de log de transações para ser para a minha operação?)
- (Execute minha operação)
- Backup log de transações
- Restaurar o tamanho do log de transações.
Solução
Resposta curta:
- SQL 2K5 / 2K8 Como: aumentar o tamanho de um banco de dados (SQL server Management Studio) (aplica-se para iniciar sessão também), Como: encolher um banco de dados (SQL Server Management Studio)
- SQL 2K Como aumentar o tamanho de um banco de dados (Enterprise Manager) , Como diminuir um banco de dados (Enterprise Manager)
Resposta longa: você pode usar ALTER DATABASE ... MODIFY FILE
para mudar o tamanho dos arquivos de banco de dados, incluindo arquivos de log. Você pode olhar para cima master_files/sysfiles
(2k) ou <dbname>.sys.database_files
(2K5 / 2K8) para obter o nome lógico do log. E você pode usar DBCC SHRINKFILE
para reduzir um arquivo (se possível).
Eu posso dizer o quão grande eu preciso do log de transações para ser para o meu operação?
Depende de uma série de fatores (é esta nova dados? É uma atualização? É uma exclusão? O modelo de recuperação? Você tem compressão sobre SQL 2k8? Etc etc) mas é geralmente maior do que o esperado. Eu estimaria 2,5 vezes o tamanho da atualização você está prestes a executar.
Update:
Missed você diz é um DELETE. Uma estimativa grosseira é de 1,5 vezes o tamanho dos dados apagados (incluindo todos os índices).
Outras dicas
O log de transações pode ser configurado para expandir conforme necessário. Você definir a opção de crescer automaticamente. No entanto, quando o log de transações fica muito grande (a falta de espaço em disco) ou fazer o SQL Server inutilizável.
Fazer backup do log de transações. SQL vontade auto Truncar as transações inativas
Quando você restaura o log de transações será reduzida
Para configurar de crescimento automático:
- clique direito do mouse sobre o banco de dados no estúdio de gestão.
- Selecione Propriedades
- Atualizar valor Autogrowth
A parte mais importante é a última linha de seu cenário: "Restaurar o tamanho do log de transações" Quer dizer encolher a volta de log para seu tamanho original.
Este é realmente perigoso para uma série de razões, e nós cobrimos-los em um par de histórias sobre a SQLServerPedia: