Transaction Log for tempdb is full…
Essa não foi tão difícil mas pode ser que nem todos sigam a mesma linha de raciocínio que eu, então segue ai o que fiz pra resolver o problema.
Cheguei hoje cedo e um de nossos clientes havia me enviado um e-mail na sexta dizendo que não estavam conseguindo rodar um processo de exportação de dados no servidor de homologação. Segue a mensagem de erro do aplicativo responsável pela carga…
Se você procurar bem, verá que existe uma mensagem bem clara do problema…
Bom, vendo isso, fui dar uma olhada no espaço ocupado pelo Tempdb…
Rodei um sp_helpdb tempdb e obtive o seguinte retorno:
name |
fileid |
filename |
filegroup |
size |
maxsize |
growth |
usage |
tempdev |
1 |
E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\tempdb.mdf |
PRIMARY |
10439680 KB |
Unlimited |
10% |
data only |
templog |
2 |
E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\templog.ldf |
NULL |
149696 KB |
Unlimited |
10% |
log only |
10gb de espaço pro tempdb dependendo do cenário até que é normal… mas e o espaço no disco E: como está?
Rodei a xp_fixeddrives para ver o espaço livre…
drive |
MB free |
C |
2229 |
E |
126 |
F |
13577 |
Umm, 126 mb livre…
Temos varias formas de resolver o problema.
1. Reiniciar o servidor pro SQL recriar o tempdb
2. Rodar um shrink no TempDB
3. Criar mais um arquivo de Log e de Dados para o TempDB no disco F que tem mais espaço livre.
Como é um servidor de homologação e não sou eu que administro, optei por apenas fazer o shrink no tempdb. Mesmo sabendo que possivelmente este problema volte a ocorrer, por enquanto pra mim só isso resolve…
Se fosse meu servidor, com certeza a disposição dos arquivos de dados estariam bem diferentes…
Falow…
Ae Fabiano blz?Acompanho sempre seu blog aqui nos rss, e seu material é espetacular pra quem tá começando (eu por exemplo) pra pegar umas dicas do cotidiano.. ParabensJá acompanhei uma materia que menciona que as temp\’s devem ser alocadas em hd\’s diferentes, fazer uma relação com o número de arquivos físicos da tempdb e processadores fisicos disponiveis, raid e afins. Seria nessa linha uma configuração adequada ou varia de cenário para cenário? Vc deixou uma pergunta no ar que a disponibilidade dos arquivos seriam de formas distintas no seu ver.. Quais seriam elas? Grato !
Opa desculpa a demora pra responder, mas vamos lá…Bom, eu faria isso mesmo que você já mencionou, iria criar mais arquivos físicos para cada Core da CPU e tentar separar em vários discos… tabém gosto de habilitar o traceflag 1118 para evitar uma contenção nas páginas SGAMs.http://blogs.msdn.com/luti/archive/2006/08/10/694638.aspxAbraço, espero que meu blog esteja te ajudando…
Só mais um comentário… o TraceFlag se faz bastante útil quando você encontra comandos de criação de tabelas temporárias sem dados, por ex: select … into #TMP from tabela where 1=0 ou mesmo select top 0 … into #TMP from tabela
Olá Fabiano,Pois é. Eu sofro um bocado com o Tempdb em alguns ambientes. No 2005 para ver quem é que está lotando o Tempdb temos a sys.dm_db_session_space_usage, mas no 2000… Aí complicou. Abs,