Casos do Dia a Dia: Base de produção parada durante um Autogrow
Olá Pessoal,
Um cliente me procurou dizendo que seu banco SQL Server estava com problemas e que não conseguia fazer nem 1 Insert na sua base de dados.
Fiz o acesso ao ambiente dele, olhei o error log e vi dezenas de mensagens como essa abaixo:
Mensagem: Autogrow of file ‘Nome_Logico’ in database ‘Nome_Base’ was cancelled by user or timed out after 30156 milliseconds. Use ALTER DATABASE to set a smaller FILEGROWTH value for this file or to explicitly set a new file size.
Quando comecei a analisar o problema, realmente não era possível fazer nenhum insert na base de dados.
Contudo, enquanto realizava as validações, o SQL escreveu a seguinte mensagem no error log:
Mensagem: Autogrow of file ‘Nome_Logico’ in database ‘Nome_Base’ took 228313 milliseconds. Consider using ALTER DATABASE to set a smaller FILEGROWTH for this file.
O AutoGrow finalmente tinha concluído. Agora era possível inserir dados no ambiente e o problema naquele momento não acontecia mais.
Dizem por aí que foi uma coincidência, mas a verdade é que quando conectei para analisar o problema, o SQL Server ficou com medo e liberou logo o ambiente do cliente. =)
Brincadeiras a parte, quando mandei o cliente testar novamente, ele conseguiu utilizar o sistema normalmente e ficou todo feliz falando que eu era o cara… etc.. etc…
Podia me aproveitar da situação e dizer que tinha feito algo, mas falei para ele que não fiz absolutamente nada. O SQL Server simplesmente terminou o crescimento da base de dados. Mas, disse que isso aconteceu porque o SQL Server estava abandonado, foi instalado em next->next->finish, não tinha o IFI habilitado e o crescimento da base estava em 10%.
Como a base tinha 200 GB, o SQL Server cresceu 20 Gb, o disco não aguentou o tranco e causou todo esse problema.
No outro dia fechamos uma consultoria para realizar uma análise completa do banco de dados dele e implantar todas as rotinas de administração e monitoramento que um banco de dados SQL Server deve ter.
Conclusão: Cuide bem do seu banco de dados antes que seja tarde e um problema grave aconteça. Você pode evitar uma grande dor de cabeça e perdas ($$$$) para a sua empresa.
Leituras complementares sobre esse erro:
- http://blog.sqlauthority.com/2015/09/14/sql-server-error-autogrow-of-file-mydb_log-in-database-mydb-was-cancelled-by-user-or-timed-out-after-30121-milliseconds/
- https://support.microsoft.com/en-us/kb/2091024
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.
Quem faz meu Treinamento de Tarefas do Dia a Dia de um DBA, nunca mais instala um SQL Server via next-next-finish e não teria esse problema.
Abraços,
Fabrício Lima
MCITP – Database Administrator
Consultor e Instrutor SQL Server
Trabalha com SQL Server desde 2006