Temos um banco de dados que precisa de 40% livre nos arquivos de log o tempo todo ou recebemos um alerta. Não consigo encontrar uma maneira de definir o crescimento quando um limite é atingido.
É claro que podemos definir o crescimento automático para um certo limite, mas teríamos que entrar nele semanalmente para adicionar 40% com base no último crescimento.
Alguma ideia? SQL 2012
O SQL Server não possui essa funcionalidade incorporada, mas você pode começar com esta pergunta do DBA.se:
Consulta para relatar alocação de espaço em disco e espaço usado
Em seguida, com base na saída, aumente os arquivos de log adequadamente.
Mas serei honesto: sou decente com o T-SQL e levaria mais tempo para escrever isso do que apenas alterar o limite no meu software de monitoramento para que seja mais apropriado. Porque aqui está o problema: se você começar a aumentar seus arquivos de log como um louco, a próxima coisa que você sabe, seu software de monitoramento vai reclamar de ter menos de 40% de espaço livre em suas unidades, hahaha.
Concordo com Brent sobre isso não ser uma ideia fantástica; Prefiro gerenciar os tamanhos dos arquivos de log manualmente com intenção.
Dito isso, você pode usar os alertas do SQL Server Agent para realizar o que deseja.
Você precisará modificar o código acima para refletir o nome do servidor no
@performance_condition
parâmetro. Se o seu servidor for uma instância nomeada, você precisará alterarMV2016
para o nome da sua instância. Se você estiver usando uma instância sem nome,@performance_condition
seria simplesmente:Esse alerta será acionado sempre que o arquivo de log tempdb ultrapassar 60% da capacidade. Quando o alerta é acionado, ele executa automaticamente um trabalho que aumenta o tamanho do log tempdb em 40%.